Skip to content

VariationalAutoEncoder

keicoon15 edited this page Aug 21, 2018 · 1 revision

VAE는 데이터의 확률분포를 학습하기 위한 두 개의 뉴럴네트워크로 구성되어 있다.
VAE는 z(latent variable)를 가정하고 있는데 Encoder에서 관측된 데이터 x를 받아서 잠재변수 z를 만들어 내고 decoder에서 encoder가 만든 z를 활용해 x를 복원한 _x를 생성하는 역할을 한다.
하지만 AU에서도 latent variable가 존재한다. AU에서는 hidden layer의 weight가 input의 feature에 수렴한다면 VAE는 학률분포를 학습한다는 차이가 있다. 확률분포를 학습함으로써 training input의 feature들이 특정 확률 분포(평균, 분산)를 향해 수렴하고 그 결과로 variation한 특징을 얻을 수 있게 된다. 또한 mu, log_sigma 외에 noise를 추가하여 랜덤성을 얻을 수 있으며 trained model에 확률 분포를 넣어 다양한 output을 recon할 수 있게 된다.

VAE 아키텍처는 아래와 같다.

VAE 알고리즘은 아래와 같다.

Clone this wiki locally