본문 바로가기
대학원 이야기/CS224N : NLP with Deep Learning

[CS224N] Assignment 4 (풀이 중)

by misconstructed 2020. 11. 10.
728x90

이번 과제는 크게 2가지 파트 : RNN을 이용한 Neural Machine Translation과 NMT 시스템의 분석으로 이루어진다. 

# Neural Machine Translation with RNNs

[그림-1]

Neural Machine Translation(NMT)는 source language에서 target language로 변환을 하는 task 이다. (이번 과제에서는 스페인어에서 영어로 변환한다.) 이번 과제에서는 attention을 활용한 Seq2seq 모델을 사용할 것이다. Seq2seq 모델은 bidirectional encoder와 unidirectional decoder로 구성된다.

길이 $ m $ 의 입력을 embedding matrix를 통해 $ e $ 크기의 word embedding으로 변환한다. ( $ e $ 크기의 word embedding이 총 $ m $ 개 존재하게 된다.) 해당 입력은 각각 forward/backward LSTM 의 입력으로 제공된다. Forward/backward LSTM의 hidden state와 cell state를 concatenate 해서 $ h^{enc}_i $ 와 $ c^{enc}_i $ 를 생성한다.

[식-1]

이후, Decoder의 initial hidden state와 initial cell state를 초기화한다. 해당 값들은 Encoder의 forward hidden state의 마지막 hidden state $ h^{enc}_m $ 과 backward hidden state의 첫 번째 hidden state $ h^{enc}_1 $ 을 concatenate해서 생성한다. ($ h^{dec}_0 $) 동일한 방식으로 initial cell state를 생성한다. 해당 과정을 식으로 표현하면 [식-2]와 같다. 

[식-2]

Decoder에서도 동일하게 t 번째 time step에서 emebedding $ y_t $ 를 생성한다. 해당 벡터는 combined-output vector $ o_{t-1} $ 과 concatenate하고 이렇게 생성한 벡터를 Decoder LSTM의 입력으로 제공한다. 

[식-3]

t-time step 에서 생성한 $ h^{dec}_t $ 를 encoder의 hidden state와의 attention을 계산한다. 

[식-4]

[식-4]를 통해서 구한 attention output $ \alpha_t $ 를 decoder hidden state와 concatenate 후, linear layer, tanh layer, dropout을 통과시켜서 combined-output vector $ o_t $ 를 구하게 된다. 

[식-5]

마지막으로 softmax 함수를 통해 target word에 대한 probability distribution $ P_t $ 를 생성하게 된다. 

[식-6]

이렇게 생성된 $ P_t $ 는 실제 결과인 one-hot vector $ g_t $ 와의 cross-entropy loss를 계산하게 된다.

[식-7]

 

728x90

댓글