맨위로가기

게이트 순환 유닛

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

게이트 순환 유닛(GRU)은 순환 신경망(RNN)의 한 종류로, 은닉 상태를 갱신하기 위해 업데이트 게이트와 재설정 게이트를 사용하는 구조이다. GRU는 갱신 게이트를 통해 은닉 상태를 유지하고 장기 기억을 가능하게 하며, 초기화 게이트를 통해 은닉 상태를 삭제하여 컴팩트한 표현을 얻을 수 있다. GRU는 완전 게이트 유닛, 최소 게이트 유닛(MGU), 라이트 GRU(LiGRU) 등 다양한 변형이 존재하며, 음성 인식 등의 분야에서 활용된다.

2. 아이디어

게이트 순환 유닛, 완전 게이티드 버전


GRU의 핵심 아이디어는 은닉 상태(hidden state)를 업데이트하는 방식에 있다. 이전 은닉 상태와 현재 입력을 조합하여 새로운 은닉 상태를 계산할 때, '업데이트 게이트'와 '재설정 게이트'라는 두 가지 게이트를 사용한다. 이 게이트들은 정보의 흐름을 조절하는 역할을 한다.[19]

  • 업데이트 게이트 (z_t): 이전 은닉 상태의 정보를 얼마나 유지할지를 결정한다. 이 게이트는 장기 기억을 보존하는 데 중요한 역할을 한다.[20][21] 만약 업데이트 게이트가 1에 가까우면 이전 은닉 상태가 거의 그대로 유지되고, 0에 가까우면 이전 정보는 무시되고 새로운 정보가 반영된다.

  • 재설정 게이트 (r_t): 이전 은닉 상태를 얼마나 무시하고 새로운 입력을 반영할지를 결정한다. 이 게이트는 더 간결한 은닉 표현을 만드는 데 도움을 준다.[22][23] 재설정 게이트가 0에 가까우면 이전 은닉 상태는 무시되고, 1에 가까우면 이전 은닉 상태가 새로운 은닉 상태 계산에 사용된다.


각 게이트는 입력과 이전 은닉 상태에 대한 가중치 합과 편향(bias)을 통해 계산되며, 시그모이드 함수를 거쳐 0과 1 사이의 값을 갖는다.

GRU는 LSTM에 비해 게이트 수가 적고 구조가 간단하여 학습 파라미터 수가 적고 계산 속도가 빠르다는 장점을 가진다.

GRU는 다음 식으로 간략하게 표현할 수 있다. (실제 연산과는 다소 차이가 있다.)

:h_t = (1 - z) \cdot h_{t-1} + z \cdot f(x_t + r \cdot h_{t-1})

여기서 은닉 상태 h_t는 다음 두 가지 요소의 가중 합으로 업데이트된다.

  • 이전 시점(t-1)의 은닉 상태 h_{t-1}
  • "입력 x_t"와 "가중치가 적용된 은닉 상태 r \cdot h_{t-1}"를 f 함수로 비선형 변환한 값


예를 들어, 업데이트 게이트 z가 1이면 입력은 무시되고 은닉 상태가 그대로 유지된다. 반대로 z가 0이면 입력과 은닉 상태의 비선형 변환에 의해 새로운 은닉 상태가 계산된다. 재설정 게이트 r은 새로운 은닉 상태 계산에 영향을 준다. r이 0이면 입력만으로 새로운 은닉 상태가 계산되고[19], r이 1이면 입력과 은닉 상태가 모두 사용된다.

단순한 RNN과 비교했을 때, GRU는 업데이트 게이트 z를 통해 은닉 상태를 유지하고[20] 장기 기억을 가능하게 한다.[21] 또한, 재설정 게이트 r을 통해 은닉 상태를 삭제함으로써[22] 더 간결한 은닉 표현을 얻을 수 있다.[23]

은닉 상태의 크기가 1보다 크면, 여러 개의 zr (z_t^jr_t^j)을 갖게 된다. 각각의 j는 독립적으로 학습되므로, 어떤 j는 업데이트 게이트 z가 장기간 1에 가까워 장기 기억을 유지하고, 다른 j는 재설정 게이트 r이 자주 바뀌면서 입력 필터링을 수행하는 것처럼 동작할 수 있다. 즉, 각각의 은닉 상태가 서로 다른 시간 규모의 표현을 학습할 수 있다.[24]

3. 아키텍처

게이트 순환 유닛(GRU)은 순환 신경망(RNN)의 한 종류로, LSTM(Long Short-Term Memory)의 간소화된 형태이다. GRU는 여러 변형이 존재하는데, 대표적으로 완전 게이트 유닛, 최소 게이트 유닛, 그리고 Light GRU (LiGRU) 등이 있다.[8]


  • 완전 게이트 유닛 (Fully Gated Unit): 가장 일반적인 형태로, 업데이트 게이트와 재설정 게이트를 모두 사용한다. (자세한 내용은 하위 섹션 참고)
  • 최소 게이트 유닛 (Minimal Gated Unit): 업데이트 게이트와 재설정 게이트를 망각 게이트 하나로 통합한 형태이다. (자세한 내용은 하위 섹션 참고)
  • Light GRU (LiGRU): 재설정 게이트를 제거하고, 활성화 함수로 ReLU를 사용하며, 배치 정규화를 적용한 형태이다. (자세한 내용은 하위 섹션 참고)

3. 1. 완전 게이트 유닛 (Fully Gated Unit)

완전 게이트 유닛(Fully Gated Unit)은 가장 일반적인 게이트 순환 유닛(GRU) 형태이다. 업데이트 게이트(z_t)와 재설정 게이트(r_t)를 모두 사용하여 이전 은닉 상태와 입력을 결합하고 새로운 은닉 상태를 계산한다.[8]

처음 t = 0일 때, 출력 벡터는 h_0 = 0이다.

아래는 완전 게이트 유닛의 작동 방식을 나타내는 수식이다.[9]

:

\begin{align}

z_t &= \sigma(W_{z} x_t + U_{z} h_{t-1} + b_z) \\

r_t &= \sigma(W_{r} x_t + U_{r} h_{t-1} + b_r) \\

\hat{h}_t &= \phi(W_{h} x_t + U_{h} (r_t \odot h_{t-1}) + b_h) \\

h_t &= (1-z_t) \odot h_{t-1} + z_t \odot \hat{h}_t

\end{align}



변수 (여기서 d는 입력 특징의 수, e는 출력 특징의 수):

  • x_t \in \mathbb{R}^{d}: 입력 벡터
  • h_t \in \mathbb{R}^{e}: 출력 벡터
  • \hat{h}_t \in \mathbb{R}^{e}: 후보 활성화 벡터
  • z_t \in (0,1)^{e}: 업데이트 게이트 벡터
  • r_t \in (0,1)^{e}: 재설정 게이트 벡터
  • W \in \mathbb{R}^{e \times d}, U \in \mathbb{R}^{e \times e}b \in \mathbb{R}^{e}: 학습 중에 학습해야 하는 파라미터 행렬 및 벡터


업데이트 게이트(z_t)는 이전 은닉 상태(h_{t-1})와 현재 입력(x_t)을 얼마나 반영할지 결정한다. 재설정 게이트(r_t)는 이전 은닉 상태를 얼마나 무시할지 결정한다. 이를 통해 GRU는 장기 기억과 단기 기억을 모두 효과적으로 처리할 수 있다.[19][20][21][22][23][24]
변형업데이트 및 재설정 게이트 계산에 이전 은닉 상태만 사용하거나, 편향만 사용하는 등 다양한 변형이 가능하다.[9]

유형 1


유형 2


유형 3

  • 유형 1: 각 게이트는 이전 은닉 상태와 편향에만 의존
  • :

\begin{align}

z_t &= \sigma(U_{z} h_{t-1} + b_z) \\

r_t &= \sigma(U_{r} h_{t-1} + b_r) \\

\end{align}


  • 유형 2: 각 게이트는 이전 은닉 상태에만 의존
  • :

\begin{align}

z_t &= \sigma(U_{z} h_{t-1}) \\

r_t &= \sigma(U_{r} h_{t-1}) \\

\end{align}


  • 유형 3: 각 게이트는 편향만을 사용하여 계산
  • :

\begin{align}

z_t &= \sigma(b_z) \\

r_t &= \sigma(b_r) \\

\end{align}


3. 2. 최소 게이트 유닛 (Minimal Gated Unit)

최소 게이트 유닛(MGU)은 완전 게이트 유닛과 유사하지만, 업데이트 및 재설정 게이트가 망각 게이트로 통합된다는 점이 다르다. 출력 벡터에 대한 방정식도 변경되어야 한다.[10]

:

\begin{align}

f_t &= \sigma(W_{f} x_t + U_{f} h_{t-1} + b_f) \\

\hat{h}_t &= \phi(W_{h} x_t + U_{h} (f_t \odot h_{t-1}) + b_h) \\

h_t &= (1-f_t) \odot h_{t-1} + f_t \odot \hat{h}_t

\end{align}



여기서,

  • x_t: 입력 벡터
  • h_t: 출력 벡터
  • \hat{h}_t: 후보 활성화 벡터
  • f_t: 망각 벡터
  • W, U, b: 파라미터 행렬 및 벡터


연산자 \circ아다마르 곱을 나타낸다.

최소 게이트 유닛의 수식은 다음과 같다.[26]

:

\begin{align}

f_t &= \sigma_g(W_{f} x_t + U_{f} h_{t-1} + b_f) \\

h_t &= f_t \circ h_{t-1} + (1-f_t) \circ \sigma_h(W_{h} x_t + U_{h} (f_t \circ h_{t-1}) + b_h)

\end{align}



여기서,

  • x_t: 입력 벡터
  • h_t: 출력 벡터
  • f_t: 망각 벡터
  • W, U, b: 파라미터 행렬 및 벡터

3. 3. Light GRU (LiGRU)

LiGRU[4]는 재설정 게이트를 제거하고, 쌍곡 탄젠트(tanh) 대신 ReLU 활성화 함수를 사용하며, 배치 정규화를 적용한 게이트 순환 유닛(GRU)의 변형이다.

수식은 다음과 같다.

:

\begin{align}

z_t &= \sigma(\operatorname{BN}(W_z x_t) + U_z h_{t-1}) \\

\tilde{h}_t &= \operatorname{ReLU}(\operatorname{BN}(W_h x_t) + U_h h_{t-1}) \\

h_t &= z_t \odot h_{t-1} + (1 - z_t) \odot \tilde{h}_t

\end{align}



여기서 연산자 \circ아다마르 곱을 나타낸다.

LiGRU는 베이즈 관점에서 연구되었다.[11] 이 분석을 통해 LiBRU(Light Bayesian Recurrent Unit)라는 변형이 도출되었으며, 이는 음성 인식 작업에서 LiGRU보다 약간 개선된 성능을 보였다.

참조

[1] arXiv Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation 2014
[2] 서적 9th International Conference on Artificial Neural Networks: ICANN '99 https://ieeexplore.i[...]
[3] 웹사이트 Recurrent Neural Network Tutorial, Part 4 – Implementing a GRU/LSTM RNN with Python and Theano – WildML http://www.wildml.co[...] 2016-05-18
[4] 간행물 Light Gated Recurrent Units for Speech Recognition
[5] 간행물 On extended long short-term memory and dependent bidirectional recurrent neural network
[6] arXiv Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling
[7] 간행물 Are GRU cells more specific and LSTM cells more sensitive in motive classification of text?
[8] arXiv Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling
[9] arXiv Gate-Variants of Gated Recurrent Unit (GRU) Neural Networks 2017-01-20
[10] arXiv Simplified Minimal Gated Unit Variations for Recurrent Neural Networks 2017-01-12
[11] conference A Bayesian Interpretation of the Light Gated Recurrent Unit https://ieeexplore.i[...] IEEE 2021-05
[12] 문서
[13] arXiv Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation 2014
[14] 간행물 Learning to Forget: Continual Prediction with LSTM https://ieeexplore.i[...]
[15] 웹사이트 Recurrent Neural Network Tutorial, Part 4 – Implementing a GRU/LSTM RNN with Python and Theano – WildML http://www.wildml.co[...] 2016-05-18
[16] arXiv Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling
[17] arXiv On the Practical Computational Power of Finite Precision RNNs for Language Recognition
[18] arXiv Massive Exploration of Neural Machine Translation Architectures
[19] 문서
[20] 문서
[21] 문서
[22] 문서
[23] 문서
[24] 문서
[25] arXiv Gate-Variants of Gated Recurrent Unit (GRU) Neural Networks 2017-01-20
[26] arXiv Simplified Minimal Gated Unit Variations for Recurrent Neural Networks 2017-01-12



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com