https://www.youtube.com/watch?v=BWnT3QCaDEk&list=PL0E_1UqNACXDlqJLNLK8IwzVV_EK3Kffj&index=10
- RNN의 단점들
- 길이가 길어질수록 gradient를 잃어버리게 되는 문제가 있고 비슷한 맥락으로 한참 전의 input을 잃어버리는 문제가 있음
- 이 문제를 해결하는게 LSTM과 GRU
- 하지만 이것도 완벽하게 해결해 주지는 않는다.
- Seq2Seq 모델은 Many-to-Many 모델의 input과 output이 1:1로 매칭되어야 한다는 한계를 개선한 모델
- LSTM이 완벽하게 해결해 주지 않기 때문에 최근에는 Attention 모델을 많이 사용함
- RNN은 그 특성상 시퀀스가 계속 되면서 같은 가중치를 반복해서 사용하기 때문에 Backpropagation 할 때 같은 가중치에 대해 편미분을 계속하다보면 Gradient가 소실되는 문제가 발생함.
- 초기 가중치를 너무 작거나 너무 크게 만들면 점점 0 (혹은 1, -1)에 수렴하게 되는 문제
- 이를 해결하기 위해 Xavier Initialization 을 사용할 수 있지만, 이것도 천천히 수렴하게 할 뿐 수렴 자체를 막지는 못함. RNN처럼 긴 시퀀스를 사용하면 결국에는 0으로 수렴하는 문제가 발생하게 됨
- 수학적으로 볼 때 값이 정확히 1이 아닌 이상 1보다 크면 발산하고, 1보다 작으면 0으로 수렴하게 되는 문제가 존재하기 때문에 아주 깊은 (Deep) Layer를 만들기에는 한계가 존재 함.
- 이것은 Neural Network의 Layer가 깊어지는데는 근본적인 한계가 존재함을 보여준다.