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