🔷 1. RNN이란?
**Recurrent Neural Network (순환신경망)**은
"과거 정보를 기억하며 다음 동작을 결정하는" 뇌처럼 작동하는 신경망이에요.
🎯 왜 필요한가요?
일반 신경망(Dense, CNN 등)은 입력의 순서를 몰라요.
하지만 사람의 언어, 음악, 시간 흐름은 순서가 중요하죠?
예를 들어:
- "나는 밥을 먹었다"
- "먹었다 밥을 나는" ← 이상해!
이처럼 RNN은 **"이전 단어를 기억하면서 다음 단어를 예측"**할 수 있어요.
🔷 2. 입력, 출력, 은닉 상태(h_t)의 관계
✅ 입력 xt
- 매 시간 입력되는 데이터
- 예: "a", "p", "p", "l" 같은 문자
✅ 은닉 상태 ht
- 지금까지 입력된 정보를 요약한 "기억"
- 매 순간 새로 계산되지만, 이전 기억도 반영됨
- 수식으로는 이렇게 계산돼요:

- 이전 상태 ht−1h_{t-1}와 현재 입력 xtx_t로 현재 상태 hth_t를 만듦
✅ 출력 yty_t
- 모델이 예측한 값
- 예: 다음 글자가 무엇인지

🔷 3. 은닉 상태(hidden state)의 역할
RNN에서 진짜 핵심이에요!
- 매 시점의 입력만 보면 전체 문맥을 알 수 없어요.
- 그래서 은닉 상태 hth_t가 지금까지의 입력을 기억하고 요약해서 전달해줘요.
- 이 덕분에 “순서 있는 정보”를 이해할 수 있는 거예요.
입력: a → p → p → l
↓ ↓ ↓ ↓
h_1 h_2 h_3 h_4
이 h_4는 지금까지 본 모든 정보(a, p, p, l)를 요약한 정보야.
🔷 4. hidden_size vs num_layers
✅ hidden_size
- 하나의 은닉 상태 벡터의 크기 (예: 20이면 20차원 벡터)
- 기억을 얼마나 풍부하게 할 수 있느냐와 관련 있음
✅ num_layers
- RNN 층을 위로 몇 개 쌓을 건지
- 층이 많아질수록 더 복잡한 패턴을 학습할 수 있지만, 훈련도 더 어려워져요
🔷 5. 순환 횟수는 시퀀스 길이에 따라
- "apple" 입력 → 5개의 글자 → RNN은 5번 순환!
- 입력 길이만큼 RNN 내부에서는 반복 수행됨
⚠️ 주의: 이건 epoch와는 다름!
🔷 6. epoch는 뭔가요?
- 모델이 전체 데이터를 몇 번 반복해서 학습하는지를 뜻함
- 예: epoch=100 → 전체 데이터셋을 100번 반복 학습
🔷 7. One-hot 인코딩
컴퓨터는 문자를 직접 이해하지 못해요.
그래서 문자 → 숫자 → 벡터 로 바꿔줘야 해요.
문자 집합: ['a', 'p', 'l', 'e']
'a' → [1, 0, 0, 0]
'p' → [0, 1, 0, 0]
이걸 One-hot 인코딩이라고 해요.
🔷 8. RNN이 잘 쓰이는 곳
분야예시
| 자연어 처리 | 글자 예측, 문장 생성, 번역 |
| 시계열 분석 | 주가 예측, 센서 데이터 분석 |
| 음성 인식 | 말 → 텍스트 변환 |
| 음악 생성 | 멜로디 자동 생성 |
🔷 9. RNN의 한계 (미리 알고 가기)
- 긴 문장을 기억하기 어렵다 → 기억이 점점 소실됨 (vanishing gradient)
- 이를 보완하기 위해 LSTM, GRU 같은 구조가 나왔어요
🎯 핵심 요약 10줄로 끝내기!
- RNN은 순서를 가진 데이터를 처리하는 신경망이에요
- 매 시간마다 입력 xt, 은닉 상태 h, 출력 y가 있어요
- hth_t는 이전까지의 정보를 기억하는 요약 벡터예요
- 입력 길이만큼 RNN은 내부적으로 반복 순환해요
- 출력은 예: 다음 글자 예측, 감정 분류 등 다양해요
- hidden_size는 기억의 크기, num_layers는 층 수
- one-hot 인코딩으로 문자를 벡터로 바꿔서 신경망에 입력해요
- 에포크(epoch)는 데이터를 몇 번 학습할지 설정하는 것
- 시퀀스의 길이는 순환 횟수를 결정해요
- RNN은 인간처럼 "과거 기억을 참고해서" 판단할 수 있어요
'인공지능' 카테고리의 다른 글
| CNN 아키텍처 발전 흐름 요약 (0) | 2025.03.27 |
|---|---|
| 딥러닝 학습 핵심 개념 정리 (0) | 2025.03.27 |
| AlexNet (0) | 2025.03.21 |
| CNN (0) | 2025.03.21 |
| 다중 분류 (Multi-class Classification) (0) | 2025.03.21 |