본문 바로가기

Research Review

[MultiModal] VAE: Auto-Encoding Variational Bayes

💡 GAN과의 다른 점 : input이 noise vector가 아닌, 이미지

 

 

 📌 AutoEncoder

저차원의 representation z를 원본 x로부터 구하여 스스로 네트워크를 학습하는 방법

Unsupervised Learning 방법으로 레이블이 필요 없이 원본 데이터를 레이블로 활용

입력 x와 출력 y가 최대한 동일한 값을 가지도록 하는 것이 AE의 목적

  • Encoder: 입력 정보를 압축, Latent Variable 자체를 만드는 역할
  • Decoder: 압축 정보를 복원, Latent Variable로 부터 데이터를 생성하는 데 사용
  • 저차원 표현 z는 원본 데이터의 함축적인 의미를 가지도록 학습됨 → 다른 머신 러닝 모델에서 feature라 불리는 것과 같은 의미이며 학습 과정에서 겉으로 드러나지 않는 숨겨진 변수이므로 Latent Variable 이라고 불리게 됨

 

 

📌 VAE

랜덤 노이즈로부터 원하는 영상을 얻을 수 없는 지에 대한 의문에서 시작

 

랜덤 노이즈를 통하여 위 그림과 같은 이미지를 얻을 확률은 1/256라고 생각할 수 있음 이와 같은 천문학적인 경우의 수에서 임의로 생성한 데이터로 원하는 영상을 얻을 수는 없음

 

만약 Pdata(x) 라는 데이터셋이 있고 이 데이터셋을 잘 나타내는 분포를 만들고 랜덤 노이즈가 그 분포 중 하나에 해당되도록 한다면, 데이터셋을 나타내는 분포 내에서 랜덤 값이 생성되기 때문에 데이터셋과 유사한 값을 뽑아낼 수 있음

→ 데이터셋이 가지는 확률 분포 내에서 랜덤 노이즈를 만드는 것

 

 

AE

  • sample을 통해 위 그림과 같은 Encoding, Decoding을 학습을 하고 이는 선형대수학에서 다루는 Nonlinear Matrix Factorization 또는 Nonlinear dimension reduction 컨셉과 일치
  • Sample의 차원을 줄였다 늘리는 과정을 통하여 sample을 잘 설명하는 latent variable을 도출하는 네트워크를 학습

 

 

VAE

VAE의 주 목적은 데이터를 생성하기 위함 → 데이터의 분포 자체를 학습

latent variable 분포로부터 sampling 된 latent variable을 decoder의 input으로 활용

latent distribution에서 랜덤값으로 샘플링을 하면 latent distribution에 대응 되는 의미에 따라 다른 출력의 이미지를 생성하도록 할 수 있음

 

 

  • VAE의 전체 아키텍쳐를 보면 인풋으로 데이터를 받은 뒤 Encoder 부분에서는 latent variable을 생성하도록 학습
  • 이 때, AE와는 다르게 latent variable로 μ,σ를 생성
  • 가우시안 노이즈 N(0,1)과 ① latent variable σ와 곱해지고 ② μ와 더해져서 Decoder의 Input으로 전달됨
  • Decoder에서는 이 값을 원본 데이터 해상도 만큼 복원시켜서 원본 인풋과 유사해지도록 학습

 

 

AE와 VAE의 핵심적인 차이점은 latent variable에 대한 표현 방식

VAE에서는 latent variable의 distribution을 정규 분포 형태로 나타내고 그 분포에서 샘플링

  • VAE 또한 딥러닝 네트워크이기 때문에 backpropagation을 통한 학습이 가능하도록 아키텍쳐를 구성해야함
  • 위 그림의 왼쪽을 보면 단순히 정규 분포에서 샘플링 하도록 하면 Encoder와 Decoder 사이의 latent variable에서 미분이 불가능해짐
  • 반면 오른쪽과 같이 Encoder의 출력부에서 μ,σ를 출력하도록 하고 이 값의 선형 결합을 통해 가우시안 분포의 샘플링을 하도록 하면 μ,σ에 대하여 미분이 가능해짐. 이러한 방법을 Reparametrization Trick 이라고 함

 

 

Limitation

 

각 픽셀별 MSE나 cross entrophy를 사용하기 때문에 이미지가 blurry하게 나온다는 문제

사람 얼굴 데이터셋을 학습하여 VAE를 통해 샘플링 한 결과를 확인해 보면, 위 그림과 같이 약간 blur한 특징을 가짐

 

 

Reference

VAE(Variational AutoEncoder)

[논문] VAE(Auto-Encoding Variational Bayes) 직관적 이해

[Paper Review] VAE

[논문리뷰] Auto-Encoding Variational Bayes(VAE) 모든 수식 알아보기

오토인코더의 모든 것 - 2/3

VAE : Auto-Encoding Variational Bayes - 논문 리뷰

[논문 리뷰]_Variational Autoencoder(VAE) : Auto-Encoding Variational Bayes

[논문리뷰] VAE(Auto-Encoding Variational Bayes)

[논문리뷰] VAE(Variational Auto-Encoder)