GRU(Gate Recurrent Units)

­강지윤·2025년 6월 2일
post-thumbnail

🔁 GRU(Gated Recurrent Unit) 구조와 동작 원리

✅ LSTM의 장점을 가져온 GRU

GRU(Gated Recurrent Unit)는 LSTM의 장점을 유지하면서 더 단순한 구조로 만든 순환 신경망(RNN)
LSTM의 핵심 기능인 장기 기억 유지는 그대로 가져오되, 내부 구조를 더 간소화해서 연산량을 줄이고 학습 속도를 개선


🔍 GRU의 핵심 특징

  • LSTM에서 사용되던 3개의 게이트 (Forget, Input, Output)
    2개의 게이트 (Update, Reset)로 축소
  • LSTM의 Cell State CtC_t를 제거하고,
    → 하나의 Hidden State hth_t가 모든 기억을 담당
  • 구조는 단순하지만, 성능은 LSTM에 근접하거나 유사

📦 GRU의 구조 개요

  • GRU는 은닉 상태 ht1h_{t-1}에서 다음 상태 hth_t로 연결될 때
    두 갈래로 분기되었다가 다시 합쳐지는 구조를 가짐! (LSTM이랑 비슷)

위 그림처럼, Reset Gate와 Update Gate가 각각 정보를 조절하는 역할을 하며,
정보 선택과 업데이트가 이루어지는 흐름을 만들어줍니다.


✨ GRU에서 새롭게 생긴 두 개의 Gate

1️⃣ Reset Gate rtr_t

  • 새로운 사건이나 입력이 들어왔을 때, 기존의 기억을 얼마나 참고할지 결정하는 게이트
  • 단기 기억 중심의 처리를 가능하게 함
rt=σ(Wrxt+Urht1)r_t = \sigma(W_r \cdot x_t + U_r \cdot h_{t-1})

예: 이전 정보가 무의미할 경우(질문이 바뀜 등) 기억을 '초기화'하듯 리셋


2️⃣ Update Gate ztz_t

  • 현재 기억 ( \tilde{h}t )와 이전 기억 ( h{t-1} )을 어떻게 조합할지 가중 평균을 결정
  • 기억의 유지 vs 갱신 정도를 제어
zt=σ(Wzxt+Uzht1)z_t = \sigma(W_z \cdot x_t + U_z \cdot h_{t-1})

이전 기억을 유지할지, 새로 덮어쓸지를 결정하는 가중치 평균 게이트


🔁 GRU의 전체 계산 과정

  1. Reset Gate 계산: 과거 정보를 얼마나 반영할지 결정

    rt=σ(Wrxt+Urht1)r_t = \sigma(W_r \cdot x_t + U_r \cdot h_{t-1})
  2. Update Gate 계산: 이전 상태를 얼마나 유지할지 결정

    zt=σ(Wzxt+Uzht1)z_t = \sigma(W_z \cdot x_t + U_z \cdot h_{t-1})
  3. 후보 은닉 상태 계산: 현재 입력 + 리셋된 과거 정보 기반

    h~t=tanh(Wxt+U(rtht1))\tilde{h}_t = \tanh(W \cdot x_t + U \cdot (r_t \odot h_{t-1}))
  4. 최종 은닉 상태 업데이트

    ht=ztht1+(1zt)h~th_t = z_t \odot h_{t-1} + (1 - z_t) \odot \tilde{h}_t
  • \odot: element-wise 곱
  • hth_t: GRU의 최종 출력이자 다음 시점으로 전달되는 hidden state

🧠 GRU의 직관적 해석

구성 요소기능
Reset Gate rtr_t과거 정보를 얼마나 초기화할지 결정
Update Gate ztz_t과거 정보를 얼마나 유지할지 결정
Hidden State hth_t기억과 출력을 모두 담당하는 상태
profile
Proverbs 2:20

0개의 댓글