
766
2
부
신경망과 딥러닝
오토인코더는 밀집 네트워크에 국한되지 않습니다. 합성곱 오토인코더도 만들 수 있습니다. 이
제부터 이런 오토인코더를 알아봅시다.
17.4
합성곱 오토인코더
이미지를 다루는 경우에는 (이미지가 매우 작지 않다면) 오토인코더가 좋은 성능을 내지 못합
니다.
14
장에서 본 것처럼 이미지를 다룰 때는 합성곱 신경망이 밀집 네트워크보다 훨씬 잘 맞
습니다. 따라서 (비지도 사전 훈련이나 차원 축소를 위해 ) 이미지에 대한 오토인코더를 만들
려면
합성곱 오토인코더
convolutional
autoencoder
8
를 만들어야 합니다. 인코더는 합성곱 층과 풀링 층
으로 구성된 일반적인
CNN
입니다. 인코더는 전형적으로 입력에서 공간 방향의 차원 (높이와
너비 )을 줄이고 깊이(특성 맵의 개수 )를 늘립니다. 디코더는 거꾸로 작동해야 합니다 (이미지
의 스케일을 늘리고 깊이를 원본 차원으로 되돌려야 합니다). 이를 위해서 전치 합성곱 층을
사용합니다 (또는 합성곱 층과 업샘플링 층을 연결할 수 있습니다). 다음은 패션
MNIST
데이
터셋에 대한 간단한 합성곱 오토인코더입니다.
conv_encoder = tf.keras.Sequential([
tf.keras.layers.Reshape([28, 28, 1]),
tf.keras.layers.Conv2D ...