RNN은 순환 연결 구조로 이전 시점의 정보를 기억하며 순차적 데이터나 시간적 의존성이 있는 데이터를 처리하는 신경망입니다. 이전 입력에 대한 정보를 내부 상태(hidden state, 은닉 상태)에 저장하고 이를 현재 입력과 결합해 시간적 의존성을 학습하도록 설계되었습니다. 다른 신경망과 달리 순환 연결 구조이므로 입력 데이터가 순차적으로 입력될 때 이전 시점의 정보를 기억하고 활용할 수 있습니다. 이러한 구조 덕분에 자연어와 음성같이 시간적 순서 정보를 담고 있는 데이터를 효과적으로 처리할 수 있습니다.

▲ 그림 1-41 순환 신경망(RNN)
RNN은 초기에는 매우 혁신적인 접근법으로 주목받았지만, 학습 과정에서 기울기 소실과 기울기 폭주(gradient exploding) 문제에 직면하게 됩니다. 특히 긴 시계열 데이터를 처리할 때 과거 정보가 점점 희미해져 모델이 먼 과거의 정보를 제대로 학습하지 못하거나, 반대로 기울기의 값이 지나치게 커져 학습이 불안정해지는 문제가 발생했습니다. 이를 해결하기 위해 장단기 메모리(LSTM, Long Short-Term Memory)나 GRU 같은 개선된 구조가 개발되었습니다.