더북(TheBook)

오토인코더에서 가장 널리 사용되는 손실 함수는 ‘평균 제곱 오차’와 ‘(이진) 크로스 엔트로피’입니다. 입력 값이 (0,1) 범위에 있으면 (이진) 크로스 엔트로피를 사용하고, 그렇지 않으면 평균 제곱 오차를 사용합니다. 여기에서는 아담(Adam)을 사용했지만 알엠에스프롭(RMSProp) 또는 아다델타(Adadelta) 같은 옵티마이저를 이용하여 성능을 비교해 보는 것도 학습에 도움이 많이 되니, 옵션을 변경하여 테스트를 진행해 보기 바랍니다.

앞서 언급했듯이 예제에서 사용된 데이터셋은 MNIST입니다. MNIST 데이터셋은 케라스에 내장된 데이터셋으로, keras.datasets 모듈을 사용하여 쉽게 내려받아 사용할 수 있습니다. 데이터셋을 내려받은 후 훈련 데이터셋과 검증 데이터셋으로 분리합니다.

코드 13-4 데이터셋 준비

(X_train, _), (X_test, _) = tf.keras.datasets.mnist.load_data()
X_train = X_train.astype('float32') / 255
X_test = X_test.astype('float32') / 255
X_train = X_train.reshape((len(X_train), np.prod(X_train.shape[1:])))
X_test = X_test.reshape((len(X_test), np.prod(X_test.shape[1:])))
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.