AI/논문

[논문] GAN 리뷰 : Generative Adversarial Nets

슈퍼짱짱 2019. 2. 22. 14:28
반응형

Generative Adversarial Nets


논문 링크 : https://papers.nips.cc/paper/5423-generative-adversarial-nets.pdf




Abstract


  • 우리는 적대적인(adversarial) 과정을 통해 생성모델을 평가하는 새 프레임워크를 제안한다.
    • 생성 모델 G : 데이터의 분포를 학습하는 모델
    • 감별 모델 D : 생성모델 G로부터가 아닌, 훈련 데이터로 부터 나왔을 확률을 추정하는 감별 모델
  • G 모델 훈련 과정은 D가 실수할 확률을 최대화 하는 것이다.
  • 이 프레임워크는 minimax 2인 게임이다.
  • 임의의 함수 G와 D의 공간에서, G는 훈련 데이터의 분포를 복구하고, D는 항상 1/2이 되는 고유한 솔루션이 존재한다.
    • 즉, G는 훈련 데이터의 분포를 학습하여, 임의의 노이즈를 훈련 데이터와 같은 분포로 생성하고, D는 해당 인풋이 생성된 이미지인지, 훈련 데이터로 부터 나온 이미지인지에 대한 확률이 1/2가 되도록 한다.
  • G와 D는 multilayer perceptrons으로 정의되고, backpropagation으로 학습된다.



1. Introduction

  • 제안하는 adversarial nets에서 generative model은 discriminative model에 반대된다.
    • discriminative model은 sample이 model로부터 왔는지(G model로 부터 생성되었는지), 데이터로 부터 왔는지(training data) 판별하는 것을 학습한다.
    • generative model은 위조지폐를 만드는 팀과 유사하며, discriminative model은 위조지폐를 감지하는 경찰과 유사하다.
  • 이 게임의 경쟁은 위조지폐가 진짜와 구별되지 않을 때까지 그들을 향상시킨다.

  • 본 논문에서 generative model이 random noise를 multilayer perceptron을 통해 생성하고, dicriminative model 역시 multilayer perceptron인 특수한 경우를 살펴본다.
  • 우리는 이를 adverarial nets이라 부른다.
  • 우리는 두 model을 오직 backpropagation과 dropout 알고리즘만으로 학습할 수 있으며, generative model로 부터 나오는 sample은 forward propagation으로 생성된다.



3. Adversarial nets


  • data x에 대한 generator의 분포 를 학습하기 위해서, 사전에 input noise 를 정의한다.
    • 이는, data space에서 와 mapping된다.
      • 이 때,  G는 파라미터 를 가진 미분가능한 multilayer perceptron이다.
  • 두 번째 multilayer perceptron 를 정의한다.
    • 이는 single scalar를 출력한다.
  • D(x)는 x가 로 부터가 아닌, data로 부터 온 확률을 나타낸다.
  • training 예제와 G로부터 오는 sample에 올바른 라벨을 지정할 확률을 최대화하도록 D를 train한다.
  • 동시에, log(1-D(G(z)))를 최소화하도록 G를 train한다.
  • 즉, D와 G는 2인 minimax게임을 한다.

    • max D : discriminative model이 구분을 잘 한다면, D(x) = 1, D(G(x)) = 0. 즉, log(D(x)) 및 log(1-D(G(x)))는 무한대. 따라서 위 식을 maximize해야 D가 잘 학습된다.
    • min G : generative model이 잘 생성한다면, discriminative model은 G(z)를 잘 구분하지 못하게 되며, D(G(z)) = 1이 된다. 따라서 log(1 - D(G(z))) = log(0) 은 -무한대. 따라서 위 식을 minimize해야 G가 잘 학습된다.

  • D를 optimizing하는 것으로 training을 완료하면 overfitting이 될 수 있다.
  • 대신, G optimizing 한 번에 D를 k step optimizing 한다.


  • 다음 그림은 adversarial nets이 data의 분포를 학습하는 과정을 보여준다.
    • generative adversarial nets와 discrimivative distribution(D, blue, dashed line)은 동시에 학습된다.
    • 따라서, D는 data로부터 생성되는 분포 (black, dotted line)와 generative 분포 (G) (green, solid line)을 구분한다. 
    • 아래쪽 수평선은 z가 sampling되는 영역이며, 위쪽은 x의 영역이다.
      • x = G(z)

    • (a) : 와 은 유사하며, D는 부분적으로 정확한 분류자이다.
    • (b) : 알고리즘의 inner loop(one G optimizing, k steps D optimizing)에서 D는 data와 sample을 구별하도록 학습되고,                                     D = 로 수렴한다.
    • (c) : G update 후에, D의 gradient는 G(z)가 data로 분류될 가능성이 높은 영역으로 유도된다.
      • 즉, G가 학습되어 G(z)가 data와 유사해져, D가 구분을 잘 하지 못하게 된다.
    • (d) : 여러 단계 훈련을 거친 후, p(g) = p(data)가 되어 더이상 향상되지 못하는 포인트에 도달한다. discrimitator는 두 분포를 구별하지 못한다. 즉, D(x) =  1/2.


  • 다음 algorithm은 adversarial nets이 data의 분포를 학습하는 과정이다.




7. Conclusion







반응형