인공신경망(ANN)의 일종으로, un-labeled data에 대해서 효율적인 encoding 방법을 학습.
(un-supervised learning)
이것이 유용한 이유는 input을 encoding함으로써 재정의하기 때문.
AutoEncoder는 데이터셋의 표현(encoding)을 학습한다, 보통 이를 차원 축소(dimensionality reduction) 라고 부르는데, AutoEncoder도 중요하지 않은 data(”noise”)를 무시함으로써 학습하기 때문에 차원축소에 사용.
존재하는 변수들은 유용한 특성들을 추정하는 encoding을 학습한다. 예를 들면, regularized AutoEncoder로 Sparse, Denoising, Contractive 그리고 생성모델의 핵심인 Variational AutoEncoder가 있다.
AutoEncoder는 input으로 계산되는 output이 input과 비슷하게 표현되도록 학습하는 신경망.
입력과 출력이 같은 크기를 가지며,
이 같은 구조를
bottleneck (좁은 통로) 라고 부른다.
목표 출력이 input 그 자체로,
단층의 Forward NN 식은 다음과 같다.
$y = f(Wx+b)$
encoding 활성화 함수 $f$와, decoding 활성화 함수 $\tilde f$라고 하자.
이렇게 구성된 신경망을 SGD로 loss 값을 최소화하면서, W와 b를 학습한다. ($\tilde f$의 $\tilde W$와 $\tilde b$는 사용하지 않는다.)
각 sample $\hat x_n$을 입력한 시점의 출력 $\hat x_n$이 평균적으로 가까워지도록 학습하는 것이다.