[DL Basics]Generative Model

임수정·2022년 2월 10일
0

DL Basics

Generative Model

1) Introduction

What I cannot create, I do not understand.
-Richard Feynman(1918~1988)

  • Generative Model을 그대로 해석하면 '생성 모델'이다.
  • 하지만 Generative Model을 단순히 데이터를 생성하는 모델 정도로만 알고 있으면 Generative Model의 일부만 알고 있는 것이다. Generative Model은 단순히 데이터를 생성한다는 개념보다 더 큰 범위를 포괄하는 개념이다.
  • 그러면 제대로된 Generative Model의 의미를 알아보자.

2) Learning a Generative Model

  • 우리에게 여러 개의 강아지 사진들이 주어졌다고 해보자.
  • 우리는 강아지를 샘플링하는(서로 다른 강아지를 찍어내는) 어떤 모델을 만들고 싶다.
  • 하지만 Generative Model은 우리가 생각하는 단순히 데이터를 만들어 내는 것 말고도 할 수 있는 게 있다.
    • Generation : 우리가 p(x)p(x)로부터 xnewx_{new}를 추출하면 (xnewx_{new}~ p(x)p(x)), xnewx_{new}는 강아지 같아야 한다.(sampling) - 우리가 원래 알고 있던 task

    • Density Estimation: 어떤 xx에 대해,xx가 강아지 같이 생겼다면 p(x)p(x)가 높아야 하고 그렇지 않다면 p(x)p(x)가 낮아야 한다.(anomaly detection)
      • 엄밀히 말하면, Generative Model은 Discriminative Model을 포함하고 있다.
      • 즉 (Fully trained 된) Generative Model은 데이터를 단순히 만들어만 낼 수 있는 게 아니라 어떤 이미지가 주어졌을 때 이게 강아지인지 아닌지를 구분할 수 있는 것까지 포함한다.
      • 이러한 모델을 보통 explicit model(어떤 입력이 주어졌을 때, 그 입력에 대한 확률 값을 얻어낼 수 있는 모델)이라고 한다.
      • 이와 달리 단순히 generation만 할 수 있는 모델(ex.VAE, GAN)을 implicit model이라 한다.
      • 즉 generative model 안에서도 다시 explicit modelimplicit model로 나누어진다.

    • Unsupervised representation learning: 이미지들이 공통적으로 가지고 있는 특징들을 학습할 수 있어야 한다.(ex.강아지 - 꼬리, 귀 등등..)(feature learning)
      • feature learning은 generative model에 들어가냐 아니냐는 조금 애매하긴 하지만, 스탠포드 자료에서는 generative model에 포함하고 있다.
    • 그러면, 우리에게 필요한 p(x)p(x)를 어떻게 만들어야 할까?

3) Basic Discrete Distributions

  • Discrete Distributions : 우리가 관심 있어 하는 값들이 finite set인 경우
  • Bernoulli distribution : (biased) coin flip
    • D = {Head, Tails}
    • P(X=Heads)+P(X=Tails)=1P(X=Heads) + P(X=Tails) = 1 이므로,
      P(X=Heads)=pP(X=Heads)=p 라고 두면,
      자동으로 P(X=Tails)=1pP(X=Tails)=1-p가 된다.
    • 따라서 필요한 파라미터 수는 p 1개이고, XX ~ Ber(p)Ber(p)라고 쓴다.

  • Categorical distribution : (biased) m-sided dice
    • D = {1, ..., m}
    • P(Y=i)=piP(Y=i)=p_{i}라고 두면, i=1mpi=1\sum_{i=1}^{m}{p_{i}} = 1이므로,
    • YY~Cat(p1,...,pm)Cat(p_{1}, ..., p_{m})이라고 쓰고, 필요한 파라미터는 m-1개이다.
      (총합이 1이기 때문에 마지막 하나는 자동으로 정해진다.)

  • 예시 : RGB이미지의 픽셀 하나를 표현하는 데 몇 개의 파라미터가 필요할까?
    • (r,g,b)(r, g, b) ~ p(R,G,B)p(R, G, B)
    • 각각은 0~255 중의 값을 가질 수 있으므로 R, G, B 각각의 가짓수는 256이고, 이 세개가 서로 독립적(independent)이므로
      256 x 256 x 256의 경우의 수가 있다.
    • 얘를 표현하는 파라미터는 몇개일까?
      • 256 x 256 x 256개의 종류가 있으므로 catergorial distribution에 의해 (256 x 256 x 256 - 1)개의 파라미터가 필요하다.( 한 픽셀당!! )
    • 이미지를 표현하기 위해 필요한 파라미터 수가 너무 많다....

  • 예시2: 좀 더 쉬운 binary 이미지를 표현하는 데 몇 개의 파라미터가 필요할까?

  • 기계학습에서는 파라미터 수가 많아지면 많아질수록 학습이 어렵다는 것을 이전에 배웠다. 따라서 이 파라미터 수를 줄이는 것을 고민해봐야 한다.

4) Structure Through Independence

  • 모든 확률 변수가 서로 독립적(independent)이라고 생각해버리면 파라미터 수를 엄청나게 줄일 수 있다.
  • 예를 들어, 위에 얘기했던 binary 이미지를 다시 생각해보자.
    • X1X_{1}, ..., XnX_n이 모두 독립적이라고 가정하면
    • 가능한 경우의 수는 그대로 2n2^n이다.
    • 하지만 파라미터 수는 각각 따로 따로 고려해서 더하면 되기

5) Conditional Independence

  • Chain Rule
  • Bayes' rule
  • Conditional Independence(가정)

6) Auto-regressive Model

추가 자료 및 질문

  • Deep Generative Models : Standford
  • 1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
  • An Introduction to Variational Autoencoders
  • D.Kingma, 'Variational Inference and Deep Learning: A new Synthesis'
  • 이활석 님의 AE 강의(Youtube)
  • GAN의 validation 방법은 어떤 게 있을까? 다른 모델에서는 validation 데이터를 가지고 epoch마다 모델을 평가해서 early stopping 등의 조치를 취할 수 있는데, GAN은 validation을 어떻게 하면 좋을까? D와 G의 loss만을 확인하면 될까?
    • GAN도 학습이 얼마나 잘 되었는지를 판단할수 있는 Metric 비스무리한게 존재하긴합니다
      FID라던지 Inception Score, LPIPS 등이 존재하긴하는데 어떤것인지는 직접 한번 찾아보시면 좋을것 같아요
      그래서 이런 Metric을 이용해서 Early stopping을 할 수도 있고, 아니면 Epoch가 끝날때마다 inference를 시행해서 직접 확인하는 방법도 있습니다.
      그리고 위의 Metric들은 수치적인 Metric이기 때문에 수치가 낮게나와도 사람의 감성적으로 봤을때는 안 비슷할 수 있어요
  • 심화 과제2: ..왜 0부터 잘되는걸까요..?
  • 심화 과제1: 질문에 올라온 문제를 해결했는데 accuracy가 반토막이 되었습니다..
profile
유쾌하게, 열정적으로, 진심을 다해

0개의 댓글