AI/Theory_Private

GRU 게이트 순환 신경망

floraj 2023. 5. 27. 20:49

GRU 구조

GRU는 LSTM에서 사용하는 망각 게이트와 입력 게이트를 하나로 합친 것

LSTM의 구조를 조금 더 간단하게 만든 것.

 

하나의 게이트 컨트롤러(gate controller)가 망각 게이트와 입력 게이트를 모두 제어함.

게이트 컨트롤러가 1을 출력하면 망각 게이트는 열리고, 입력 게이트는 닫힘.

반대로 0을 출력하면 망각 게이트는 닫히고 입력 게이트는 열림

즉, 이전 기억이 저장될 때마다 단계별 입력은 삭제되는 것. 

 

GRU는 출력 게이트가 없어 전체 상태 벡터가 매 단계마다 출력되며,

이전 상태의 어느 부분이 출력될지 제어하는 새로운 게이트 컨트롤러가 별도로 존재.

 

 

망각 게이트

망각 게이트(reset gate)는 과거 정보를 적당히 초기화(reset)시키려는 목적으로

시그모이드 함수를 출력으로 이용하여 (0,1) 값을 이전 은닉층에 곱함.

이전 시점의 은닉층 값에 현시점의 정보에 대한 가중치를 곱한 것.

 

이전 시점의 hidden state와 현 시점의 x를 활성화함수 시그모이드를 적용하여 구하는 방식

결과값은 0~1 사이의 값을 가질 것이며 이전 hidden state의 값을 얼마나 활용할 것인지에 대한 정보로 해석할 수 있음

reset gate에서 나온 값은 그대로 사용되는 것이 아니라 (3) 식으로 다시 활용.

(3)식에서는 전 시점의 hidden state에 reset gate를 곱해서 계산

 

업데이트 게이트

업데이트 게이트(update gate)는 과거와 현재 정보의 최신화 비율을 결정하는 역할.

시그모이드로 출력된 결과(zt)는 현시점의 정보량을 결정하고 1에서 뺀 값(1-zt)을 직전 시점의 은닉층 정보와 곱함.

 

 

LSTM의 input, forget gate와 비슷한 역할을 하며 과거와 현재의 정보를 각각 얼마나 반영할지에 대한 비율을 구하는 것

(1)식을 통해서 구한 결과 z는 현재 정보를 얼마나 사용할지 반영, (1-z)는 과거 정보에 대해서 얼마나 사용할지 반영

각 역할을 LSTM의 input, forget gate로 볼 수 있고 최종적으로 (4)식을 통해 현 시점의 출력값 hidden state를 구함

학습할 파라미터가 더 적은 것이 장점

 

 

Practice

 

https://colab.research.google.com/drive/1No-v86Z-1j9NzfoYvOV45qnpDks3O2s3?usp=sharing 

 

Google Colaboratory Notebook

Run, share, and edit Python notebooks

colab.research.google.com

 

Reference

 

딥러닝 파이토치 교과서 ch 07.

[바람돌이/딥러닝] LSTM, GRU 이론 및 개념(Long Short Term Memory, Gated Recurrent Unit)