Generative Adversarial Nets(GAN)

zzZ·2023년 12월 2일

Ian J.Goodfellow 의 논문 (2014)

Abstract

  • 데이터 분포를 생성하는 generative model G 와 그 데이터 분포를 판별하는 discriminative model D를 통해 두 가지 모델을 동시에 훈련하는 적대적 프로세스를 통해 생성 모델을 추정하기 위한 새로운 프레임 워크를 제안
  • G는 training 과정에서 D가 실수할 확률을 최대화 한다
  • G와 D의 고유한 해는 존재한다 (G는 training data를 재현하고 D는 1/2 을 출력)
  • G와 D는 다층 퍼셉트론으로 정의되고 backpropagation으로 훈련된다
  • 실험을 통해 질적, 정량적 평가를 통한 프레임워크의 잠재력을 입증함

1 Introduction

  • 딥러닝은 인공지능이 마주하는 자연 이미지, 음성을 포함하는 오디오 파형 및 자연어 기호와 같은 데이터의 풍부한 확률 분포를 포함하는 계층적 모델을 발견하는 것이다
  • 지금까지 딥러닝에서 가장 두드러진 성공은 고차원적이고 풍부한 입력을 클래스 레이블에 매핑하는 discriminative models과 관련있다(이러한 성공은 backpropagation과 dropout 알고리즘 덕분)
  • 심층 생성모델은 다루기 힘든 확률적인 계산을 근사하는 것의 어려움과 generative context에서 piecewise linear units이용하는 것에 어려움이 있다
  • 논문에서는 이러한 어려움을 피하는 새로운 생성모델을 제안
  • 논문에서 제안한 advesarial nets framework에서 generative model은 적과 대립한다
  • discriminative model은 데이터가 모델의 분포인지, 진짜 데이터의 분포인지 결정하도록 학습한다
  • generative model은 가짜 지폐를 생산하여 탐지되지 않도록 노력하는 위조범과 유사하다고 생각할 수 있고, discriminative model은 위조 지폐를 탐지하려는 경찰과 유시하다고 생각할 수 있다
  • 이 게임의 경쟁은 위조품을 진짜와 가짜로 구별할 수 없을 때까지 두 팀(G와 D)가 그들의 방법을 개선하도록 한다
  • 본 논문에서는 G가 다층 퍼셉트론에 랜덤 노이즈를 통과시켜 샘플을 생성하는 경우를 살펴보고 D 역시 다층 퍼셉트론이다
  • 역전파 및 드롭아웃 알고리즘만을 사용해 두 모델을 훈련하고 샘플을 생성하는 경우 G의 순전파를 사용해 생성한다

2 Relative work

생략

3 Adversarial nets

  • 모델이 모두 다층 퍼셉트론인 경우 적대적 모델링 프레임워크를 가장 쉽게 적용할 수 있다
  • 데이터 x에 대한 확률분포 pg를 학습하기위해 사전 입력 노이즈 변수 pz(z)를 정의하고 데이터 공간에 대한 매핑을 G(z;θ)로 표현한다(G는 매개 변수 θg를 갖는 다층 퍼셉트론으로 미분가능한 함수이다)
  • 또한 단일 스칼라값을 출력하는 두 번째 다층 퍼셉트론 D(x; θd)를 정의한다
  • D(x)는 pg가 아닌 데이터에서 x가 나왔을 확률울 나타낸다
  • D가 training example과 G의 sample 모두에 정확한 레이블을 할당할 확률을 최대화 하도록 D를 훈련한다
  • 동시에 G를 훈련하여 log(1 - D(G(z))를 최소화한다
  • 즉, D와 G는 함수 V(G, D)로 2인용 minmax game을 한다

  • 파란 점선은 D의 판별분포, 녹색 실선은 G의 데이터 생성분포, 검정 점선은 실제 데이터의 분포, 아래의 수평선은 z가 샘플링되는 분포
  • (b)를 보면 D가 inner loop를 돌며 훈련되면 real 데이터의 경우 잘 맞추는 걸 알 수 있다
  • (c), (d)에서 G가 노이즈 z에서 실제 데이터와 비슷하게 분포를 맵핑하도록 훈련해
    D는 그 둘을 잘 구별하지 못해서 0.5와 비슷한 확률분포를 출력한다

  • 두 모델을 모두 훈련시키며 D를 최적화하는것은 계산상 불가능하다

  • 그 대신에 본 논문에서는 D를 최적화하는 k 단계와 G를 최적화하는 한 단계를 교대로 한다

  • 결과적으로 D는 최적해 근처로 최적화 할 수 있고, G도 천천히 변하면서 최적화 할 수 있다

  • 실제로 위의 식 (1)에서 G가 잘 학습되지 않을 수 있다

  • 학습 초기에 G의 성능은 좋지 못하고, D는 성능이 좋지 않은 G에 대해서 training data와 많이 다르기 때문에 위조 데이터를 모두 판별하기 때문

  • 그래서 G를 log(1 − D(G(z )))를 최소화하기 보단, log D(G(z ))를 최대화 하도록 훈련

4 Theoretical Results

  • 모델이 어떻게 전역최적해로 어떻게 수렴하는지 설명

4.1 Global Optimality of pg = pdata

  • G를 고정시키면 D의 최적해는 위와 같다고 한다
  • 증명
    • V(G, D)의 expectation을 적분으로 펼치면 위와 같은 식으로 나타 낼 수 있다
    • pdata(x)를 a, pz(z)를 b, D(x)를 y 라고 하면 위 식은 alog(y) + blog(1-y)로 변환됨
    • [0, 1] y의 최대값은 a/(a+b) 이다 따라서 D(x)의 최적해는 식 (2)과 같다
  • 이번에는 전역최적해가 pg = pdata 임을 증명
    • C(G)라는 함수를 D에 대한 V(G, D)를 최대로 하는 함수로 정의
    • 위에서 구한 식을 바탕으로 D(x)를 치환 할 수 있다
    • 그리고 그 식은 분자에 2를 곱하고 log(4)를 빼준 것과 같다
    • 이 식을 KL divergence로 변환(두 확률분포의 차이를 계산하는 함수)
    • 그리고 이 식을 JSD()로 바꿀 수 있다
    • 이 JSD가 최소가 되는 해는 pdata = pg 이므로 pdata = pg일 때 함수 C(G)가 전역최적해를 갖는다(그때 C(g) 값은 -log(4))

5 Experiments

  • MNIST, TFD(얼굴 데이터셋), CIFAT-10 데이터 셋을 활용해 GAN을 학습시킴
  • generator nets는 Relu와 sigmoid 활성화함수를, discriminator net은 maxout 활성화 함수를 사용함
  • Dropout이 discriminator net 훈련에 사용되었다
  • noise는 generator의 가장 하위 layer에만 인풋으로 사용되었다
  • 가장 오른쪽 열은 생성한 이미지이다 이것은 생성 이미지가 training 데이터를 완전히 따라하지 않음을 보여준다
  • 다른 오토인코더 계열 생성형 모델보다 GAN이 좀 더 블러하지 않고 샤프하다

6 Advantages and disadvantages

  • GAN은 이전의 모델들에 비해 장단점이 있다
  • 단점
    • pg(x)의 명시적인 표현이 없다는 것과 D를 훈련 중 G와 잘 동기화되어야 한다
  • 장점
    • 마르코프 체인이 필요하지 않고 역전파만 그레이디언트를 얻는데 사용
    • 다양한 함수를 모델에 통합할 수 있다
    • 마르코프 체인을 기반으로 한 모델은 다소 흐릿한 이미지를 생성하지만 GAN은 그렇지 않다

0개의 댓글