Autoencoder + 확률
Auto-Encoding Variational Bayes
Autoencoder v.s. Variational Auto-Encoder
![](https://velog.velcdn.com/images/hyeon-ii/post/57ef9593-dbd3-43c0-9d6a-c80f0c1ad9ab/image.png)
- Autoencoder
- latent space에 임의의 값을 넣었을 때 decoding 후 의미있는 값이 나와야 한다.
- image data 하나를 나타내는 vector인 latent space의 분포가 고르지 않다.
- 초기화에 따라 학습 이후의 latent space 분포 모양이 달라진다.
- sampling을 고르게 할 수 없으며 sampling 시 sampling에 대한 정보도 필요하다.
- Variational Auto-Encoder
- random value를 유발하는 parameters인 μ와 σ를 포함한다.
- μ와 σ를 통해 latent를 원하는 모양(정규분포)으로 분포시킬 수 있다.
Variational Auto-Encoder (VAE)
- variational bayes를 기반으로 하는 auto-encoder
- Encoder model: qϕ(z∣x)
- x: 입력 이미지
- z: latent space
- Decoder model: pθ(x∣z)
- Optimization
- L(ϕ,θ,x)=(recon.loss+reg.loss)
- Reconstruncion loss
∥x−x^∥2
- Regularization(인간의 가정) loss: divergence
D(qϕ(z∣x)∥p(z)) x가 주어졌을 때 encoder qϕ는 latent z의 분포가 정규분포 p(z)(prior)에 가까워지도록 학습을 진행한다.
Reparameterization Trick
- Encoder qϕ(z∣x)가 고정된 prior 분포 p(z)와 유사하게 latent space에 고르게 분포하도록 해야한다.
ex) p(z)를 정규분포로 고정하였을 때
p(z)=N(z;μ,σ)
ex) 표본화된 latent vector z∼p(z)를 μ와 σ의 합으로 간주하고, 임의의 상수 ϵ에 의해 scale한다.
Conditional VAE
- 조건적 확률을 encoder와 decoder에 입력과 같이 부여한다.
- Encoder qϕ(z∣x,c)
- Decoder pθ(x∣z,c)
- Neural network 구조에 따라 c의 입력 방식이 달라진다.
- Linear layer이면 c를 입력 vector에 concatenate
- Convolution layer이면 one-hot encoded c를 input image channel에 추가한다.