DL/RNN

[DL][RNN] GRU(Gate Recurrent Unit, 게이트 순환 신경망) 개념

어떻게든 되겠지~ 2025. 5. 16. 01:55

1. GRU(Gate Recurrent Unit, 게이트 순환 신경망)이란?

GRU란 Gate 메커니즘이 적용된 RNN 모델의 한 종류입니다.

RNN의 문제점인 기울기 소멸 문제를 해결하기 위해 "Cell State"와 세 개의 Gate 메커니즘을 도입한 LSTM(Long Term Short Term Memory)은 상대적으로 복잡한 구조로 인해 계산 비용이 너무 크다는 단점이 있습니다.

따라서, GRU는 LSTM의 네트워크를 개선하기 위한 모델로, 정보의 흐름을 제어하기 위해 두 개의 Gate를 사용하여 계산을 효율적으로 합니다. 이를 통해 빠른 학습이 가능하고 낮은 시간 복잡성을 가지게 됩니다.

2. GRU의 구조 및 특징

2.1 GRU의 구조

GRU는 LSTM에서 사용하는 Forget Gate와 Input Gate를 하나로 합친 별도의 Update Gate와 Reset Gate로 구성되어 있어 있습니다.

Update Gate($z_t$)

현재 시점의 Hidden state($h_t$)를 이전 Hidden State($h_{t-1}$)와 새로운 후보 Hidden State(Candidate Hidden State)($\tilde{h_t}$) 사이에서 얼마나 업데이트 할지를 결정하는 Gate

  • Update Gate가 1을 출력 : 이전 상태를 유지하고, 새로운 입력은 반영하지 않는다(Foget Gate가 열리고, Input Gate는 닫히는 구조)
  • Update Gate 가 0을 출력 : 이전 상태는 잊혀지고, 새로운 입력이 반영된다.(Forget Gate가 닫히고, Input Gate는 열리는 구조)

GRU는 별도의 Output Gate가 없어 전체 상태 Vector를 매 단계마다 출력한다.

이는 각 Time Stamp에서 네트워크의 모든 State를 다음 Layer로 전달함을 의미한다.

Reset Gate($r_t$)

과거의 정보를 얼마자 잊을지를 결정하는 Gate. 즉, 이전의 Hidden State($h_{t-1}$)를 현재 입력($x_t$)과 결합하여 새로운 후보 Hidden State를 계산할지를 조절한다.

2.2 GRU의 작동 원리

  • Update Gate($z_t$)
    • Update Gate는 이전 Hidden State $h_{t-1}$를 얼마나 유지할지, 또는 새로운 후보 Hidden State $\tilde{h_t}$를 얼마나 반영할지를 결정한다
    • $z_t$가 1에 가까우면 이전 Hidden State를 많이 유지하고, 0에 가까우면 새로운 정보 $\tilde{h_t}$를 많이 반영
  • Reset Gate($r_t$)
    • Reset Gate는 과거의 정보($h_{t-1}$)를 얼마나 무시할지를 결정한다
    • $r_t$가 1에 가까우면 과거의 정보를 많이 반영하고, $r_t$가 0에 가까우면 과거의 정보를 많이 무시한다.
  • Candidate Hidden state($\tilde{h_t}$)
    • 현재 입력 $x_t$와 과거 Hidden State $h_{t-1}$을 기반으로 새로운 Candidate Hidden State $\tilde{h_t}$를 계산
    • 여기서 $h_{t-1}$은 Reset Gate에 의해 조절된다.
  • 최종 Hidden State($h_t$)
    • Update Gate $z_t$를 사용하여 이전 Hidden State $h_{t-1}$와 새로운 Candidate Hidden State $\tilde{h_t}$사이의 균형을 맞춘다
    • 이로써 최종 Hidden State $h_t$가 결정된다

2.3 GRU과 LSTM의 비교

LSTM과 GRU 모두 RNN의 단점을 보완하기 위해 Gate 메커니즘을 도입한 모델이다

  • Gate
    • GRU : Update Gate, Reset Gate
    • LSTM : Input Gate, Forget Gate, Output Gate를 사용하며, 별도의 Cell state를 유지
  • 구조의 복잡성
    • GRU : 구조가 간단하여 계산 비용이 적고, 학습 속도가 빠르다
    • LSTM : 구조가 복잡하여 더 많은 파라미터를 가지고 있으며, 계산비용이 많이 든다
  • 성능
    • GRU : LSTM에 비해 구조가 간단함에도 불구하고 많은 경우 유사한 성능을 발휘하며, 일부 작업에서는 더 나은 성능을 보이기도 한다. 특히, 데이터가 상대적으로 적거나, 시퀀스가 너무 길지 않은 경우에 효과적이다
    • LSTM : 더 복잡한 구조 덕분에 매우 긴 시퀀스나 복잡한 의존성을 다룰 때 더 나은 성능을 발휘할 수 있다.

2.4 GRU의 장점

  • 간단한 구조 : LSTM에 비해 Gate 수가 적어 구조가 단순하며, 계산 비용과 메모리 사용량이 적다.
  • 효율성 : 학습 속도가 빠르고 적은 Parameter로도 좋은 성능을 낼 수 있다.
  • 장기 의존선 처리 : 기존 RNN보다 장기 의존성을 효과적으로 처리할 수 있다.

3. GRU의 내부 구조(Gate)

3.1 Reset Gate

GRU에서는 LSTM에서의 Output Gate를 없애고 Reset Gate를 정의하였다.

현재 상태에서 얼마나 이전상태의 정보를 유지할 지를 결정하는 역할을 한다.(1에 가까울수록 이전 상태의 정보를 기억한다.)

과거 정보를 적당히 초기화(Reset)시키려는 목적으로 Sigmoid 함수를 출력으로 이용하여 (0, 1)값을 이전 Hidden State 층에 곱한다.

수식

\begin{aligned}
r_{t} &= \sigma(W_{r} \cdot [h_{t-1}, x_{t}])\\
      &= \sigma(W_{xr} \cdot x_t + W_{hr} \cdot h_{t-1} + b_r)
\end{aligned}

위의 그림에서 볼 수 있듯이 이전 상태 $h_{t-1}$과 현재 입력 $x_t$를 선형 변환한 후 Sigmoid 함수를 적용하여 Reset Gate의 값인 $r_t$를 구한다.

여기서 이전 Hidden State $h_{t-1}$과 Reset Gate의 값 $r_t$를 곱하여 이후 Candidate Hidden State $\tilde{h_t}$를 만드는데 사용한다.

3.2 Update Gate($z_t$)

이전 Hidden State $h_{t-1}$와 새로운 정보(입력) $x_t$를 가져오는 것 사이의 균형을 결정하는 역할입니다.(1에 가까울수록 이전 상태의 정보를 더 많이 유지한다.)

이는 LSTM의 Forget Gate와 Input Gate가 결합된 형태와 비슷한 역할을 하며, $z_t$가 1이면 Forget Gate 역할을 수행(이전 정보 $h_{t-1}$보존), $z_t$가 0이면 Input Gate 역할을 수행(새로운 정보 $x_t$반영)

즉, 과거와 현재의 업데이트 비율을 결정하는 역할을 한다.(이전 상태와 새로운 정보 사이의 균형)

수식

\begin{aligned}
z_{t} &= \sigma(W_{z} \cdot [h_{t-1}, x_{t}])\\
      &= \sigma(W_{xz} \cdot x_t + W_{hz} \cdot h_{t-1} + b_z)
\end{aligned}

$z_t$가 1에 가깝다면 $h_t \approx z_t \odot \tilde{h_t}$가 되므로 새 정보를 반영하게 된다(LSTM의 Forget Gate 0, Input Gate 1)

$z_t$가 0에 가깝다면 $h_t \approx (1-0) \odot h_{t-1} $가 되므로 과거 정보를 유지하게 된다(LSTM의 Forget Gate 1, Input Gate 0)

3.3 Candiate Hidden State

LSTM의 임시 Cell State $\tilde{c_t}$와 유사하다.

Candidate Hidden State는 현시점의 정보에 대한 후보군을 계산하여 과거 은닉층의 정보를 그대로 이용하지 않고, Reset Gate의 결과를 이용하여 계산한다.

수식

\begin{aligned}
\tilde{h_{t}} &= \tanh{(W_h \cdot [r_{t} \odot h_{t-1}, x_{t}])}\\
      &= \tanh{(W_{xg} \cdot x_t +  W_{hg}(r_t \odot h_{t-1})  + b_g) }
\end{aligned}
수식에서 알 수 있듯이, $r_t$가 1이면 $h_{t-1}$을 온전히 유지(기억)하게 되고, $r_t$가 0이면 $h_{t-1}$은 $h_{t-1}$을 완전히 무시하게 된다.

3.4 은닉층 계산

마지막으로 Update Gate의 결과 $z_t$와 Candidate의 결과 $\tilde{h_t}$를 결합하여 현시점의 은닉층을 계산한다.

Sigmoid 함수의 결과 $z_t$는 이전 정보의 유지 정도를 결정하고, $1-z_t$는 새로운 정보의 반영 정도를 결정한다.

수식

$$h_{t} = z_{t} \odot h_{t-1}  + (1 - z_{t})  \odot \tilde{h_t} $$

 

$z_{t}$가 0에 가까우면 이전 상태($h_{t-1}$)는 무시되고, 은닉상태는 후보군($\tilde{h_t}$)으로 대체       
$z_{t}$가 1에 가까우면 이전 상태($h_{t-1}$)는 유지되고, 은닉상태는 거의 변화하지 않는다.