BLOG/머신러닝

[머신러닝] GRU란? 케라스로 GRU 은닉층 추가하기 (코드)

알디노 2021. 3. 23. 17:32

1. GRU란?

GRU(Gated Recurrent Unit)란 LSTM과 유사한 구조를 가지는 모델을 말하는데요, LSTM의 장기 의존성 문제에 대한 해결책을 유지하면서 은닉 상태를 업데이트하는 계산을 감소시킨 알고리즘을 말합니다.

 

또한 GRU의 가장 큰 특징은 출력게이트, 입력게이트, 삭제게이트를 가진 LSTM과 달리 업데이터 게이트와 리셋 게이트만 갖고 있다는 점입니다.

 

LSTM과 GRU가 비슷한 구조를 가지고 있지만 어느 게 더 좋다고 말할 수는 없는데요, 다만 GRU에서 매개변수의 양이 적기 때문에 데이터의 양이 적을 땐 GRU를 사용하는 것이 좋고, 데이터의 양이 많다면 LSTM이 적절할 수 있습니다.

 

 

2. 케라스로 GRU 은닉층 추가하기

한편, 케라스를 이용해 GRU 은닉층을 추가하고 싶다면 다음과 같이 코드를 작성하면 됩니다.

 

model.add(GRU(hidden_size, input_shape=(timesteps, input_dim)))