본문 바로가기
Study/DL

Variational Auto Encoder (VAE)

by 까망우동 2023. 7. 1.
반응형

Index

    AE의 목적은 Input을 대변할 수 있는 low dimension latent vector를 추출하는 것이라면, VAE는 input의 많은 variations를 generating 하는, generaing 모델이다. 

     

    VAE 모델 구조

    • Encoder 가 직접적으로 Latent vector를 추출하는 대신 아래와 같은 절차를 거친다. 
      1. mean(μ), standard deviation(σ) 2개의 latent vector를 생성한다.
      2. μ,σ 에 해당하는 Gaussian 분포로 input의 분포를 approximate한다 - Latent distribution
      3. Gassian을 따르는 Latent distribution으로부터 sample을 추출하여 sampled latent vector 생성 
      4. Decoder가 Sampled vector로 부터 output 추출
    • AE 가 input(x)로 부터 single value (z)를 추출했다면, VAE는 p(z|x) 분포를 생성한다. 
    • VAE 는 Probabilistic Encoder + Generative Decoder 의 결합니다. 
    • Input을 직접 건드리지 않고, 앞축된 피쳐를 변경한다. 

    VAE 구조

    • 실제 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
      1. Recunstruction: Reconstruction error를 최소화 하도록 pixel-wise MSE를 계산한다.
      2. Regularization: latent vector의 분포가 ~N(0,1)과 가깝도록 KL divergence 지표를 사용

    Loss function for VAE

    학습

    • 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

    댓글