Day 30: 9-4, 9-5, 9-6 Seq2seq의 개념 및 문제점

2023. 3. 21. 23:25딥러닝 이론

오늘 공부한 내용은 Ch.9-4 ~ 6입니다:

- 9-4 Seq2seq 개념

- 9-5 Seq2seq의 문제점 및 해결방안들

- 마무리

 

1. 9-4. Seq2seq의 개념 및 문제점

어제 배운 "many to many"문제를 해결할 때 쓰는 RNN의 종류인 seq2seq에 대해 더 알아봐요.

"Many to many"중에 특히 언어(번역)를 다룰 때에는 seq2seq을 쓴다고 배웠는데요, 이 seq2seq은 RNN의 고질적인 문제를 밝힙니다. 일단 마지막 단어에 비중을 많이 둔다는 문제가 있습니다. 마지막 단어에 비중을 많이 둔다는 것은 거꾸로 보면 앞에 있는 단어들을 별로 안 본다는 뜻이기도 해서 치명적인 약점입니다. 이 또한 vanishing gradient problem과 비슷한 문제를 일으키는데 구조적인 문제라 activation으로 쉽게 해결할 수 있는 부분이 아닙니다. 이 마지막 단어의 weights and biases를 가지고 있는 node를 context vector라고 부르는데요, 이 context vector는 한국어(encoder)에서 영어(decoder)로 번역할 때 그 중간지점에 있는 node입니다.

seq2seq은 한국어에서 영어로 바꾸는 파트 (encoder) + 영어에서 앞 단어가 나왔을 때 뒤에 무엇이 나와야 하는지 알려주는 decoder로 분류됩니다. 이 encoder의 끝부분인 context vector에서 문제가 일어나고 있습니다.

 

하단에 노트를 보면 알지만 gradient를 보면 항상 마지막 node만 gradient이 높고 나머지는 gradient가 낮습니다. 그 뜻인 "나는 사과를 좋아합니다"라는 문장에서 "좋아합니다"라는 부분만 보고 나머지 "나는"하고 "사과를"을 거의 안 보겠다는 뜻입니다. 뒷단어에 bias가 있으니 문법하고 맞지 않습니다.

 

2. 9-5. Seq2seq의 해결방안들

연구자들은 처음에 문제를 발견하고 나서는 이 RNN을 고치려 했습니다. LSTM + GRU도 써보고, RNN + attention, bidirectional RNN도 했지만 transformer라는 구조를 발견하면서 RNN세계는 고질적인 문제들을 한방에 해결했죠.

 

RNN -> RNN + attention -> Transformer

 

여기서 attention은 단어와 단어사이의 과계를 확보하는 과정입니다. 문장을 갖고 와서 단어마다의 관계를 미리 파악하면 사실은 vanishing gradient효과를 없앨 수 있어 그런 방법이 잘 작동하는 것이었습니다. 거기다 transformer는 끝에 비중을 높이는 부분을 없애고 attention위주로 봤기 때문에 더욱 좋은 효과를 넵니다.