1. RNN의 정의
RNN(Recurrent Neural Network)은
이전 시점의 정보를 현재 계산에 반영할 수 있도록 설계된 순환 구조 신경망이다.
핵심 특징:
- 입력이 “순서(sequence)”를 가진 데이터일 때 사용
- 과거 정보를 내부 상태(hidden state)에 저장
- 시간 흐름에 따라 상태가 업데이트됨
즉, RNN은 단순한 함수가 아니라
**“기억을 가진 함수”**라고 볼 수 있다.
2. 왜 RNN이 필요한가
일반적인 FNN은 다음과 같은 한계를 가진다.
- 입력 간의 순서 정보 반영 불가
- 이전 입력의 영향을 기억하지 못함
예시:
“나는 밥을 먹었다” vs “밥을 나는 먹었다”
FNN은 단순 벡터로 보면 큰 차이를 인식하기 어렵지만,
RNN은 순서를 고려하여 의미 차이를 반영할 수 있다.
3. RNN의 핵심 아이디어
RNN은 매 시점 t에서 다음을 수행한다.
- 현재 입력 x_t
- 이전 상태 h_{t-1}
을 이용하여 새로운 상태 h_t를 계산한다.
ht=f(Wxxt+Whht−1+b)h_t = f(W_x x_t + W_h h_{t-1} + b)
출력:
yt=g(Wyht)y_t = g(W_y h_t)
4. 구조적 이해
RNN은 다음과 같이 이해할 수 있다.
4.1 기본 구조
- x_t: 현재 입력
- h_{t-1}: 이전 상태 (memory)
- h_t: 현재 상태
- y_t: 출력
4.2 시간 전개 (Unrolling)
RNN은 실제로 다음과 같이 펼쳐서 이해한다.
t=1 → t=2 → t=3 → ... → t=n
각 단계는 동일한 가중치를 공유한다.
즉:
- 하나의 네트워크를 여러 번 반복 사용
- 시간에 따라 연결된 구조
5. 동작 원리 (직관)
RNN을 “읽으면서 기억하는 사람”으로 보면 이해가 쉽다.
문장을 한 단어씩 읽으면서:
- 이전 내용을 기억하고
- 현재 단어를 해석하고
- 새로운 의미를 업데이트
이 과정이 반복된다.
6. Hidden State (핵심 개념)
Hidden state는 RNN의 핵심이다.
역할:
- 과거 정보 요약 저장
- 다음 계산에 전달
즉,
h_t = “지금까지 본 정보의 요약”
7. 학습 방법 (BPTT)
RNN은 Backpropagation을 그대로 쓰지 않고
시간 방향으로 확장된 역전파를 사용한다.
→ Backpropagation Through Time (BPTT)
과정:
- Forward로 모든 시점 계산
- Loss 계산
- 시간 역순으로 gradient 전파
8. RNN의 장점
- 순서 정보 반영 가능
- 시계열 데이터 처리 가능
- 다양한 길이 입력 처리 가능
9. RNN의 한계
9.1 Long-Term Dependency 문제
시간이 길어질수록 과거 정보가 사라짐
원인:
- gradient vanishing / exploding
9.2 병렬 처리 불가
- 이전 상태가 있어야 다음 계산 가능
- GPU 병렬화 비효율
10. RNN의 확장 모델
RNN의 한계를 해결하기 위해 다음 구조가 등장하였다.
- LSTM: 장기 기억 유지
- GRU: 구조 단순화 + 성능 유지
11. 사용 분야
- 자연어 처리 (번역, 감정 분석)
- 음성 인식
- 시계열 예측 (주가, 센서 데이터)
12. RNN vs FNN 차이
다음은 두 모델의 핵심 차이를 구조적으로 정리한 것이다.
12.1 구조적 차이
FNN:
- 입력 → 출력 (단방향)
- 상태 없음
RNN:
- 입력 + 이전 상태 → 출력
- 상태 유지 (memory 존재)
12.2 수식 비교
FNN:
y=f(Wx+b)y = f(Wx + b)
RNN:
ht=f(Wxxt+Whht−1)h_t = f(W_x x_t + W_h h_{t-1})
차이 핵심:
- RNN은 h_{t-1} (과거 정보)가 추가됨
12.3 정보 처리 방식
FNN:
- 입력 하나만 보고 판단
- 독립적인 데이터 처리
RNN:
- 과거 정보를 누적하여 판단
- 순서/문맥 반영
12.4 적용 데이터
FNN:
- 정적인 데이터
- 이미지, tabular 데이터
RNN:
- 시퀀스 데이터
- 텍스트, 음성, 시간 데이터
12.5 메모리 관점
FNN:
- memory 없음
RNN:
- hidden state = memory 역할
12.6 병렬성
FNN:
- 완전 병렬 처리 가능
RNN:
- 순차 처리 필요 (비효율적)
13. 핵심 요약
- RNN은 이전 정보를 기억하는 신경망
- hidden state를 통해 시퀀스를 처리
- 시간에 따라 상태를 업데이트
- 장기 의존성 문제로 인해 LSTM, GRU 등장
14. 최종 한 줄 정리
RNN은
**“이전 입력의 정보를 기억하면서 현재 입력을 처리하는 순환 구조 신경망”**이다.
그리고 FNN과의 본질적 차이는 다음이다.
- FNN: 기억 없음, 독립 처리
- RNN: 기억 있음, 순차 처리
'AL,ML 학부연구생 > 공부 기록' 카테고리의 다른 글
| Cross Entropy 란 무엇인가? (0) | 2026.03.23 |
|---|---|
| BERT 와 GPT 는 무엇이고, 어떻게 활용될까? (0) | 2026.03.23 |
| FeedForward Neural Network (FNN)이란 무엇인가? (0) | 2026.03.23 |
| Query, Key, Value (Q, K, V)란 무엇인가? (0) | 2026.03.23 |
| AI에서 Transformer 란 무엇인가? (0) | 2026.03.23 |