데이터사이언스 이론 공부

RNN과 Encoder-Decoder Structure

soopy 2022. 12. 5. 11:17
728x90

문장 번역 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이다.

728x90
728x90