Etc/Deep Learning

7장 시계열 분석(4) - 게이트 순환 신경망(GRU)

z.zzz 2021. 8. 25. 17:01

7.6 게이트 순환 신경망(GRU)

GRU란?

- 게이트 매커니즘이 적용된 RNN 프레임워크의 한 종류

- LSTM보다 간단한 구조

 


7.6.1 GRU 구조

GRU 구조

= LSTM에서 사용하는 망각 게이트와 입력 게이트를 하나로 합침 + 업데이트 게이트

 

특징

· 하나의 게이트 컨트롤러망각 게이트입력 게이트를 모두 제어함

  - 게이트 컨트롤러가 1을 출력 → 망각 게이트 open, 입력 게이트 close

  - 게이트 컨트롤러가 0을 출력 → 망각 게이트 close, 입력 게이트 open

  ⇒ 이전 기억이 저장될 때마다, 단계별 입력은 삭제 

   //망각 게이트 open = 직전 기억을 메모리에 저장

   //입력 게이트 open = 현재 메모리에 새로운 정보를 반영함 

 

· 출력 게이트가 없음 

  → 전체 상태 벡터매 단계마다 출력됨 & 새로운 게이트 컨트롤러(이전 상태의 어느 부분이 출력될지 제어함)가 별도로 존재함

 


A. 망각 게이트

목적 : 과거 정보를 적당히 초기화 시키기

방법 : 시그모이드 함수를 출력으로 이용해, (0,1) 값을 이전 은닉층에 곱함

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

 

 

B. 업데이트 게이트

과거와 현재 정보 최신화 비율을 결정하는 역할

시그모이드로 출력된 결과(zt) : 현시점의 정보량을 결정

1에서 zt를 뺀 값(1-zt) : 직전 시점의 은닉층 정보와 곱함

 

 

C. 후보군

현시점의 정보에 대한 후보군을 계산함

계산 방법 : 과거 은닉층의 정보를 그대로 이용X, 망각 게이트의 결과를 이용

 

D. 은닉층 계산

계산 방법 : '업데이트 게이트 결과'와 '후보군 결과'를 결합 → 현시점의 은닉층을 계산

시그모이드 함수의 결과 : 현시점에서 결과에 대한 정보량을 결정

1-시그모이드 함수의 결과 : 과거의 정보량을 결정

 

📍GRU 전체 내부 구조

 

 


7.6.2 GRU 셀 구현