순환 신경망 (Recurrent Neural Network)
쉽게 풀면
소설을 읽을 때 우리는 지금 이 문장만 보는 게 아니라, 앞서 읽은 내용을 계속 머릿속에 기억하면서 이해합니다. RNN(순환 신경망)도 이와 비슷하게 작동합니다. 문장이나 시계열 데이터처럼 순서가 중요한 데이터를 한 시점씩 읽어 나가면서, 그때까지 처리한 내용을 "은닉 상태"라는 요약 메모 형태로 계속 들고 다닙니다.
다음 단어(혹은 다음 시점 값)를 처리할 때는 이 메모와 새 입력을 함께 참고해서 판단합니다. 그래서 문장의 앞부분과 뒷부분이 서로 연결된 의미를 가질 때 특히 유용합니다.
왜 중요한가
RNN은 순서가 의미를 가지는 데이터, 즉 시계열이나 문장, 음성 신호 등을 다루는 연구에서 오랫동안 표준적인 도구로 쓰여 왔습니다. 이전 시점의 정보를 요약해 다음 시점 처리에 반영한다는 아이디어 자체가 이후 등장한 어텐션 메커니즘, 트랜스포머 같은 시퀀스 모델링 기법들의 개념적 출발점이 되었기 때문에, 최신 논문에서도 비교 대상이나 배경 설명으로 자주 언급됩니다.
핵심 정리
- RNN은 시점 t마다 은닉 상태를 갱신합니다. 가장 단순한 형태는 ht = tanh(Wx xt + Wh ht−1 + b) 이고, 출력은 ht에서 만듭니다. 같은 가중치를 모든 시점에서 공유하는 것이 핵심입니다(Elman, 1990).
- 학습은 시간 방향으로 펼친 그래프에서 역전파하는 BPTT로 합니다(Rumelhart 등, 1986의 역전파를 시간으로 확장한 방식).
- 순서가 있는 입력의 길이가 달라도 같은 모수로 처리할 수 있다는 점이 장점입니다.
예시로 보기
가상의 예(코드로 계산) 1: 입력 10차원, 은닉 32차원인 가장 단순한 RNN의 모수는 Wx 32×10 = 320, Wh 32×32 = 1,024, 편향 32로 합계 1,376개입니다. 시퀀스가 길어져도 모수 수는 그대로입니다.
예 2: 기울기가 시간을 거슬러 갈 때 같은 계수가 반복해서 곱해지는 상황을 스칼라로 단순화해 봅시다. 계수 0.5를 20번 곱하면 약 9.5 × 10−7로 거의 사라지고, 1.5를 20번 곱하면 약 3,325로 커집니다. 이것이 기울기 소실·폭주의 직관이며, 긴 의존성을 학습하기 어려운 이유로 설명됩니다(Bengio 등, 1994). 실제 RNN은 행렬과 활성함수의 도함수가 곱해지므로 이 스칼라 모형은 단지 직관입니다.
자주 하는 오해
- “RNN은 과거 전체를 기억한다”는 오해: 은닉 상태는 고정 크기 요약일 뿐이어서, 길어질수록 오래된 정보는 흐려지기 쉽습니다.
- “LSTM은 RNN과 다른 계열”이라는 오해: LSTM은 게이트를 넣어 기울기 소실을 줄이도록 고친 RNN의 한 종류입니다(Hochreiter와 Schmidhuber, 1997).
- “트랜스포머가 나왔으니 RNN은 쓸모없다”는 단순화: 많은 언어 과제에서 트랜스포머가 주류가 되었지만, RNN 계열은 구조가 단순하고 순차 처리 비용이 낮아 일부 시계열·임베디드 과제에서 쓰입니다.
논문에서는 이렇게 쓰입니다
실제 논문에서
이 용어를 직접 쓴 국내 논문 문장을 아직 수집하지 못했습니다. 수집되는 대로 출처와 함께 싣겠습니다.
예시 문장
아래는 용어의 쓰임을 보여 주려고 만든 예시로, 실제 논문에서 가져온 문장이 아닙니다.
이 문장은 "데이터가 시간 순서를 가지고 있어서, 이전 시점의 정보를 기억하며 처리하는 RNN 구조를 모델로 채택했다"는 뜻입니다.
의료 데이터 분석에서는 혈압이나 심박수처럼 시간에 따라 변하는 생체 신호를 RNN으로 처리해, 과거 흐름을 반영한 예측을 시도하는 경우가 많습니다.
자연어처리 논문에서는 트랜스포머 계열 모델의 성능을 강조하기 위한 비교 기준(베이스라인)으로 RNN 계열 모델을 함께 제시하는 경우가 흔합니다.
조금 더 깊게 보면
기본 RNN은 시퀀스가 길어질수록 앞부분의 정보가 점점 옅어지는 문제를 겪는데, 이를 완화하기 위해 LSTM(장단기 메모리)이나 GRU 같은 변형 구조가 게이트라는 메커니즘을 도입해 기억할 정보와 잊을 정보를 선택적으로 조절합니다. 또한 RNN은 학습 과정에서 시간 축을 따라 오차를 역전파하는 BPTT(시간 역전파) 방식을 사용하는데, 이 과정에서 기울기가 지나치게 작아지거나 커지는 현상이 장기 의존성 문제의 근본 원인 중 하나로 꼽힙니다.
주의할 점
RNN은 문장이 길어질수록 앞부분의 정보가 점점 흐려져서 잊혀지는 "장기 의존성" 문제를 겪습니다. 이 한계를 극복하기 위해 등장한 것이 어텐션 메커니즘이며, 이를 전면적으로 활용한 트랜스포머 구조는 오늘날 대부분의 언어 모델에서 RNN을 대체하고 있습니다.
헷갈리기 쉬운 용어
순서가 있는 데이터를 다루는 신경망 구조들입니다.
| 구조 | 시점 간 정보 전달 | 특징 |
|---|---|---|
| RNN | 은닉 상태를 한 시점씩 넘김 | 구조가 단순하고 긴 의존성 학습이 어려움 |
| LSTM | 게이트가 있는 셀 상태 | 긴 의존성에 상대적으로 강함 |
| 트랜스포머 | 어텐션으로 모든 위치를 직접 참조 | 병렬 학습이 쉬움 |
참고 문헌
- Elman, J. L. (1990). Finding structure in time. Cognitive Science, 14(2), 179–211.
- Bengio, Y., Simard, P., & Frasconi, P. (1994). Learning long-term dependencies with gradient descent is difficult. IEEE Transactions on Neural Networks, 5(2), 157–166.
- Hochreiter, S., & Schmidhuber, J. (1997). Long short-term memory. Neural Computation, 9(8), 1735–1780.
- Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning representations by back-propagating errors. Nature, 323, 533–536.
표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.