Machine Learning/Tensorflow

[순환신경망]GRU 레이어

욜스터 2021. 1. 25. 18:54
728x90

GRU 레이어

:Gated Recurrent Unit

LSTM레이어와 비슷한 역활을 하지만 구조가 더 간단 = 계산성의 이점이 있다

LSTM레이어보다 시그모이드 함수가 하나 적게 쓰였다 = 게이트의 수가 하나 줄어들었다는 것

r: reset 게이트를 통과한 출력

z: update 게이트를 통과한 출력

 

LSTM에서 풀었던 곱셈 예제를 GRU로  

-학습 모델

model=tf.keras.Sequential([
    tf.keras.layers.GRU(units=30, return_sequences=True, input_shape=[100,2]),
    tf.keras.layers.GRU(units=30),
    tf.keras.layers.Dense(1)
])

model.compile(optimizer='adam', loss='mse')
model.summary()

LSTM만 GRU로 바꿔서 모델를 정의했다. 

네트워크의 파라미터 수가 LSTM보다 적다.

 

SimpleRNN LSTM GRU
2851 11311 8671

<곱셈 문제를 풀기 위한 네트워크의 파라미터 수>

 

 

-학습하기

 

LSTM네트워크에 비해 loss와 val_loss가 20에포크 정도에서 값이 가파르게 줄어들었고 더 안정적인 것을 볼 수 있다.

 

 

-예측의 정확도 체크

정확도도 96.89%로 더 높게 나왔다. 

이 문제는 LSTM보다 GRU레이어로 더 잘 풀리는 문제이다. 

 

GRU는 LSTM보다 적은 파라미터를 가지지만 비슷한 기능을 하고, 일부 문제에서는 더 좋은 성능을 낼 수 도 있다는 것을 확인했다. 

 

 

728x90
반응형

'Machine Learning > Tensorflow' 카테고리의 다른 글

[순환 신경망] 긍정, 부정 감정 분석  (0) 2021.01.27
[순환 신경망] LSTM 레이어  (0) 2021.01.15
[순환 신경망] SimpleRNN  (0) 2021.01.15
순환 신경망 (RNN)  (0) 2021.01.15