Generative model

[VAE] Variational AutoEncoder

파송송 2022. 10. 14. 22:12
728x90

VAE (Variational AutoEncoder)

  • Decoder(생성)을 학습시키기 위해 Encoder를 붙인 것
  • Network를 학습시켜 train data x가 나올 확률을 구하는 것이 목적임
  • random noise로 부터 원하는 결과를 얻을 수 있을까? 라는 의문에서 시작됨

구조

  • Encoder: 학습 데이터를 Latent Variable Vector로 변환함
  • Latent Variable Vetor: 고양이 특징들이 담겨져있음
  • Decoder: Latent Variable Vector를 받아 학습 데이터와 비슷한 데이터를 만듦
  • 입출력을 비교하여 loss를 도출함 -> 비지도 학습

  • Sampling 전의 벡터는 후의 벡터보다 2배 더 많다 (평균과, 분산이 각각 들어있기 때문)
  • z분포에서 z를 변환받음

Reparametrization trick

  • 위의 방식대로 하면 미분이 불가능해 역전파를 할 수 없는 문제가 발생하는데 이를 해결하기 위해 고안된 방법
  • Encoder의 평균과 분산을 바로 사용하지 않고 N(0 ,\(1^{2} \))를 따르는 random noise(x) 를 만들어 y = ax + b 형식으로 사용한다.

 

 

 

728x90