본문 바로가기
Deep Learning/Hands On Machine Learning

17.5 Recurrent AutoEncoder

by 대소기 2021. 12. 26.

Recurrent AutoEncoder

* 만약 시계열 데이터나, 텍스트 데이터를 처리해야 할 경우라면, Dense layer로 autoencoder를 구성하는 것 보다 lstm layer를 사용하는 것이 좋은 성능을 기대할 수 있을 것이다.

recurrent_encoder = keras.models.Sequential([
    keras.layers.LSTM(100, return_sequences=True, input_shape=[28, 28]),
    keras.layers.LSTM(30)
])
recurrent_decoder = keras.models.Sequential([
    keras.layers.RepeatVector(28, input_shape=[30]),
    keras.layers.LSTM(100, return_sequences=True),
    keras.layers.TimeDistributed(keras.layers.Dense(28, activation="sigmoid"))
])
recurrent_ae = keras.models.Sequential([recurrent_encoder, recurrent_decoder])
recurrent_ae.compile(loss="binary_crossentropy", optimizer=keras.optimizers.SGD(0.1),
                     metrics=[rounded_accuracy])

* timestep마다 28차원을 갖는 어떤 길이의 sequence로 처리한다.

* 각 이미지를 행의 sequence로 간주하여 fashion MNIST 이미지를 처리한다.