앞선 6장의 6-1 순환 신경망 RNN 에서 살펴본 엘만 RNN은 멀리 떨어진 정보를 예측에 사용하기 힘들고, 그라디언트 값이 불안정하다는 이유로 다양한 NLP 작업에 적용되기 어렵습니다. 이에 대해 아래 본문에서 살펴보겠습니다.
1. 멀리 떨어진 정보를 예측에 사용하기 힘들다.
RNN의 기본적인 작동 방식은 현재 입력 벡터와 이전 은닉 벡터(이전 입력된 벡터들에 대한 정보)를 통해 은닉 벡터를 계산하고, 이를 다음 입력 벡터에 반복하여 적용하는 것입니다.
RNN의 구조. 왼쪽 이미지에서 은닉 벡터(h)와 입력(x)의 적용을 확인할 수 있다.
기본적인 RNN 구조의 가장 큰 단점은 은닉 벡터 에 어떤 정보를 유지하고, 어떤 정보를 버릴지 제어하지 못한다는 점입니다. 즉, 입력되는 정보 가 유의미하든 무의미하든 은닉 벡터에 저장되기 때문에, 멀리 떨어진 입력에 대한 중요도는 은닉 벡터에 담기는 단어량이 많아지면서 희석될 수 밖에 없습니다. 따라서, 모든 정보를 은닉 벡터에 저장하기보다는, 어떤 정보를 은닉 벡터에 얼만큼 저장할 지 판단하고 선택할 방법이 필요합니다.
2. 기울기 값(그래디언트 값)이 불안정하다.
RNN의 또다른 문제는 가중치 최적화를 위한 학습 방법인 경사하강법(Gradient Descent)에서 그래디언트 값이 0으로 줄어들거나 무한대로 커져버려 학습이 제대로 수행되지 않을 수 있다는 것입니다. 그래디언트 값이 0에 가까워지는 경우를 그래디언트 소실(Vanishing Gradient)라고 하며, 이 경우 학습이 진행되더라도 가중치 값이 더이상 바뀌지 않아 최적의 가중치를 찾을 수 없습니다. 반대로 그래디언트 값이 무한대에 가까워지는 경우를 그래디언트 폭주(Exploding Vanishing)라고 하며, 이 경우 학습이 진행될 때 가중치 값이 너무 크게 바뀌어 최적의 가중치를 찾을 수 없습니다.
이렇게 불안정한 그래디언트 값을 잡기 위해 ReLU 함수, Gradient Clipping, 가중치 초기화 등의 방법이 있지만, 앞서 1번에서 언급했던 내용까지 함께 해결하기 위해서는 주로 안정적인 게이팅(Gating) 방식을 활용합니다.
다음 글에서는 이 게이팅 방식이 어떻게 위 문제들을 해결할 수 있는지에 대해 알아보겠습니다.
다음 글 읽기