본문 바로가기

개발/NLP

(19)
NLP Load : 맨땅에 헤딩하는 NLP 공부일지 (13) Ⅰ. 장단기 메모리(Long Short-Term Memory) ※ RNN의 다른 이름은 가장 단순한 형태의 RNN이라고 하여 ‘Vanilla RNN’이라고 부른다. 1. 바닐라 RNN의 한계 앞 챕터에서 바닐라 RNN은 출력 결과가 이전의 계산 결과에 의존한다는 것을 언급한 바 있습니다. 바닐라 RNN은 비교적 짧은 시퀀스(sequence)에 대해서만 효과를 보이는 단점이 있다. 바닐라 RNN의 시점(time step)이 길어질 수록 앞의 정보가 뒤로 충분히 전달되지 못하는 현상이 발생한다. 위의 그림은 첫 번째 입력값인 $x_1$의 정보량을 짙은 남색으로 표현했을 때, 색이 점차 얕아지는것으로 시점이 지날수록 $x_1$의 정보량이 손실되어가는 과정을 표현한 것이다. 뒤로 갈수록 $x_1$의 정보량은 손..
NLP Load : 맨땅에 헤딩하는 NLP 공부일지 (12) 워드임베딩까지 공부했으니 NLP의 가장 기본이 되는 모델을 알아보도록 하자. 바로 RNN(Recurrent Neural Network)이다. 우리는 인공 신경망을 행렬과 벡터 연산으로 이해할 수 있다면 더 이해하기 용이하다는 것을 이미 알고있다. Ⅰ. RNN (Recurrent Neural Network) 요 신경망은 연속적인 시퀀스를 처리하기 위한 신경망이다. 사람은 글을 읽을 때, 이전 단어들에 대한 이해를 바탕으로 다음 단어를 이해하게 된다. 즉, 우리가 소통하는데 사용하는 언어(Language)는 시퀀스적인 데이터라는 말이다. 기존의 MLP에 비해 RNN은 이러한 이슈를 다루며, 내부에 정보를 지속하기 위해 루프과정을 통해 구성한다. RNN은 입력의 길이만큼 신경망이 펼쳐진다(=unrolled)...
NLP Load : 맨땅에 헤딩하는 NLP 공부일지 (11) 지난 포스팅에선 Word2Vec에 대해 알아봤죠, 이번에는 FastText에 대해 알아봅시다. 반복해서 말하지만 Word2Vec, FastText 둘다 신경망을 이용한 단어의 벡터화 방법론입니다😊 Ⅰ. FastText Word2Vec의 개량 알고리즘으로 Subword를 고려한 알고리즘입니다! 이는 Word2Vec의 한계점에서부터 파생된 개념인데 컴퓨터는 단어가 생긴게 다르면 아예 다른단어로 인식해버립니다. eat과 eating이 공통적으로 eat을 가지고 있더라고 할 지라도 말이죠...! 즉 위 그림처럼 형태학적인 특징이 단어의 의미고려에 반영되지 않습니다... 그외에도 OOV(Out of Vocabulary)라고 하는 문제도 있어요. 그래서 FastText는 Subword라는 개념을 도입하게 되는데요,..
NLP Load : 맨땅에 헤딩하는 NLP 공부일지 (10) 저번 포스팅에 이어 본격적으로 Word2Vec에 대해 공부해봅시다!! Ⅰ. Word2Vec 반복해서 이야기하지만 컴퓨터가 신경망을 이용해 단어에 대한 작업을 하기위해서는 단어를 '벡터화'시킬 필요가 있습니다! 이를 위해 사용하는 방법론은 Word2Vec, GloVe, FastText등 많지만 이번 포스팅에선 Word2Vec에 집중해보죠! Word2Vec은 임베딩 그 자체에만 집중하는 신경망 모델인데요, 크게 2가지로 분류가 됩니다! 주변단어들로부터 중심단어를 예측하는 CBoW와 반대로 중심단어들로부터 주변 단어를 예측하는 Skip-gram이 있습니다! 과거는 어땠을지 몰라도 현재는 CBoW보다는 Skip-gram이 좋은 성능을 낸다고 합니다. 요 Skip-gram도 구버전과 신버전으로 나뉜다고 하는데, ..
NLP Load : 맨땅에 헤딩하는 NLP 공부일지 (9) 본격적으로 NLP의 길로 들어서보자~~ 오늘 정리할 내용은 바로 "워드 임베딩"! 하.지.만 그 전에, 5번째 NLP Load에서 다룬 벡터화에 대해 간략하게 복습을 해보자. 레츠기릿~ Ⅰ. 벡터화(Vectorization) 앞서 정리한 것처럼 벡터화는 크게 3가지 종류로 나눌 수 있다. 1. 벡터화에 신경망을 사용하지 않을 경우 단어에 대한 벡터화 : OHE(One-Hot Encoding) 문서에 대한 벡터화 : DTM(Document-Term Matrix), TF-IDF 2. 벡터화에 신경망을 사용하는 경우 단어에 대한 벡터화 : Word Embedding (Word2Vec, GloVe, FastText, Embedding Layer) 문서에 대한 벡터화 : Doc2Vec, Sent2Vec 3. 문맥..