RNN 모델의 한계
RNN (Recurrent Neural Network)에는 크게 다음과 같은 문제점이 있었다.
1. 기울기 소실 (Vanishing Gradients)
기울기 소실이란 역전파(Backpropagation)과정에서 기울기(gradient) 값이 점점 작아져서 0에 가까워지는 것을 의미한다.
RNN은 이전 시점의 출력을 다음 시점의 입력으로 연결해 순차적인 데이터 (시계열 데이터)를 처리하게 되는데, 이 과정에서 가중치 업데이트를 위해 역전파, 시간에 따른 역전파를 사용한다.
<역전파 과정에서 기울기 값이 왜 작아지는가?>
ht: 시점 t의 은닉 상태 (hidden state)
Wh, Wx: 가중치 행렬
σ: tanh, sigmoid와 같은 비선형 활성화 함수
역전파를 통해 가중치를 업데이트하려면, 손실 함수의 변화량(기울기)이 은닉 상태에 대해 계산되는데 이때 Chain Rule이 적용하게 된다.
손실함수 L에 대한 Wh의 기울기는 시간 t의 은닉 상태에 대한 손실 함수의 변화량을 말한다.
시간 t에서의 은닉 상태에 대한 손실함수의 변화량을 계산할 때 Chain Rule을 적용해 역전파가 진행된다.
은닉 상태 ht는 ht-1의 함수이고, 이를 미분하면 위 수식과 같다. 이때
장기 의존성이란, 긴 sequence 내에서 초반에 등장한 정보가 sequence의 후반부까지 잘 기억되고 반영되어야 하는 것을 말한다.
예를 들어 다음과 같은 문장을 보자.
"철수는 아침에 학교에 갔다. 그는 매우 피곤했다."
두 번째 문장인 "그는 매우 기뻤다."에서 "그"가 가리키는 것이 누구인지 이해하기 위해서는 이전 문장에서 "철수"라는 단어를 기억하고 있어야 한다.
문장의 초반부에 등장하는 "철수"라는 정보를 기억해 후반부에서도 정확하게 해석하는 것이 장기 의존성을 다루는 일이다.
3. 데이터의 순차적 입력
RNN은 데이터를 하나씩 입력받아 순차적으로 처리하게 된다. 순차적으로 각 시점의 입력과 은닉 상태를 바탕으로 새로운 은닉 상태를 계산해 다음 단어, 문장, 시계열 값등을 예측하게 된다.
RNN의 경우에는 모델의 추론(inference)을 위해 이전까지 입력된 데이터들의 문맥 정보(hidden state)가 필요하기 때문에 이전 시점의 결과가 계산되어야 다음 단계로의 진행이 가능하다.
이러한 방식으로 인해 시퀀스 데이터의 길이가 길어질 경우, 전체 학습 속도가 느려지게 되고 리소스 및 코스트 부담이 증가하게 된다.
'Deep Learning' 카테고리의 다른 글
[NLP] Show, Attend and Tell: Hard Attention과 Soft Attention에 대해 알아보자 (1) | 2024.10.30 |
---|---|
[NLP] 멀티 모달 (Multi-Modality)과 이미지 캡셔닝 (0) | 2024.10.29 |
[NLP] 어텐션 메커니즘 (Attention Mechanism)에 대해 알아보자 (0) | 2024.10.28 |
[NLP] 역전파 (Backpropagation)의 개념을 알아보자 (0) | 2024.10.28 |
[NLP] Seq2Seq(Sequence-to-Sequence) 모델에 대해 알아보자 (0) | 2024.10.28 |