25강 - LSTM과 GRU 셀

2021. 7. 8. 01:37ICT 멘토링/혼자 공부하는 머신러닝+딥러닝

25강 - LSTM과 GRU 셀

학습 로드맵

IMDB 리뷰 데이터셋

LSTM 셀

LSTM 신경망

model = keras.Sequential()

model.add(keras.layers.Embedding(500, 16, input_length=100))
model.add(keras.layers.LSTM(8))
model.add(keras.layers.Dense(1, activation='sigmoid'))

model.summary()

#// Model: "sequential"
#// _________________________________________________________________
#// Layer (type)                 Output Shape              Param #   
#// =================================================================
#// embedding (Embedding)        (None, 100, 16)           8000      
#// _________________________________________________________________
#// lstm (LSTM)                  (None, 8)                 800       
#// _________________________________________________________________
#// dense (Dense)                (None, 1)                 9         
#// =================================================================
#// Total params: 8,809
#// Trainable params: 8,809
#// Non-trainable params: 0
#// _________________________________________________________________

드롭아웃 적용하기

model2 = keras.Sequential()

model2.add(keras.layers.Embedding(500, 16, input_length=100))
model2.add(keras.layers.LSTM(8, dropout=0.3))
model2.add(keras.layers.Dense(1, activation='sigmoid'))

2개의 층을 연결하기

model3 = keras.Sequential()

model3.add(keras.layers.Embedding(500, 16, input_length=100))
model3.add(keras.layers.LSTM(8, dropout=0.3, return_sequences=True))
model3.add(keras.layers.LSTM(8, dropout=0.3))
model3.add(keras.layers.Dense(1, activation='sigmoid'))

model3.summary()

#// Model: "sequential_2"
#// _________________________________________________________________
#// Layer (type)                 Output Shape              Param #   
#// =================================================================
#// embedding_2 (Embedding)      (None, 100, 16)           8000      
#// _________________________________________________________________
#// lstm_2 (LSTM)                (None, 100, 8)            800       
#// _________________________________________________________________
#// lstm_3 (LSTM)                (None, 8)                 544       
#// _________________________________________________________________
#// dense_2 (Dense)              (None, 1)                 9         
#// =================================================================
#// Total params: 9,353
#// Trainable params: 9,353
#// Non-trainable params: 0
_________________________________________________________________

GRU 셀

GRU 신경망

model4 = keras.Sequential()

model4.add(keras.layers.Embedding(500, 16, input_length=100))
model4.add(keras.layers.GRU(8))
model4.add(keras.layers.Dense(1, activation='sigmoid'))

model4.summary()

#// Model: "sequential_3"
#// _________________________________________________________________
#// Layer (type)                 Output Shape              Param #   
#// =================================================================
#// embedding_3 (Embedding)      (None, 100, 16)           8000      
#// _________________________________________________________________
#// gru (GRU)                    (None, 8)                 624       
#// _________________________________________________________________
#// dense_3 (Dense)              (None, 1)                 9         
#// =================================================================
#// Total params: 8,633
#// Trainable params: 8,633
#// Non-trainable params: 0
#// _________________________________________________________________

 

총 정리

 

참고 자료

https://www.youtube.com/watch?v=ub8S29bF6rk&list=PLVsNizTWUw7HpqmdphX9hgyWl15nobgQX&index=25