핵심 인사이트 (3줄 요약)
- 본질: RNN(Recurrent Neural Network)은 순환 구조(Recurrent Structure)로 시퀀스 데이터의 시간 의존성을 포착하지만, 역전파(Backpropagation Through Time)에서 기울기 소실(Vanishing Gradient) 문제가 발생한다.
- 가치: LSTM(Long Short-Term Memory)은 셀 상태(Cell State)라는 고속도로와 입력·망각·출력 게이트(Gate) 3개로 장기 의존성(Long-Term Dependency)을 선택적으로 기억·망각·출력하는 메커니즘을 구현한다.
- 판단 포인트: GRU(Gated Recurrent Unit)는 LSTM을 2개 게이트로 간소화해 파라미터를 줄이면서도 유사한 성능을 제공하며, Transformer 등장 이후 장기 의존성 처리의 주류는 어텐션 메커니즘으로 전환되었다.
Ⅰ. 개요 및 필요성
시퀀스 데이터(텍스트, 음성, 주가, 센서 신호)는 순서 정보가 핵심이다. CNN이나 MLP(Multi-Layer Perceptron)는 입력의 순서를 고려하지 않으므로 이런 데이터에 부적합하다.
RNN의 순환 구조
시간 단계별 펼침 (Unrolled Through Time)
x_0 x_1 x_2 x_3
│ │ │ │
↓ ↓ ↓ ↓
h_0→[RNN]→ h_1→[RNN]→ h_2→[RNN]→ h_3→[RNN]→ h_4
│ │ │ │
↓ ↓ ↓ ↓
y_0 y_1 y_2 y_3
h_t = tanh(W_h · h_{t-1} + W_x · x_t + b)
y_t = W_y · h_t
- 은닉 상태(Hidden State) h_t: 이전 시간 정보를 누적
- 가중치 공유: 모든 시간 단계에서 동일한 W 사용
| 특성 | 설명 |
|---|---|
| 순환 연결 | 이전 상태 h_{t-1}을 현재 입력에 결합 |
| 가변 길이 처리 | 임의 길이의 시퀀스 처리 가능 |
| 파라미터 공유 | 모든 시간 스텝 동일 가중치 → 효율적 |
📢 섹션 요약 비유: RNN은 일기를 매일 쓰는 것과 같다. 오늘 일기를 쓸 때 어제 일기를 참고하고, 어제는 그 전날을 참고한다. 하지만 너무 오래된 일기는 기억이 흐릿해지는 문제가 있다.
Ⅱ. 아키텍처 및 핵심 원리
기울기 소실/폭발 문제 (Vanishing/Exploding Gradient)
BPTT(Backpropagation Through Time) 과정에서 기울기는 시간 스텝을 거슬러 올라가며 반복 곱셈된다.
∂L/∂h_0 = ∂L/∂h_T · Π(t=1→T) ∂h_t/∂h_{t-1}
각 항: ∂h_t/∂h_{t-1} = diag(tanh'(...)) · W_h
T가 크면:
│W_h│ < 1 → 지수적 감소 → 기울기 소실 (장기 의존성 학습 불가)
│W_h│ > 1 → 지수적 증가 → 기울기 폭발 (발산)
LSTM (Long Short-Term Memory) 구조
LSTM 셀 내부 구조
셀 상태 C_t (고속도로)
C_{t-1} ─────────────────────────────────→ C_t
│ │ │
[×] [+] [×]
│ │ │
[망각 게이트] [입력 게이트] [출력 게이트]
│ │ │
h_{t-1} ──→┤←── x_t ──→┤←── x_t ──→┤
x_t ───────┘ │ │
[후보값 C̃_t] │
↓
h_t (은닉 상태 출력)
3개 게이트 상세
| 게이트 | 수식 | 역할 |
|---|---|---|
| 망각 게이트 (Forget Gate) | f_t = σ(W_f·[h_{t-1},x_t] + b_f) | 이전 셀 상태 중 버릴 것 결정 |
| 입력 게이트 (Input Gate) | i_t = σ(W_i·[h_{t-1},x_t] + b_i) | 새 정보 중 저장할 것 결정 |
| 출력 게이트 (Output Gate) | o_t = σ(W_o·[h_{t-1},x_t] + b_o) | 셀 상태 중 출력할 것 결정 |
| 후보 셀 상태 | C̃_t = tanh(W_c·[h_{t-1},x_t] + b_c) | 새로 추가될 후보 정보 |
셀 상태 갱신:
C_t = f_t ⊙ C_{t-1} + i_t ⊙ C̃_t
h_t = o_t ⊙ tanh(C_t)
⊙: 원소별 곱(Element-wise Product), σ: 시그모이드
핵심: 셀 상태 C_t는 덧셈(+)으로만 갱신 → 기울기가 1로 흐름 → 기울기 소실 극복
📢 섹션 요약 비유: LSTM은 세 개의 밸브가 달린 수도관과 같다. 망각 밸브는 오래된 물을 빼고, 입력 밸브는 새 물을 넣고, 출력 밸브는 지금 사용할 물을 조절한다. 관 자체(셀 상태)는 막힘없이 흘러 오래된 정보도 보존된다.
Ⅲ. 비교 및 연결
GRU (Gated Recurrent Unit) — LSTM 간소화
GRU 구조 (게이트 2개)
h_{t-1} ──┬──→ [리셋 게이트 r_t] ──→ [후보 h̃_t]
│ │
└──→ [업데이트 게이트 z_t] ──→ h_t
= (1-z_t)⊙h_{t-1} + z_t⊙h̃_t
| 구분 | LSTM | GRU |
|---|---|---|
| 게이트 수 | 3개 (입력/망각/출력) | 2개 (리셋/업데이트) |
| 상태 수 | 2개 (C_t, h_t) | 1개 (h_t) |
| 파라미터 수 | 많음 (4W 행렬) | 적음 (3W 행렬) |
| 성능 | 일반적으로 우수 | 유사 (소규모 데이터에서 유리) |
| 훈련 속도 | 느림 | 빠름 |
RNN 변형 모델 비교
| 모델 | 특징 | 적합 태스크 |
|---|---|---|
| Vanilla RNN | 단순, 기울기 소실 | 매우 짧은 시퀀스 |
| LSTM | 장기 의존성 해결 | 언어 모델, 번역 |
| GRU | 경량 LSTM | 빠른 학습 필요 시 |
| Bidirectional LSTM | 양방향 문맥 파악 | NER, 감정 분석 |
| Stacked LSTM | 다층 LSTM | 복잡한 시퀀스 |
📢 섹션 요약 비유: GRU는 LSTM의 리모델링 버전이다. 방 3개 짜리 집을 방 2개로 줄였는데 생활 편의는 거의 같다. 공간이 좁은 환경(적은 데이터·메모리)에서는 GRU가 더 효율적이다.
Ⅳ. 실무 적용 및 기술사 판단
시계열 예측 파이프라인
시계열 데이터 전처리
↓
[슬라이딩 윈도우 생성]
↓
[LSTM 입력: (batch, timesteps, features)]
↓
[LSTM Layer(s) + Dropout]
↓
[Dense Output Layer]
↓
[역정규화 후 예측값 출력]
적용 사례별 모델 선택
| 태스크 | 추천 모델 | 이유 |
|---|---|---|
| 주가 예측 | LSTM + Attention | 장기 패턴 중요 |
| 이상 탐지 | Bidirectional LSTM | 전후 문맥 필요 |
| 텍스트 분류 | GRU / Transformer | 빠른 학습 |
| 음성 인식 | LSTM + CTC | 가변 길이 입력 |
| 기계 번역 | Transformer (LSTM 대체) | 병렬 처리 가능 |
NLP 적용: 언어 모델
# LSTM 언어 모델 구조 예시
model = Sequential([
Embedding(vocab_size, 128), # 토큰 → 벡터
LSTM(256, return_sequences=True), # 첫 번째 LSTM 층
Dropout(0.3),
LSTM(128), # 두 번째 LSTM 층
Dense(vocab_size, activation='softmax') # 다음 단어 예측
])
📢 섹션 요약 비유: LSTM 언어 모델은 소설을 읽으면서 다음 단어를 예측하는 독자와 같다. 앞에서 읽은 내용(셀 상태)을 기억하면서, 지금 읽는 단어(입력)와 결합해 "아마 다음은 이 단어가 오겠지"라고 예측한다.
Ⅴ. 기대효과 및 결론
LSTM → Transformer 전환 배경
LSTM의 한계 Transformer의 해결
───────────────── ──────────────────────
순차 처리 (병렬 불가) → 전체 시퀀스 병렬 처리
거리 비례 정보 감쇠 → 어텐션으로 직접 연결
O(n²) 시간 복잡도 → O(n²)이지만 병렬화됨
최대 길이 제한 → 상대적으로 긴 컨텍스트
현재: NLP는 Transformer가 주류
시계열: LSTM/GRU 여전히 실무 활용
기술사 시험 핵심 포인트
- RNN 기울기 소실 원인: BPTT에서 기울기 반복 곱셈 → 지수 감소
- LSTM 3개 게이트: 망각(f)·입력(i)·출력(o) 게이트 수식 기술
- 셀 상태 갱신:
C_t = f_t⊙C_{t-1} + i_t⊙C̃_t(덧셈 = 기울기 보존) - GRU vs LSTM 차이: 게이트 수, 상태 수, 성능 비교
- 시계열 vs NLP 적합 모델 선택 근거
📢 섹션 요약 비유: LSTM에서 Transformer로의 전환은 릴레이 전화(순차)에서 단체 화상 회의(병렬)로의 변화다. 릴레이는 맨 앞 사람 목소리가 맨 끝에 오면 작아지지만, 화상 회의는 모두가 동시에 직접 소통한다.
📌 관련 개념 맵
| 관계 | 개념 | 설명 |
|---|---|---|
| 기반 모델 | RNN (Recurrent Neural Network) | 순환 구조 시퀀스 처리 |
| 핵심 문제 | 기울기 소실 (Vanishing Gradient) | BPTT에서 장거리 학습 실패 |
| 핵심 해결 | LSTM | 셀 상태 + 3개 게이트 |
| 경량 대안 | GRU | 2개 게이트 간소화 |
| 발전 방향 | Transformer | 어텐션으로 병렬화 |
| 핵심 상태 | 셀 상태 (Cell State) | 장기 기억 고속도로 |
| 핵심 메커니즘 | 게이트 (Gate) | 정보 흐름 선택적 제어 |
| 응용 분야 | 시계열 예측, NLP | LSTM/GRU 주요 활용 |
👶 어린이를 위한 3줄 비유 설명
- RNN은 어제 일기를 오늘 일기에 참고하는 것처럼, 이전 내용을 기억하면서 새 내용을 처리하는 신경망이야.
📈 관련 키워드 및 발전 흐름도
MLP (순서 무시)
│
▼
RNN: 순차 입력 처리 + 은닉 상태 전달
│ 장기 의존성 문제 (기울기 소실)
▼
LSTM: Forget · Input · Output Gate → 장기 기억
│
▼
GRU (간소화 LSTM) → Transformer (병렬화)
- LSTM의 세 개 게이트는 "무엇을 잊을까(망각)", "무엇을 새로 기억할까(입력)", "무엇을 지금 말할까(출력)"를 결정하는 세 명의 기억 관리자야.
- GRU는 LSTM보다 관리자가 한 명 적어서 더 빠르게 일하는데, 결과는 거의 비슷해서 바쁠 때 쓰기 좋아.