GRU
더 많은 작업
- Gated Recurrent Unit; GRU; 게이트 순환 유닛
- 리셋 게이트와 업데이트 게이트 두 개로 정보의 유지와 갱신을 조절하는, LSTM보다 단순한 순환 신경망 단위
GRU(Gated Recurrent Unit, 게이트 순환 유닛)는 2014년 조경현 등이 제안한 순환 신경망의 은닉 단위다.[1] 기본 RNN의 기울기 소실 문제를 게이트로 완화한다는 점에서 LSTM과 같은 계열이지만, 별도의 셀 상태 없이 은닉 상태 하나만 두고 게이트도 셋에서 둘로 줄여 구조가 더 단순하다.
원 논문은 신경망 기계 번역의 RNN 인코더-디코더를 제안하면서 이 단위를 "새로운 종류의 은닉 단위"로 소개했고, 같은 연구 그룹의 정준영 등은 2014년 12월 이 단위를 "gated recurrent unit(GRU)"이라 부르며 LSTM과 비교 평가했다.[2] 같은 해 바다나우 등의 어텐션 기반 번역 모델도 이 게이트 단위를 썼다.[3]
시점 t의 입력 와 이전 은닉 상태 로 다음을 계산한다. 는 시그모이드, 는 원소별 곱이다.
리셋 게이트:
업데이트 게이트:
후보 상태:
새 은닉 상태:
- 리셋 게이트 : 후보 상태를 만들 때 이전 상태를 얼마나 참고할지 정한다. 0에 가까우면 과거를 무시하고 현재 입력만으로 후보를 만든다. 짧은 범위의 의존성을 잡는 단위는 이 게이트가 자주 열리고 닫힌다.
- 업데이트 게이트 : 이전 상태를 얼마나 유지하고 후보 상태를 얼마나 받아들일지 정한다. LSTM의 망각 게이트와 입력 게이트를 하나로 묶은 역할로, 유지 비율과 갱신 비율의 합이 항상 1이다. 이 게이트가 계속 "유지" 쪽이면 정보가 여러 시점을 거의 그대로 건너가므로 긴 범위의 의존성을 학습할 수 있다.[1]
| 항목 | LSTM | GRU |
|---|---|---|
| 제안 | 1997년 호흐라이터·슈미트후버[5] | 2014년 조경현 등[1] |
| 상태 | 셀 상태 + 은닉 상태 | 은닉 상태 하나 |
| 게이트 | 입력·망각·출력 3개 | 리셋·업데이트 2개 |
| 유지와 갱신 | 망각 게이트와 입력 게이트가 따로 정함 | 업데이트 게이트 하나가 합이 1이 되게 정함 |
| 출력 조절 | 출력 게이트가 셀 상태를 얼마나 내보낼지 조절 | 출력 게이트 없음, 은닉 상태를 그대로 내보냄 |
| 매개변수 수(입력 차원 m, 은닉 차원 n) | 약 | 약 |
| 계산량 | 기준 | 약 4분의 3 |
| 계수(counting) 능력 | 유한 정밀도에서 카운터 구현 가능 | 구현하기 어려움[6] |
성능은 과제에 따라 갈린다. 정준영 등은 다성 음악 모델링과 음성 신호 모델링에서 두 게이트 단위 모두 tanh 단위보다 확실히 낫고, GRU가 LSTM과 비슷한 성능을 낸다고 보고했다.[2] 와이스(Gail Weiss) 등은 유한 정밀도와 선형 시간이라는 현실적 조건에서는 LSTM이 GRU보다 표현력이 엄밀히 강하다는 것을 보였다. LSTM은 셀 상태를 계수기처럼 써서 같은 언어를 인식할 수 있지만, GRU는 업데이트 식이 이전 상태와 후보의 볼록 결합이라 값이 일정 범위에 묶여 계수가 어렵다.[6] 매개변수가 적어 학습이 빠른 GRU와 표현력이 더 큰 LSTM 중 어느 쪽이 나은지는 과제와 데이터에 따라 실험으로 정해야 한다.
2014~2017년 GRU는 LSTM과 함께 신경망 기계 번역, 음성 인식, 언어 모델, 시계열 예측의 기본 부품이었다. 양방향 GRU 인코더와 어텐션을 결합한 번역 모델이 대표적이다.[3] 2017년 이후 트랜스포머가 자연어 처리의 주력이 되면서 쓰임이 줄었지만, 연산 자원이 작은 기기의 실시간 음성·센서 처리와 시계열 예측에서는 계속 쓰인다.
2024년에는 GRU의 게이트가 이전 은닉 상태에 의존하지 않도록 단순화하면 학습 때 병렬 스캔으로 전체 시퀀스를 한꺼번에 계산할 수 있다는 minGRU가 제안되었다. 저자들은 이 최소 버전이 매개변수가 더 적으면서 최신 시퀀스 모델과 경쟁할 만한 성능을 낸다고 보고했다.[7] 입력에 따라 유지·망각을 정하는 게이트라는 GRU의 발상은 Mamba 같은 선택적 상태 공간 모델에서도 다시 등장한다. HiPPO 논문은 자신들의 틀이 GRU 같은 RNN의 게이트 메커니즘을 일반화한다고 밝혔다.[8]
- ↑ 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.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.0 3.1 Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio, 〈Neural Machine Translation by Jointly Learning to Align and Translate〉, ICLR 2015. arXiv:1409.0473
- ↑ PyTorch, 〈torch.nn.GRU〉 문서. docs.pytorch.org
- ↑ 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.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
- ↑ Leo Feng 외, 〈Were RNNs All We Needed?〉, 2024. arXiv:2410.01201
- ↑ Albert Gu 외, 〈HiPPO: Recurrent Memory with Optimal Polynomial Projections〉, NeurIPS 2020. arXiv:2008.07669