RNN — 순환 신경망
순환 신경망(Recurrent Neural Network, RNN)은 **은닉 상태(Hidden State)**를 유지하며 시퀀스 데이터를 순차적으로 처리하는 아키텍처입니다.핵심 아이디어
RNN은 이전 시점의 은닉 상태를 현재 시점의 입력과 함께 처리하여, 시퀀스의 맥락 정보를 누적합니다.동작 방식
수학적 표현
- : 시점 의 은닉 상태
- : 시점 의 입력
- : 가중치 행렬 (모든 시점에서 공유)
구현
수동 구현으로 이해하기
시간 역전파 (BPTT)
RNN의 역전파는 시간을 거슬러 올라가며 수행됩니다. 이를 **시간 역전파(Backpropagation Through Time, BPTT)**라고 합니다.기울기 소실 문제
항에서 Tanh의 미분값()이 반복 곱해지면 기울기가 지수적으로 감소합니다. 이로 인해 먼 과거의 정보를 학습하지 못하는 장기 의존성(Long-term Dependency) 문제가 발생합니다.한계점
한계점
기본 RNN은 약 10~20 시점 이상의 장기 의존성을 학습하기 어렵습니다. “The cat, which sat on the mat, ___” 같은 문장에서 멀리 떨어진 주어를 기억해야 하는 경우 성능이 급격히 저하됩니다. 이 문제를 해결하기 위해 LSTM과 GRU가 제안되었습니다.
참고 논문
| 논문 | 연도 | 핵심 기여 |
|---|---|---|
| Learning representations by back-propagating errors (Rumelhart et al.) | 1986 | 역전파를 시퀀스 모델에 적용 |
| On the difficulty of training RNNs (Pascanu et al.) | 2013 | 기울기 소실/폭주 문제 분석 |

