-
RNN의 구조는 이론적으로는 먼 과거의 정보까지 활용할 수 있지만, 실제로는 기울기 소실/폭주(Vanishing/Exploding Gradients) 문제 때문에 장기 의존성을 학습하기 매우 어렵습니다.

-
기울기 계산의 본질: BPTT 과정에서 먼 과거의 은닉 상태 hk가 현재의 손실 Lt에 미치는 영향을 계산하려면 연쇄 법칙(chain rule)에 따라 여러 자코비안 행렬을 곱해야 합니다.
∂hk∂Lt=∂ht∂Lt∂ht−1∂ht∂ht−2∂ht−1⋯∂hk∂hk+1=∂ht∂Lt∏i=k+1t∂hi−1∂hi
여기서 각 자코비안 행렬은 ∂hi−1∂hi=WhhTdiag(1−tanh2(hi−1)) 입니다.
-
기울기 소실 및 폭주: 위 식에서 보듯이, 가중치 행렬 Whh가 반복적으로 곱해지게 됩니다.
- 폭주(Exploding): Whh의 가장 큰 특이값(singular value)이 1보다 크면, 이 행렬이 반복적으로 곱해질 때 기울기가 지수적으로 발산합니다. 이는 기울기 클리핑(Gradient Clipping)으로 비교적 쉽게 해결 가능합니다.
- 소실(Vanishing): 반대로 Whh의 가장 큰 특이값이 1보다 작으면, 기울기가 지수적으로 0에 수렴하여 사라집니다. 이는 훨씬 더 심각하고 해결하기 어려운 문제로, 시퀀스 초반의 정보가 학습에 거의 영향을 미치지 못하게 만듭니다.