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

17.1 효율적인 데이터 표현

by 대소기 2021. 12. 23.

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라고 부른다.