문장 번역 Task에서 각 나라 언어에 따른 어순의 차이, 문장 길이 차이로 인해 Vanila RNN으로 해결할 수 없는 이슈를 해결하기 위해 등장
→ 학습 과정에서 먼저 번역하고자 하는 문장을 단어 단위로 RNN 모델에 input한 뒤 그 문장의 의미를 내포한 $h_T$를 뽑아낸다.(Encoding)
→ $h_T$를 가지고 새로운 RNN 모델에 input해서 문장의 시작을 알리는 <SOS>를 거쳐 각 단어가 매번 번역된 단어($\hat{y}$)를 예측하도록 하고, 정답($y$)과 일치하는지 확인하며 학습을 진행한다. 그리고 나서 예측값을 다음 input으로 사용한다. (Decoding)
- 예측값을 다음 input으로 사용한다는 것에는 “첫단추를 잘 끼워라” 문제가 발생한다. 디코딩 과정에서 매 예측 및 학습을 진행하고 있는데 틀린 예측값을 다음 input으로 사용하면 그 뒤로 계속 틀린 예측을 할 수 밖에 없게 된다.
- 이 문제를 해결하기 위해 Teacher Forcing이라는 개념이 도입되었고, 매 input값을 $\hat{y}$이 아닌 $y$값을 부여하도록 하는 방법이 적용된다.
LSTM의 문제
📌 LSTM의 대표적인 문제로 장기의존성이 언급된다. $h_0$에서 $h_T$까지의 반죽 과정 즉 Recurrent하게 진행되는 방식이 과연 모든 정보를 잘 담아 내느냐?에 대한 의심이 끊이지 않았다. 왜냐하면 Recurrent 방식과 더불어 Forget gate, Input/Output gate 이 모든 structure는 "내가 생각한대로 잘 작동해 주길 바래" 라는 의도가 담겨있지만 내부적으로 실제로 그렇게 작동해 주는지는 알 수 없었고, 그렇지만 "잘 작동하더라." 라는 경험에 근거할 뿐이었기 때문이다. 그래서 전문가들은 최종 $h$(hidden states)에 각 단어 간 앞 뒤 상호관계를 다 내포하는 것에 한계가 있다고 봤다. 이것은 마치 동시통역가에게 1분 간의 스피치를 다 듣고 한번에 번역하라는 것과 같다. 1 분간 들은 내용을 모두 암기하고 있을지가 의문이 드는 것과 비슷하다.
이 문제를 개선하고자 나온 아이디어가 바로 Attention Mechanism이다.
'데이터사이언스 이론 공부' 카테고리의 다른 글
Transformer(트랜스포머)에 대한 간략 정리 (0) | 2022.12.05 |
---|---|
Attention Mechanism에 대한 간략 정리 (0) | 2022.12.05 |
RNN과 LSTM 원리에 대한 간략 정리 (0) | 2022.12.05 |
딥러닝 기초 용어에 대한 간단 정리 (0) | 2022.11.02 |
Word Embedding에 대한 간략 정리 (0) | 2022.10.31 |