본문 바로가기
AI

DL : RNN : GRU (Gated Recurrent Unit)

by 월곡동로봇팔 2020. 3. 10.

1. GRU(Gated Recurrent Unit)

GRU

LSTM에서는 출력, 입력, 삭제 게이트라는 3개의 게이트가 존재했습니다.

반면, GRU에서는 업데이트 게이트와 리셋 게이트 두 가지 게이트만이 존재합니다.

GRU는 LSTM보다 학습 속도가 빠르다고 알려져있지만 여러 평가에서 GRU는 LSTM과 비슷한 성능을 보인다고 알려져 있습니다.

 

반드시 LSTM 대신 GRU를 사용하는 것이 좋지는 않습니다. GRU와 LSTM 중 어떤 것이 모델의 성능면에서 더 낫다라고 단정지어 말할 수 없으며, 기존에 LSTM을 사용하면서 최적의 하이퍼파라미터를 찾아낸 상황이라면 굳이 GRU로 바꿔서 사용할 필요는 없습니다. 사실 아직까지는 GRU보다 LSTM이 좀 더 많이 사용되는 편이고, 또한 일부 논문에서는 여전히 LSTM이 GRU보다 더 좋은 성능을 보였다고 주장합니다.


2. 케라스에서의 GRU(Gated Recurrent Unit)

케라스에서는 역시 GRU에 대한 구현을 지원합니다. 사용 방법은 SimpleRNN이나 LSTM과 같습니다.

# 실제 GRU 은닉층을 추가하는 코드. 
model.add(GRU(hidden_size, input_shape=(timesteps, input_dim)))

댓글