본문 바로가기

AI/TensorFlow 학습

18. TensorFlow 2.x - GRU 소개

참고: https://youtu.be/KLtMNGjICrk?si=8n_426hpLM-9Hrpv

 

 

지난 글에서 살펴보았던 LSTM과 비교되는 모델로 다음으로 넘겨주는 변수와 연산량이 적어서 빠르다는 장점이 있다.

위 슬라이드에서 보면 LSTM에 있었던 cell state가 없고 이를 출력 Ht가 대신하고,

연산자인 sigmoid, tanh 함수의 개수가 적다.

 

GRU를 세부적으로 조금 더 살펴보자.

Reset Gate에서는 과거의 출력(Ht-1)을 현재에 얼마나 반영할 지를 결정한다.

 

Update Gate에서는 과거의 출력과 현재의 입력중에 어떤 것을 더 중요할게 여길지를 결정한다.

 

Candidate 단계는 조금 더 복잡해 보인다.

출력 값(Ht)를 계산하기 전에 ~Ht를 만들어야 하는데, 그 의미는

과거 출력값(Ht-1)과 리셋 게이트의 출력 Rt를 곱한 것과 현재의 입력 Xt와의 합으로 만들어 낸다.

 

드디어 출력값(Ht)을 계산하는 단계이다.

수식을 살펴보면, 현재의 출력은 과거의 출력을 얼마나 잊을지 현재 입력을 얼마나 지킬지에 대한 합으로  되어있다.

 

정리해보면, 

어짜피 GRU layer에 들어오는 입력은 과거의 출력 Ht-1, 현재의 입력 Xt로 두가지 뿐이다.

이 두가지 입력을 어떻게든 계산해서 좋은 결과를 만들어 내려고 하는 것으로,

위에서 각 단계, 또는 게이트마다 한 것이라곤 현재의 입력과, 과거의 출력에 얼마나 가중치를 두는가를 결정하는 것이다. 물론 정말 똑똑한 천재들이 이것들을 모두 수학적으로 증명했을 것이고, 우리는 각 모델의 특징을 이해하고, 잘 사용해서 결과를 잘 만들어 내면 되지 않을까?

 

다음 글에서는 이 GRU 모델을 가지고 예제를 진행해보자.