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)))
'BLOG > 머신러닝' 카테고리의 다른 글
[머신러닝] 데이터(레이블)를 벡터로 변환하는 방법 (파이썬 코드) (0) | 2021.03.23 |
---|---|
[자연어 처리] RNN 텍스트 분류 모델, 어떠한 활성화 함수 & 손실 함수를 사용하는게 좋을까요? (0) | 2021.03.23 |
[머신러닝] 의사결정나무 : 엔트로피, 지니 계수란? (0) | 2021.03.23 |
[머신러닝] CNN 층에 dropout(드롭아웃) 추가하기 (텐서플로) (0) | 2021.03.23 |
[머신러닝] CNN(합성곱 신경망) 모델 만들기 (텐서플로 / 코드) (0) | 2021.03.23 |