반응형
Index
AE의 목적은 Input을 대변할 수 있는 low dimension latent vector를 추출하는 것이라면, VAE는 input의 많은 variations를 generating 하는, generaing 모델이다.
VAE 모델 구조
- Encoder 가 직접적으로 Latent vector를 추출하는 대신 아래와 같은 절차를 거친다.
- mean(μ), standard deviation(σ) 2개의 latent vector를 생성한다.
- μ,σ 에 해당하는 Gaussian 분포로 input의 분포를 approximate한다 - Latent distribution
- Gassian을 따르는 Latent distribution으로부터 sample을 추출하여 sampled latent vector 생성
- Decoder가 Sampled vector로 부터 output 추출
- AE 가 input(x)로 부터 single value (z)를 추출했다면, VAE는 p(z|x) 분포를 생성한다.
- VAE 는 Probabilistic Encoder + Generative Decoder 의 결합니다.
- Input을 직접 건드리지 않고, 앞축된 피쳐를 변경한다.
- 실제 posterior distribution p(z|x) 을 생성하는것은 어렵기 때문에 Encoder Network q(θ)를 통해서 (θ는 파라미터) μ,σ를 output으로 추출한뒤 N(μ,σ^)을 p(z|x)로 근사하여 사용한다.
목적함수
- 그렇다면 Cost와 Goal은 어떻게 정의할까? Reconstruction error만 생각한다면 μ → z, σ → 0 을 목표로 학습할 것이고, 그렇게되면 기존의 AE와 다를게 없고, '다양한 variational input' 을 만들지 못한다.
- 따라서 목적함수는 2가지 Term으로 분리된다. ① Reconstruction term ② Regularization Term
- Recunstruction: Reconstruction error를 최소화 하도록 pixel-wise MSE를 계산한다.
- Regularization: latent vector의 분포가 ~N(0,1)과 가깝도록 KL divergence 지표를 사용
학습
- VAE 의 학습과정에서 parameter를 update할때 Backpropagation을 사용하면 문제되는 부분이 있다. L(y,x) term에 포함되는 random sampling 과정이 미분가능(diffential)하지 않다.
- 이 문제를 해결하려고 Reparametrization trick이 사용된다.
- Reparametrization trick 은 q(θ)(z|x) 에서 직접 샘플링 하는것이 아닌 N(0,I) 로 부터 ε를 먼저 추출하고 z = μ+σ⊙ε 로 sample을 최종 추출항여 random component를 weight로 부터 분리한다.
반응형
'Study > DL' 카테고리의 다른 글
GAN - 2편 (DCGAN, cGAN) (1) | 2023.07.02 |
---|---|
GAN - 1편 (GAN 구조,학습,어려움) (0) | 2023.07.01 |
Auto Encoder (0) | 2023.07.01 |
Attention Mechanism (0) | 2023.07.01 |
RNN - 2편 (LSTM) (0) | 2023.07.01 |
댓글