본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Gated Recurrent Unit; GRU; 게이트 순환 유닛
리셋 게이트와 업데이트 게이트 두 개로 정보의 유지와 갱신을 조절하는, LSTM보다 단순한 순환 신경망 단위

GRU(Gated Recurrent Unit, 게이트 순환 유닛)는 2014년 조경현 등이 제안한 순환 신경망의 은닉 단위다.[1] 기본 RNN의 기울기 소실 문제를 게이트로 완화한다는 점에서 LSTM과 같은 계열이지만, 별도의 셀 상태 없이 은닉 상태 하나만 두고 게이트도 셋에서 둘로 줄여 구조가 더 단순하다.

원 논문은 신경망 기계 번역의 RNN 인코더-디코더를 제안하면서 이 단위를 "새로운 종류의 은닉 단위"로 소개했고, 같은 연구 그룹의 정준영 등은 2014년 12월 이 단위를 "gated recurrent unit(GRU)"이라 부르며 LSTM과 비교 평가했다.[2] 같은 해 바다나우 등의 어텐션 기반 번역 모델도 이 게이트 단위를 썼다.[3]

시점 t의 입력 xt와 이전 은닉 상태 ht−1로 다음을 계산한다. σ는 시그모이드, ⊙는 원소별 곱이다.

리셋 게이트: rt=σ(Wrxt+Urht−1+br)

업데이트 게이트: zt=σ(Wzxt+Uzht−1+bz)

후보 상태: h~t=tanh⁡(Whxt+Uh(rt⊙ht−1)+bh)

새 은닉 상태: ht=(1−zt)⊙ht−1+zt⊙h~t

  • 리셋 게이트 rt: 후보 상태를 만들 때 이전 상태를 얼마나 참고할지 정한다. 0에 가까우면 과거를 무시하고 현재 입력만으로 후보를 만든다. 짧은 범위의 의존성을 잡는 단위는 이 게이트가 자주 열리고 닫힌다.
  • 업데이트 게이트 zt: 이전 상태를 얼마나 유지하고 후보 상태를 얼마나 받아들일지 정한다. LSTM의 망각 게이트와 입력 게이트를 하나로 묶은 역할로, 유지 비율과 갱신 비율의 합이 항상 1이다. 이 게이트가 계속 "유지" 쪽이면 정보가 여러 시점을 거의 그대로 건너가므로 긴 범위의 의존성을 학습할 수 있다.[1]

문헌마다 zt와 1−zt의 위치가 바뀐 표기가 있다. 원 논문은 ht=zt⊙ht−1+(1−zt)⊙h~t로 써서 z가 "이전 상태를 유지하는 비율"이었다.[1] 의미는 같고 게이트 이름의 해석만 반대가 된다. 또 파이토치의 torch.nn.GRU는 리셋 게이트를 Uhht−1+b를 계산한 뒤에 곱하는데, 문서는 이것이 원 논문과 다르며 효율을 위해 의도적으로 바꾼 것이라고 밝힌다.[4] 같은 이름의 GRU라도 프레임워크 사이에서 가중치를 옮기면 결과가 조금 달라질 수 있는 이유다.

항목 LSTM GRU
제안 1997년 호흐라이터·슈미트후버[5] 2014년 조경현 등[1]
상태 셀 상태 ct + 은닉 상태 ht 은닉 상태 ht 하나
게이트 입력·망각·출력 3개 리셋·업데이트 2개
유지와 갱신 망각 게이트와 입력 게이트가 따로 정함 업데이트 게이트 하나가 합이 1이 되게 정함
출력 조절 출력 게이트가 셀 상태를 얼마나 내보낼지 조절 출력 게이트 없음, 은닉 상태를 그대로 내보냄
매개변수 수(입력 차원 m, 은닉 차원 n) 약 4(nm+n2+n) 약 3(nm+n2+n)
계산량 기준 약 4분의 3
계수(counting) 능력 유한 정밀도에서 카운터 구현 가능 구현하기 어려움[6]

성능은 과제에 따라 갈린다. 정준영 등은 다성 음악 모델링과 음성 신호 모델링에서 두 게이트 단위 모두 tanh 단위보다 확실히 낫고, GRU가 LSTM과 비슷한 성능을 낸다고 보고했다.[2] 와이스(Gail Weiss) 등은 유한 정밀도와 선형 시간이라는 현실적 조건에서는 LSTM이 GRU보다 표현력이 엄밀히 강하다는 것을 보였다. LSTM은 셀 상태를 계수기처럼 써서 anbn 같은 언어를 인식할 수 있지만, GRU는 업데이트 식이 이전 상태와 후보의 볼록 결합이라 값이 일정 범위에 묶여 계수가 어렵다.[6] 매개변수가 적어 학습이 빠른 GRU와 표현력이 더 큰 LSTM 중 어느 쪽이 나은지는 과제와 데이터에 따라 실험으로 정해야 한다.

2014~2017년 GRU는 LSTM과 함께 신경망 기계 번역, 음성 인식, 언어 모델, 시계열 예측의 기본 부품이었다. 양방향 GRU 인코더와 어텐션을 결합한 번역 모델이 대표적이다.[3] 2017년 이후 트랜스포머가 자연어 처리의 주력이 되면서 쓰임이 줄었지만, 연산 자원이 작은 기기의 실시간 음성·센서 처리와 시계열 예측에서는 계속 쓰인다.

2024년에는 GRU의 게이트가 이전 은닉 상태에 의존하지 않도록 단순화하면 학습 때 병렬 스캔으로 전체 시퀀스를 한꺼번에 계산할 수 있다는 minGRU가 제안되었다. 저자들은 이 최소 버전이 매개변수가 더 적으면서 최신 시퀀스 모델과 경쟁할 만한 성능을 낸다고 보고했다.[7] 입력에 따라 유지·망각을 정하는 게이트라는 GRU의 발상은 Mamba 같은 선택적 상태 공간 모델에서도 다시 등장한다. HiPPO 논문은 자신들의 틀이 GRU 같은 RNN의 게이트 메커니즘을 일반화한다고 밝혔다.[8]

  1. ↑ 1.0 1.1 1.2 1.3 Kyunghyun Cho 외, 〈Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation〉, EMNLP 2014. arXiv:1406.1078
  2. ↑ 2.0 2.1 Junyoung Chung, Caglar Gulcehre, KyungHyun Cho, Yoshua Bengio, 〈Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling〉, NIPS 2014 Deep Learning Workshop. arXiv:1412.3555
  3. ↑ 3.0 3.1 Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio, 〈Neural Machine Translation by Jointly Learning to Align and Translate〉, ICLR 2015. arXiv:1409.0473
  4. ↑ PyTorch, 〈torch.nn.GRU〉 문서. docs.pytorch.org
  5. ↑ Sepp Hochreiter, Jürgen Schmidhuber, 〈Long Short-Term Memory〉, Neural Computation 9(8), 1735~1780쪽, 1997. doi:10.1162/neco.1997.9.8.1735
  6. ↑ 6.0 6.1 Gail Weiss, Yoav Goldberg, Eran Yahav, 〈On the Practical Computational Power of Finite Precision RNNs for Language Recognition〉, ACL 2018. arXiv:1805.04908
  7. ↑ Leo Feng 외, 〈Were RNNs All We Needed?〉, 2024. arXiv:2410.01201
  8. ↑ Albert Gu 외, 〈HiPPO: Recurrent Memory with Optimal Polynomial Projections〉, NeurIPS 2020. arXiv:2008.07669