개요
- 순서가 있는 시계열·시퀀스 데이터 처리에 특화된 딥러닝 신경망
- 이전 시점의 정보를 기억하여 현재 출력에 반영하는 순환(Recurrent) 구조
- 텍스트, 오디오, 주가 등 시간적 의존성이 있는 데이터에 강점
- 현재는 대부분 Transformer로 대체되었으나, 경량 환경에서 여전히 사용
RNN (Recurrent Neural Network)
- 은닉 상태(Hidden State)
h(t)를 현재 입력 x(t)와 함께 처리
h(t) = tanh(W_h · h(t-1) + W_x · x(t) + b)
- 이론적으로 과거 정보를 무한히 기억할 수 있지만, 실제로는 단기 의존성만 처리 가능
- 한계
- 기울기 소실 (Vanishing Gradient): 역전파 시 기울기가 지수적으로 작아져 초기 레이어 학습 불가
- 기울기 폭발 (Exploding Gradient): 반대로 지수적으로 커지는 문제
- 장기 의존성(Long-Term Dependency) 학습 불가
LSTM (Long Short-Term Memory)
- 1997년 Hochreiter & Schmidhuber 제안, RNN의 기울기 소실 문제 해결
- 셀 상태(Cell State)
C(t)와 게이트 메커니즘으로 장기·단기 정보를 분리 관리
- 중요한 정보는 오랫동안 유지, 불필요한 정보는 망각
게이트 구조
- 망각 게이트 (Forget Gate): 이전 셀 상태에서 버릴 정보 결정 (시그모이드, 0이면 완전 삭제)
- 입력 게이트 (Input Gate): 현재 입력 중 셀 상태에 추가할 정보 선택
- 출력 게이트 (Output Gate): 셀 상태에서 은닉 상태로 내보낼 정보 결정
- 게이트는 시그모이드 함수(0~1) 출력 → 0이면 완전 차단, 1이면 완전 통과
GRU (Gated Recurrent Unit)
- 2014년 Cho et al. 제안, LSTM의 경량화 버전
- 업데이트 게이트와 리셋 게이트 2개만 사용 (LSTM: 3개)
- 셀 상태 없이 은닉 상태만 관리 → 파라미터 감소, 학습 속도 향상
- 성능은 LSTM과 유사, 데이터가 적거나 간단한 구조에 적합
| 항목 |
RNN |
LSTM |
GRU |
| 게이트 수 |
없음 |
3개 |
2개 |
| 장기 기억 |
약함 |
강함 |
강함 |
| 속도 |
빠름 |
느림 |
보통 |
| 파라미터 수 |
가장 적음 |
가장 많음 |
중간 |
- 병렬 처리 불가: 시퀀스를 순서대로 처리해야 하므로 GPU 병렬화 어려움
- 장거리 의존성 한계: 시퀀스가 매우 길면 초기 정보가 점차 희석
- 2017년 Transformer 등장 후 NLP·시계열 분야에서 빠르게 대체
- 그러나 IoT·경량 임베디드·실시간 스트리밍 처리에서는 여전히 활용
관련 포스트