구조
- 구성단위
- LSTM 또는 GRU
- 인코더
- 입력문장을 모두 순차적으로 입력 받은다음 정보를 압축하여 하나의 벡터로 만드는데, 이를 컨텍스트 벡터 context vector라고 불린다
1. 입력 문장을 단어 토큰화를 통해 단어 단위로 쪼개고, 단어 토큰을 RNN 셀의 각 시점 입력이 된다
2. RNN 셀의 마지막 은닉 상태를 디코더에게 넘겨주는데 이를 컨텍스트 벡터라 불린다
- 디코더
- 컨텍스트 벡터를 번역하여, 단어를 한개씩 순차적으로 출력한다
- 테스트 과정
- RNN Language Model로, 문장의 시작을 의미하는 <sos>
를 입력받아야 한다
1. 컨텍스트트 벡터로부터 입력받으면, 다음에 등장할 확률이 높은 단어를 첫번째로 예측한다
2. 첫번쨰로 예측된 단어는 다음시점의 RNN셀의 입력으로 들어간다. 그 후 두번째 시점 단어를 예측한다
3. 문장의 끝을 의미하는 가 출력되면 출력이 종료된다 - 훈련과정때 : 교사강요
- $t$ 의 타임스텝때 $t-1$ 때의 RNN셀이 출력한 정보를 그대로 활용하는 대신, $t-1$ 때의 정답을 활용한다. 왜냐하면 t-1에서 잘못된 예측이 일어났다면 그게 연쇄적으로 영향을 줘 학습이 잘 안되겔 가능성이 높기 때문이다