RNN (3)

Q·2025년 8월 25일

ML engineer

목록 보기
14/18

1. Recurrent Neural Network (RNN)

개념

  • 순환 구조: Hidden node가 방향을 가진 edge로 연결되어 이전 상태 정보를 다음 state로 전달.
  • 입력: 시점 tt의 단어 xtx_t
  • Hidden State: st=σ(Wst1+Uxt)s_t = \sigma(W s_{t-1} + U x_t)
  • 출력: ot=Vsto_t = V s_t
  • Shared Weights: 모든 시점에서 동일한 W,U,VW, U, V를 공유.
  • 따라서 sts_t에는 지금까지의 모든 입력 정보가 메모리처럼 저장됨.

2. RNN의 한계: Gradient Vanishing Problem

동작

  • 학습 시 역전파도 시간축을 따라 거꾸로 전파됨 → 이를 BPTT (Backpropagation Through Time)라고 함.
  • 시간이 길어질수록(시퀀스 길어질수록), gradient가 곱해지며 점점 작아져서 0에 수렴.
  • 결국 오래된 정보(먼 과거 단어)는 학습이 잘 안 됨.
  • RNN은 장기 의존성(long-term dependency) 학습에 취약.

3. LSTM (Long Short-Term Memory)

개념

  • Gradient Vanishing 문제 해결을 위해 고안된 RNN 변형.
  • 아이디어: 단순히 모든 과거 정보를 전달하지 않고, 시점마다 “무엇을 기억할지 / 무엇을 버릴지”를 Gate로 제어.
  • 내부에 별도의 Cell state (CtC_t)를 두어 정보를 장기적으로 유지.

4. LSTM 동작 단계 (Gate 구조)

(1) Forget Gate (망각)

  • 이전 시점의 정보를 얼마나 버릴지 결정.
    ft=σ(Wf[ht1,xt])f_t = \sigma(W_f [h_{t-1}, x_t])
  • ft=0f_t = 0 : 전부 버림 / ft=1f_t = 1 : 전부 유지

(2) Input Gate (저장)

  • 현재 시점 입력에서 어떤 정보를 새로 저장할지 결정.
    it=σ(Wi[ht1,xt])i_t = \sigma(W_i [h_{t-1}, x_t])

  • 후보 정보(C~t\tilde{C}_t):
    C~t=tanh(Wc[ht1,xt])\tilde{C}t = \tanh(W_c [h{t-1}, x_t])

(3) Cell State 업데이트

  • 과거 cell state와 현재 정보를 합쳐 새로운 cell state 형성.
    Ct=ft×Ct1+it×C~tC_t = f_t \times C_{t-1} + i_t \times \tilde{C}_t

(4) Output Gate (출력)

  • 최종 출력 hth_t를 결정.
    ot=σ(Wo[ht1,xt])o_t = \sigma(W_o [h_{t-1}, x_t])
    ht=ot×tanh(Ct)h_t = o_t \times \tanh(C_t)

  • 즉, LSTM은 매 시점마다 버릴 것, 추가할 것, 출력할 것을 선택하며 장기 의존성을 유지.

5. 예시

문장: “나는 오늘 점심에 햄버거를 먹었다.”

  • 일반 RNN: 멀리 떨어진 “나는”과 “먹었다” 관계가 gradient vanishing 때문에 잘 학습되지 않음.
  • LSTM: “Forget gate”가 불필요한 단어 정보는 줄이고, “Input gate”가 “먹었다”와 관련 있는 단어 정보를 저장하여 장기 의존성 보존.
profile
Data Engineer

0개의 댓글