VAE 탐구 - 1/6

Tetrapod·2024년 5월 21일

VAE 탐구

목록 보기
1/6
post-thumbnail

VAE를 공부하면서 깊이 알고 있지 않는다 생각하여
Top-down으로 내려갔다가 Bottom-up으로 다시 올라오는 식으로 정리해보고자 한다.
원래는 노션에 작성했었는데 블로그에 옮기고자 한다.
필자는 공부당시 확률론과 수식을 잘몰랐다.


이 글에서는 VAE를 대강 훑어본다.


VAE vs AE

  • AutoEncoder의 목적은 Manifold Learning이다.
    - Manifold Learning : 고차원 데이터를 저차원의 매니폴드(Manifold) 공간에 매핑하는 기법
  • Variational AutoEncoder는 Generative Model이다.

VAE 구조

  • Auto-Encoder의 latent variable이 정규분포를 따르도록 학습한 모델
  • VAE의 Decoder 부분이 Generative Model이 된다.
  • AE는 encode가 목적이지만 VAE는 decode가 목적이다.
  • ZiZ_i의 각 클래스의 집합은 정규분포를 따르도록 하고자 한다.

Prior Distribution p(z)p(z) 사전 분포

prior 값이 정규분포를 따른다고 가정하여도 sampling 값은 manifold를 대표하는 값이 될 수 있다.
따라서 p(z)p(z)를 정규분포로 가정한다.

Variational Inference

  • zz를 정규분포에서 샘플링하는 것보다 x와 유의미하게 유사한 샘플이 나올 수 있는 확률분포 p(zx)p(z|x)로 부터 샘플링하면 된다.
  • 그러나 p(zx)p(z|x)가 무엇인지 알지 못하므로, 우리가 알고 잇는 확률분포 중 하나 qϕ(zx)q_\phi(z|x)를 택해서 그것의 파라미터 값을 조정하여 p(zx)p(z|x)와 유사하게 만들어 본다.

인터넷 여기저기 뒤져서 VAE 의미를 간단하게 정리해보았다.
그림에서 문자들이 대충 무슨 뜻인지 알지만 모델이 정규분포가 된다는 개념은 생소하다.


p(x),p(zx),qϕ(zx)p(x), p(z|x), q_\phi(z|x) 사이의 관계

  • 위 수식을 최대화 하는 것이 목표다.
  • 앞서 p(zx)p(z|x)를 알 수 없다고 하였으므로 세번째 항은 빼고 첫번째, 두번째 항을 최대화 시킨다.
  • 나중 글에서 수식 유도할 것이다.

VAE 구조 다른 그림

이활석님의 VAE 강의 자료에서 가져온 그림이다. 검색하면 바로 나온다.


σ\sigma에 표준정규분포 랜덤값을 곱할까?

  • loss 함수의 Regularization 부분이 latent space가 정규분포일 것으로 가정해서 라고 생각한다.
  • 그럼에도 번거롭게 위와 같이 계산하는 이유는 아래 이미지처럼 역전파를 위해서 이다.


대강 훑어본것을 정리해보자.

  • AE 처럼 Reconstruction Error가 사용된다.

  • VAE는 latent space가 정규분포를 따르길 바란다.

  • p(x),p(zx),qϕ(zx)p(x), p(z|x), q_\phi(z|x) 사이의 관계를 정리한 수식의
    첫 번째항이 Reconstruct Error, 부호는 반대
    두 번째항이 Regularlization Error, 부호는 반대

  • latent space에 reparameterization trick을 사용하였다.


모르는것

  • 확률론
  • p(x),p(zx),qϕ(zx)p(x), p(z|x), q_\phi(z|x) 사이의 관계 유도 과정
  • KL-divergence
  • 관계식로부터 Regularlization Error 유도과정

다음 글로 이어집니다.

Reference

https://process-mining.tistory.com/161

0개의 댓글