AL,ML 학부연구생/공부 기록

RNN(Recurrent Neural Network)는 무엇이고, FNN과 어떻게 다른가?

김형준 2026. 3. 23. 17:41
반응형

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)

과정:

  1. Forward로 모든 시점 계산
  2. Loss 계산
  3. 시간 역순으로 gradient 전파

8. RNN의 장점

  1. 순서 정보 반영 가능
  2. 시계열 데이터 처리 가능
  3. 다양한 길이 입력 처리 가능

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: 기억 있음, 순차 처리
반응형