본문 바로가기

분류 전체보기100

언어 모델(Language Model),통계적 언어 모델(Statistical Language Model, SLM)이란? 언어 모델에 대해 이해하고, 통계 기반 언어모델의 한계점을 알아보자. 언어 모델(Language Model)이란? 문장과 같은 단어 *시퀀스에서 각 단어에 확률을 할당하여 컴퓨터가 처리를 할 수 있도록 하는 모델이다. 단어 시퀀스에 확률을 할당한다는 말의 의미를 이해하기 위해 예시를 들어보겠다. 어머니가 차려주신 저녁을 P(맛있게 먹었다.) | P(맛있게 하였다.) 위 예시에서 문맥에 맞는 문장은 왼쪽 문장이며 이에 왼쪽 문장에 높은 확률을 할당할 것이다 쉽게 말해 언어 모델은 기존의 데이터셋을 바탕으로 주어진 작업의 단어나 문장을 예측하는 작업을 의미한다. *시퀀스(sequence): 연속적인 사건이나 순서 통계적 언어 모델(Statistical Language Model, SLM)이란? 통계적 언어.. 2022. 5. 13.
문나이트의 ost중 하나 𝑬𝒏𝒈𝒆𝒍𝒃𝒆𝒓𝒕 𝑯𝒖𝒎𝒑𝒆𝒓𝒅𝒊𝒏𝒄𝒌 - 𝑨 𝑴𝒂𝒏 𝑾𝒊𝒕𝒉𝒐𝒖𝒕 𝑳𝒐𝒗𝒆 더보기 디즈니 플러스에서 제공하는 문나이트를 재밌게 보며 이 ost가 몇번 나왔는데 영어를 잘하지 못하는 나에게는 공감이 되는 노래라는 것을 생각해보지도 못하고 분위기가 아침에 기분좋게 들으며 일어날 수 있는 노래라고만 생각했다. 하지만 마지막화 마지막 장면에서 왠지 묘한 감정이 들어 가사가 어떤지 제대로 들어보고 가사에 대한 다양한 해석들을 보았고 왠지 부족한 번역들을 보며 나의 해석과 덯대어 누군가는 나같은 경험을 가진 사람들, 그들에게는 이 노래가 가슴에 와닿는 노래일 수도 있다는 생각이 들어 글을 적는다. 원곡의 제목은 아래와 같으며 바로 아래엔 나의 해석을 곁들여 보겠다. https://www.youtube.com/watch?v=YwJqnh8qBCI&ab_channel=H%C3%BClya%C3%.. 2022. 5. 12.
Word2Vec(Word to Vector)란 무엇일까? Word2Vec이란? 말 그대로 Word(단어)를 to(2) Vector(벡터)로 나타내는 것 가장 널리 사용되고있는 *임베딩 방법중의 하나이다. 특정 단어 양 옆에 있는 두 단어의 관계를 활용하기 때문에 *분포가설을 잘 반영하고 있다. CBoW(Continuous Bag-of-Words) 방식과 Skip-gram 방식이 있으며 아래 그림으로 쉽게 차이를 볼 수 있다. 두 방식에 대해 알아보기 전, 두 모델에서 등장하는 개념인 윈도우(window)를 이해해야 하는데 단어를 중심으로 앞, 뒤에서 몇 개 의 단어를 살펴볼 것인지(어떤 문맥 단어로 둘 것인지)를 정해주는 것, 그 범위를 윈도우라고 한다. *임베딩 : 사람이 쓰는 자연어를 기계가 이해할 수 있는 숫자인 벡터로 나타내는 결과나 과정을 의미한다. .. 2022. 5. 11.
원-핫 인코딩(One-Hot Encoding) 이란? 원-핫 인코딩(One-Hot Encoding)이란? 컴퓨터가 이해하기 쉽도록 자연어 처리를 위한 하나의 기법인 원핫 인코딩은 단어들의 크기를 벡터의 차원으로하고 표현하고 싶은 단어의 인덱스에 1을 부여하고, 다른 인데스에 0을 부여하여 단어를 벡터로 표현하는 방식(원-핫 벡터)이다. 원핫인코딩은 간단한 방법이지만 단어들 간 유사도도 구하기 어렵다(무조건 0이나온다) 라는 단점이 있다. 때문에 단어간 유사도를 구할 때에는 코사인 유사도를 사용한다. 또한 표현해야할 단어의 개수가 늘어날 수록, 벡터를 저장하기 위해 필요한 공간이 늘어난다(차원이 증가한다)라는 단점이 있기에 저장 공간 측면에서는 굉장이 비효율적이다. 때문에 word2vec을 이용한다. 아래의 예시를 보고 이해하자 2022. 5. 6.
자연어 처리(Natural Language Processing)와 토큰화(tokenization)란? 자연어(NLP: Natural Language Processing)란? 자연어는 사람들이 일상적으로 사용하는 언어(자연어)와 인공적으로 만들어진 인공어와 구분하여 부르기 위한 개념이다. 자연어를 통해선 다양한 일을 할 수 있는데 분류, 추론, 독해, 질의 응답, 품사 태깅, 개체명 인식..등이 있다 이러한 용어들을 자연어 이해(Natural Language Understanding)라고 하며 자연어 이해를 통해 만들어진 결과물을 자연어 생성(Natural Language Generation)이라 한다. 자연어 처리에서 크롤링 등으로 얻어낸 데이터가 필요에 맞지않게 전처리가 안된 상태라면 데이터를 사용하고자 하는 용도에 맞춰 토큰화, 정제화, 정규화 작업이 필요하다. 간단한 용어 몇 가지들을 정리해보자 말.. 2022. 5. 4.
도함수란 기울기란? 도함수란? 도함수는 기울기와 같은 의미이다. 기울기는 도함수의 개념을 쉽게 말한 개념이라고 생각하면 된다고 한다. 미분의 의미란 특정 지점에서의 기울기이다. 기울기를 좀 더 명확히 정의하자면 삼각형의 높이를 밑변으로 나눈 값이다. 아래 예시를 들어 이해를 해보도록 하자. a가 만약 2라고 가정한다면 f(a)=3a이니 f(a)=6이 된다. 그렇다면 a의 값을 살짝 밀어 a가 2.001이라고 해보자. 이제는 f(a)는 세배를 곱한 6.003이 되게 된다. 즉 f(a)는 0.003이 증가하게 된다 a는 오른쪽으로 0.001을 올린 것에 비해 위로는 3배가 늘어난다는 의미는 f(a)=3a 함수에서 기울기,도함수는 3이라는 것이다. 이는 a가 어떤 값일 때도 f(a)의 기울기가 3이기 때문에 이렇게 표현을 할 .. 2022. 5. 3.
케라스 이해하기 케라스를 사용하면서 딥러닝을 설계 해야한다면, 설계도는 하나의 모델이라고 표현된다고 한다. 모델은 퍼셉트론, 목표함수, 옵티마이저로 구성되어지며 과제의 예로 들면 아래와 같다. model = Sequential([ Dense(64, activation='sigmoid', input_dim=32), # A, B Dense(128, activation='sigmoid'), # C Dense(5, activation='softmax') # D ]) 위 예시에서 Sequential은 케라스에서 제공하는 모델 중에 하나이며 순차적인 레이어를 쌓기 위해 사용하는 모델이다. 코드의 2번째 줄에서 input_dim의 역할은 입력해야 할 뉴런의 수를 설정하는 것이고, activation의 역할은 활성화 함수를 설정하는 .. 2022. 5. 2.
파이썬에서 자연대수e를 사용하는 방법 numpy.exp() 시그모이드 함수를 구현하기 위하여 지수함수를 써야하는데 이 때 numpy에서 제공하는 numpy.exp()를 이용하여 지수함수를 사용할 수 있다. import numpy as np print(np.exp(0)) # e^0 와 동일 결과값 : 1.0 print(np.exp(1)) # e^1 와 동일 결과값 : 2.718~ print(np.exp(4.5)) # e^4.5 와 동일 결과값 : 90.01~ print(np.exp([0, 1])) # [e^0, e^1] 와 동일 결과값 : [1,2.718~] 위의 예시가 자연대수를 이용하는 방법이고 원래 목적인 시그모이드 함수를 표현하기 위해선 아래와 같다. def sigmoid(x): return 1 / (1 + np.exp(-x)) 2022. 5. 2.