본문 바로가기

대학원 이야기/CS224N : NLP with Deep Learning10

[CS224N] Assignment 4 (풀이 중) 이번 과제는 크게 2가지 파트 : RNN을 이용한 Neural Machine Translation과 NMT 시스템의 분석으로 이루어진다. # Neural Machine Translation with RNNs Neural Machine Translation(NMT)는 source language에서 target language로 변환을 하는 task 이다. (이번 과제에서는 스페인어에서 영어로 변환한다.) 이번 과제에서는 attention을 활용한 Seq2seq 모델을 사용할 것이다. Seq2seq 모델은 bidirectional encoder와 unidirectional decoder로 구성된다. 길이 $ m $ 의 입력을 embedding matrix를 통해 $ e $ 크기의 word embedding.. 2020. 11. 10.
[CS224N] Assignment 3 이번 과제에서는 neural dependency parser를 만들어 본다. # 문제 문제 해석 : 우리가 기존에 사용하던 stochastic gradient descent 의 경우 다음과 같은 식을 만족한다. 이 때, $ J $ 는 loss function 이고 $ \alpha $ 는 learning rate 를 의미한다. 우리는 각 loss 에 대한 파라미터의 gradient 값을 learning rate에 곱해서 파라미터 값을 업데이트하는 방식으로 학습을 진행했다. 이번에 새로 다뤄볼 Adam optimizer 의 경우 다음과 같은 식을 만속시키면서 학습을 진행한다. $ \beta $ 값은 0에서 1 사이의 (보통 0.9를 사용한다) 하이퍼파라미터로 사용한다. Adam optimizer가 m을 사용.. 2020. 11. 2.
[CS224N] Assignment 2 한 단어($ c $)는 그 단어의 주위 단어에 의해서 뜻을 유추할 수 있다. [그림-1]을 보면 center word 는 "banking" 이고, 해당 단어를 둘러싸고있는 context word 는 각각 "turning", "into", "crises", "as" 등으로 구성된다. Word2vec에서는 주변 단어 $ o $ 와 중간 단어 $ c $ 사이의 관계 $ P(O = o | C = c) $ 를 계산하려고 한다. 이 방법의 경우는 skip-gram 방식으로, 중간 단어가 주어졌을 때, 주번 단어를 예측하는 방식이다. 다른 방식으로는 Continuous bag-of-words (CBOW)가 있는데, 이 방식의 경우에는 주변 단어에 따라서 중간 단어를 예측하는 방식으로 학습이 진행된다. 해당 Condi.. 2020. 10. 26.
[CS224N] Lecture 7 - Translation, Seq2Seq, Attention (수정 중) CS224N의 8번째 강의, 에 대한 내용이다. 해당 강의는 여기에서 직접 들을 수 있다. 잘못된 내용, 궁금한 점, 피드백 모두 환영입니다 :) 주요 내용 : # Machine Translation Machine Translation은 다양한 NLP task 중 하나이다. Machine Translation은 원문 언어로 된 텍스트 x 를 결과 언어로 된 텍스트 y로 제공하는 문제이다. Neural Network를 해당 task에 적용하기 전에 다양한 시도들이 있었다. 1950 년대에는 규칙을 기반으로 번역을 진행하기도 했다. 이후, 1990 ~ 2010 년대에 걸쳐서 통계를 활용한 Statistical Machine Translation의 발전이 이루어졌다. # Statistical Machine T.. 2020. 8. 24.
[CS224N] Lecture 7 - Vanishing Gradients, Fancy RNNs CS224N의 7번째 강의, Vanishing Gradient와 다양한 RNN의 종류에 대한 내용이다. 해당 강의는 여기에서 직접 들을 수 있다. 잘못된 내용, 궁금한 점, 피드백 모두 환영입니다 :) 주요 내용 : Vanishing Gradient, RNN, LSTM, GRU, Bidirectional RNN, Multi-layer RNN # Vanishing/Exploding Gradient # Exploding Gradients Back-propagation을 할 때 발생할 수 있는 문제 중 하나인 exploding gradient이다. [식-1]을 보면 gradient와 learning rate을 이용해서 파라미터 값을 업데이트하는 식을 확인할 수 있다. 이때, gradient의 값이 너무 커지는.. 2020. 8. 23.
[CS224N] Lecture 6 - Language Models and RNNs CS224N의 6번째 강의, Language Model과 RNN에 대한 내용이다. 해당 강의는 여기에서 직접 들을 수 있다. 잘못된 내용, 궁금한 점, 피드백 모두 환영입니다 :) 주요 내용 : Language Modeling, RNN # Language Modeling 이번 강의에서는 NLP의 대표적인 task 중 하나인 Language Modeling(LM)에 대해서 이야기한다. LM은 이전 단어들이 주어졌을 경우, 그다음으로 올 단어를 예측하는 문제이다. [그림-1]을 보면, "the students opened their"라는 단어들이 주어지고, 다음에 오는 빈칸에 어떤 단어가 가장 적합한지 예측하게 된다. 해당 그림에서는 books, laptops, exams, minds 등 다양한 예시를 제공.. 2020. 8. 23.
[CS224N] Lecture 5 - Dependency Parsing Sentence Structure 문장의 구조를 파악하는 방법은 총 2가지가 있다. Phrase-structure grammar(context-free grammar, CFG) dependency structure grammar 문장 구조를 제대로 파악해야지 문장의 의미를 정확하게 이해할 수 있다. Phrase-structure grammar 문장을 unit으로 구성 각 unit 들을 progressively nest Dependency structure grammar 한 단어가 어떤 다른 단어에 의존적인지 나타내는 방식 Treebank 사람이 직접 문장들의 dependency를 파악해서 dependency structure 를 구성한 데이터셋 영어 뿐만 아니라, 다양한 언어들에 대해서 생성 Depend.. 2020. 8. 14.
[CS224N] Lecture 3 - Neural Networks Classification setup & notation $ x_i $ : inputs (d-dimension vector) $ y_i $ : C개의 class 중, $ x_i $ 에 해당하는 class(label) $$ \left\{x_i, y_i \right\}^N_{i=1} $$ Classifier classification : x 값들이 주어졌을 때, y 값에 따라서 영역을 구분할 수 있는 선을 구해야 한다. classifier : 영역을 구분하는 선 softmax, logistic regression 등의 linear classifier(선으로 두 영역을 구분)를 사용한다. softmax : 입력값을 probability distribution으로 제공한다. 각 x 에 대해서 아래 정의한 $ p.. 2020. 8. 12.
[CS224N] Lecture 2 - Word Vectors and Word Senses Vector Space word vector를 vector space에 위치시켰을 때, 유사한 의미를 보유하고 있으면 가까이 위치한다는 것을 알 수 있다. high dimensional vector space에서는 한 단어가 다양한 다른 단어와 서로 다른 방향으로 인정합 수 있다. 2차원 공간에 이러한 벡터들을 나타내는 경우, 이런 관계를 표현하지 못할 수 있다. 벡터의 방향성에도 의미가 있다는 것을 알 수 있다. Optimization Gradient Descent 손실 함수인 $ J(\theta) $ 를 최소화해야 한다. 손실 함수의 gradient(기울기)를 계산해서, gradient의 반대 방향으로 조금씩 이동하게 된다. 계속해서 기울기 반대 방향으로 이동하다 보면, 최종적으로 최소점으로 이동하게.. 2020. 8. 11.