AutoEncoder introduction
* 위 두 개의 sequence를 완벽하게 외워야 된다고 생각해보자. 얼핏 보기엔 첫 번째 sequence가 더 짧기 때문에 더 외우기 쉬울 것으로 보인다. 하지만 자세히 들여다보면, 두 번째 sequence는 50부터 2씩 14까지 줄어드는 pattern을 가지고 있기 때문에 오히려 두 번째 sequence가 더 외우기 쉬울 것이다.
* 이와 같이 긴 sequence의 경우 pattern을 찾아 기억하는 것이 더 쉽다. 우리가 사용할 autoencoder 또한 마찬가지이다.
* AutoEncoder는 기본적으로 Encoder(recognition network), Decoder(generative network)부분으로 구분된다. Encoder는 입력된 정보를 latent representation으로 변환하고, Decoder는 이 latent representation을 가지고 입력 데이터를 최대한 복원한다. 이 때 encoder가 입력 데이터를 latent representation으로 변환하는 것을 앞서 숫자 sequence를 외울 때 50부터 2씩 14까지 줄어든다는 특징을 추출한 것과 연결지을 수 있다. latent representation은 입력 데이터를 더 낮은 차원의 데이터로 변환하는 과정에서 중요한 특성을 학습하고, 중요하지 않은 특성을 버리게 된다.
* training 과정에서 필요한 loss의 경우 reconstruct loss라고 부르며, output과 input의 차이를 활용한다. 즉, decoder가 input을 얼마나 잘 복원했는지의 정도를 활용한다고 이해한다고 볼 수 있다.
* 이렇게 latent representation이 input data보다 저차원인 구조를 띠는 autoencoder를 undercomplete autoencoder라고 부른다.
'Deep Learning > Hands On Machine Learning' 카테고리의 다른 글
17.3 Stacked AutoEncoder (1) | 2021.12.23 |
---|---|
17.2 Undercomplete linear AutoEncoder로 PCA 수행하기 (0) | 2021.12.23 |
16.3 신경망 기계 번역을 위한 인코더-디코더 네트워크 (0) | 2021.11.24 |
16.2 감성 분석 (0) | 2021.11.23 |
16.1 Char-RNN을 통해 셰익스피어 문체 생성하기 (0) | 2021.11.23 |