RNN & Sequence 모델
순서가 있는 데이터를 처리하는 신경망 — Transformer 이전의 시퀀스 처리 방법
📌 이 글의 목적
텍스트, 시계열, 음성 같은 순차 데이터를 처리하기 위해 RNN이 개발됨. RNN의 한계 → LSTM/GRU → Seq2Seq → Attention → Transformer로 이어지는 진화 과정을 이해하는 것이 목표. Transformer(#7)를 이해하기 위한 배경 지식.
1. RNN (Recurrent Neural Network)
1.1 핵심 아이디어
이전 시점의 **은닉 상태(hidden state)**를 다음 시점에 전달하여 순서 정보를 기억함.
hₜ = tanh(W_hh · hₜ₋₁ + W_xh · xₜ + b)
1.2 한계 — 기울기 소실
긴 시퀀스에서 앞쪽 정보가 소실됨. "어제 먹은 .... (100단어) ... 맛있었다"에서 "어제 먹은"의 정보가 "맛있었다"까지 전달되지 못함.
2. LSTM (Long Short-Term Memory)
게이트 메커니즘으로 기울기 소실 문제를 해결.
| 게이트 | 역할 |
|---|---|
| Forget Gate | 이전 기억 중 버릴 것 결정 |
| Input Gate | 새 정보 중 저장할 것 결정 |
| Output Gate | 현재 출력에 내보낼 것 결정 |
| Cell State | 장기 기억 저장소 (게이트를 통해 선택적 업데이트) |
셀 상태가 고속도로처럼 정보를 멀리까지 전달할 수 있어 장기 의존성 학습 가능.
3. GRU (Gated Recurrent Unit)
LSTM을 단순화한 버전. 게이트를 2개로 줄임.
| LSTM | GRU | |
|---|---|---|
| 게이트 수 | 3 (Forget, Input, Output) | 2 (Reset, Update) |
| Cell State | ✅ 별도 존재 | ❌ 은닉 상태에 통합 |
| 파라미터 | 많음 | 적음 |
| 성능 | 대부분 비슷 | 대부분 비슷 |
| 속도 | 느림 | 빠름 |
4. Seq2Seq — 인코더-디코더
가변 길이 입력 → 가변 길이 출력. 번역, 요약 등의 기반.
한계: 전체 입력을 하나의 고정 크기 Context Vector로 압축 → 긴 문장에서 정보 손실. 이 문제를 해결하기 위해 Attention 등장.
5. Attention 메커니즘
5.1 핵심 아이디어
디코더가 출력을 생성할 때, 인코더의 모든 은닉 상태를 참조하고 관련 있는 부분에 더 높은 가중치를 줌.
5.2 Attention → Self-Attention → Transformer
| 발전 | 핵심 |
|---|---|
| Attention (2014) | 디코더 → 인코더 참조 (Seq2Seq 보완) |
| Self-Attention (2017) | 시퀀스 내에서 자기 자신을 참조 |
| Transformer | Self-Attention만으로 RNN 없이 시퀀스 처리 |
💡 RNN의 가장 큰 문제: 순차 처리라 병렬화 불가능. 100단어 문장은 100번 순차 계산해야 함. Transformer의 Self-Attention은 모든 위치를 동시에 계산할 수 있어 GPU 병렬화에 적합. 이것이 LLM의 대규모 학습을 가능하게 한 핵심 요인.
6. RNN의 현재 위치
| RNN/LSTM | Transformer | |
|---|---|---|
| NLP | ❌ 대체됨 | ✅ 주류 |
| 시계열 | ⚠️ 아직 사용 | Transformer 진출 중 |
| 음성 | ❌ 대체됨 | ✅ (Whisper 등) |
| 학습 가치 | Attention의 배경 이해 | 현재 핵심 |
다음 글
→ Transformer 아키텍처 — Self-Attention, Multi-Head Attention, Positional Encoding