Day_10 02. Generative Models 2

작성일

3 분 소요

Generative Models 2

Question

Is an autoencoder a generative model?

  • 그렇지 않다!

Variational Auto-encoder

Variational inference (VI)

  • The goal of VI is to optimize the variational distribution that best mathces the posterior distribution
    • 내가 관심있고 찾고자 하는 posterior distribution을 제일 잘 근사할 수 있는 variational distribution을 찾는 일련의 과정을 variational inference라고 함
    • Posterior distribution(사전확률분포): $p_{\theta}(z x)$
      • 나의 observation이 주어졌을 때 관심있어하는 random variable의 확률분포
      • 여기서 $z$는 latent vector가 됨
    • Variational distribution : $q_{\phi}(z x)$
      • 일반적으로 posterior distribution을 계산하기가 힘듦 계산이 불가능 할 때가 많음
      • 그래서 얘를 학습할 수 있는 (최적화 시킬수 있는) 어떤걸로 근사하겠다라는게 목적
      • 근사하는 분포가 variational distribution이다.
  • In particular, we want to find the variational distribution that minimizes the KL divergence between the true posterior
    • 무언가를 최적화하겠다라고 하면 우리에게 필요한건 objective(loss function) 이다.
    • KL-divergence 라는 metric을 활용해서 나의 variational distribution과 posterior distribution을 줄여보겠다

  • 우리의 목적은 $p_{\theta}(z x)$ 우리의 관심있어하는 posterior distribution을 variational distribution으로 찾겠다
  • 이게 variational auto-encoder 의 encoder 부분에 해당

But how?

  • 뭔지도 모르는 posterior distribution을 근사할 수 있는 variational distribution을 찾는다는게 어불성설
  • 내가 무엇인지 알수도 없는 object와 가깝게 만드는거에요
  • 그런데 이걸 가능하게 해주는데 variational inference 에 있는 ELBO Trick

  • variational inference의 목적이었던 variational distribution과 posterior distribution 사이의 KL-divergence를 줄이는 것이 사실은 목적인데 이게 불가능!!!!!
  • 그래서 우리는 ELBO(Evidence Lower BOund)라는 것을 계산해서 얘를 키움으로써 반대급부로 내가 원하는 object를 얻고자 하는 것
  • 이게 바로 variational inference 다.
  • 이 수식이 모두 exact하기 때문에 결과론적으로 내가 뭔지도 모르고 계산할 수도 없는 어떤 임의의 posterior distribution과 내가 optimize 하려는 variational distribution사이의 거리를 KL-divergence로 정의되는 거리를 ELBO를 maximize 함으로써 얻을 수 있게됨

ELBO can further be decomposed into

  • x 라는 입력 이미지들의 공간이 있고 얘를 잘 표현할 수 있는 $z$라는 latent space를 찾고 싶은 것
  • $z$라는 latent space에 해당하는 확률분포 $p(z x)$ 아니면 posterior를 모르니까 이 posterior를 잘 찾기 위해서 variational distribution으로 혹은 encoder로 걔를 근사하고 싶은 것 근데 posterior를 모르므로 근사할 수 없으니까 ELBO를 maximize 하는 것이 KL-divergence 을 줄여주는 것과 같은 효과가 있더라!!!!!!!
  • 그런데, ELBO라는 term을 잘 뜯어보면 reconstruction loss와 prior distribution으로 나뉜다
  • 이것이 encoder를 통해서 x라는 입력을 latent space로 보냈다가 다시 decoder로 돌아오는 이 reconstruction loss를 줄이는 것이 바로 reconstruction term이고 prior fitting term은 x라는 이미지를 잔뜩 올려놨어요 그러면 latent space에 점들이 되겠죠 이 점들이 이루는 어떤 분포가 내가 가정하는 latent space의 prior distribution(사전 분포)와 비슷하게 만들어주는 이 2가지 object와 같다!!

  • 내가 이걸 계산할 수 있더라 그래서 implicit model이 된다?

Key limitation:

  • It is an intractable model (hard to evaluate likelihood)
    • explicit한 모델이 아님
    • 왜?
      • 어떤 입력이 주어졌을 때 얘가 얼마나 likely 한지 알기가 힘듦
  • The prior fitting term must be differentiable, hence it is hard to use diverse latent prior distributions
  • In most cases, we use an isotropic Gaussian
    • iostropic : 모든 output dimension이 independent

  • 어떤 prior distribution이 gaussian이면 우리의 variational distribution과 prior distribution사이의 guassian의 대한 KL-divergence는 이렇게 이쁘게 나오게 됨
  • 얘를 loss function에 집어넣어서 학습을 시키면 원하는 결과가 나오더라

가장 큰 단점은 encoder를 활용할 때 prior fitting term이 KL-divergence를 활용한다는 것이다

Adversarial Auto-encoder

It allows us to use any arbitrary latent distributions that we can sample


GAN

  • 내가 학습의 결과로 나오는 generator를 학습하는 discriminator가 점차점차 좋아진다는게 가장 큰 장점!!
  • implicit model

GAN vs VAE

GAN Objective

A two payer minimax game between generator and discriminator

  • minmax game : 한 쪽은 높이고 싶어하고 한 쪽은 낮추고 싶어하는 것
  • For discriminator

    • where the optimal discriminator is

      • generator가 fix가 되어있을 때 얘를 항상 최적으로 갈라주는 optimal discriminator는 이 수식이 높으면 True 낮으면 False
  • Plugging in the optimal discriminator, we got

    • 이론적으로는 말이 되지만 현실적으론 약간 의아함

DCGAN

  • GAN은 Dense layer를 사용했고 DCGAN은 이미지 도메인으로 했다 deconvolution을 활용
  • ricky relu를 쓰자

Info-GAN

  • 학습을 할 때 단순히 z라는 것을 통해서 이미지만 만들어내는게 아니라 클래스라는 c를 랜덤하게 집어넣는 것
  • 결과론적으로 generation을 할 때 GAN이 특정 모드로 집중할 수 있도록 만들어 줌
    • 특정 모드 : 식이라는 걸로 나오느 one-hot vector (conditional vector)에 집중할 수 있게 만드는 것

Text2Image

  • 문장이 주어지면 이미지를 만듦
  • 이 연구로 시작해 OPEN-AI에서 DALL-E가 나왔다.

Puzzle-GAN

  • 이미지 안에 sub-patch들이 있으면 sub-patch들이 들어가면 원래 이미지를 복원하는 것

CycleGAN

  • GAN구조를 활용하지만 이미지 사이의 두개의 domain을 바꿀 수 있음
  • Cycle-consistency loss는 꼭 알아야 하는 concept

    • 말을 얼룩말로 바꾼다고 하면
    • 두개의 똑같은 이미지에 말과 얼룩말의 사진이 필요한대
    • 얘는 그냥 야생에 떠도는 말 사진 잔뜩 있고 야생을 떠도는 얼룩말 사진 잔뜩 있을 때 알아서 임의의 말이 있는 이미지가 주어지면 얼룩말이 있는 이미지로 바꿔주는 것
    • 이를 위해서 GAN구조가 2개 들어감

Star-GAN

  • 우리나라 논문
  • 이미지를 단순히 다른 도메인으로 바꾸는게 아니라 내가 control 할 수 있게 만들어 줌

GAN이라는 구조는 굉장히 고차원의 진짜같은 이미지를 만들어 낼 수 있기 때문에 많은 방법론이 나오고 있음

Progressive-GAN

  • 되게 고차원의 이미지를 잘 만들 수 있는 방법론
  • 엄청나게 좋은 성능

  • 저차원 부터 고해상도의 이미지로 점점 늘려나가면서 학습을 시키는 training progresses가 큰 아이디어가 되서 굉장히 좋은 성능을 냄

댓글남기기