-
Notifications
You must be signed in to change notification settings - Fork 0
AutoEncoder
keicoon15 edited this page Aug 21, 2018
·
1 revision
Auto-Encoder는 입력값(x)와 목표값(y) 사이의 f(함수)를 찾는 것(supervised learning)과 달리 입력값(x)만으로 학습하는 방법(unsupervised learning)을 사용하여 진행한다. 입력값과 출력값이 (y(i) = x(i)) 같은 특징이 있다.
항등함수(f(x) = x)를 찾는 문제이기 때문에 입력과 출력 사이 layer의 unit 갯수가 같다면 단순히 weight를 그대로 전달하기에 학습에 의미가 없다. 만약 중간 layer의 unit이 입, 출력의 절반이라면 입력과 출력 사이의 data에 압축이 이뤄져야되고 전체 data간의 유사성이 존재한다면 이 유사성이 unit의 weight로 작용하는게 학습에 유리할 것이다. 또는 unit의 갯수가 월등히 많다면 다른 특징을 발견할 수도 있다. 이 경우엔 sparsity를 걸어 특정 unit들을 사용하지 않게한다. 이를 사용하면 sparse coding의 이점을 auto-encoder에 더 할 수 있다.
일반적인 auto-encoder는 intermediate layer를 통해 bottle neck 효과를 얻을 수 있으며 이는 encoder부분과 decoder 부분을 각각 얻을 수 있으며 encoder는 data 자체를 축소하여 'manifold learning'에 model로 decoder는 data 자체를 reconstruction하여 'generative model learning'에 사용할 수 있다.
