웹 개발 메모장

1. GAN: Generative Adversarial Networks 본문

옛날../GAN(Generative Adversarial Networks)

1. GAN: Generative Adversarial Networks

도로롱주 2019. 8. 2. 20:43

 

목차

  • Abstract
  • Introduction
  • Adversarial Nets
  • Theoritical Results
  • Experiments
  • Advantages and disadvantages
  • Conclusions and future work
  • References

 

Abstract

 

이 논문에서는 적대적으로 동작하는 두 생성 모델을 동시에 학습시키는 새 framework를 제안합니다.

G(생성자)는 원본 data distribution을 흉내 내고, D(판별자)는 data가 원본 data인지, G(생성자)가 생성한 data인지 판별합니다. G(생성자)의 목적은 D(판별자)를 속이는 것이 목적이고, D(판별자)는 data를 정확하게 판별하는 것이 목적입니다.

따라서, D(판별자)의 정확도는 종국에 50%가 됩니다.

 

 

Introduction

GAN

적대적인 두 네트워크를 학습시킵니다. D는 data가 X에서 온 것인지, G에서 온 것인지 잘 판별하는 것이 목표이고,  G는 D를 속일 정도로 data를 잘 생성하는 것이 목표입니다.

다층 퍼셉트론을 사용하면, 다른 복잡한 네트워크 필요 없이 forward/backpropagation 만으로도 학습이 가능합니다.

 

 

Adversarial Nets

GAN 목적 함수

G는 V를 최소화 하려고 한다.

D는 V를 최소화 하려고 한다.

E: 기댓값

X~Pdata(x): 원본 데이터 분포에서 왔을 때,

X~Pz(z): 생성 데이터 분포에서 왔을 때

 

학습시킬 때, inner loop에서 G를 최적화하는 것은 매우 많은 계산을 필요로 하고, 유한한 데이터셋에서는 overfitting을 초래하기 때문에, k step만큼 D를 최적화 시키고 G는 1 step만 최적화 하도록 합니다.

학습 초반에는 G가 형편없기 때문에 D는 판별을 아주 잘하게 됩니다.

G가 log(1-D(G(z))를 최소화하도록 하는 것 보다는, log(D(G(x))를 최대화하도록 하는 것이 더 학습이 잘됩니다.

이유는 G가 너무 형편없는 경우, log(1-D(G(z))의 gradient 값이 너무 작아 학습이 느리기 때문입니다.

GAN 학습과정

검은 점선: 원본 데이터의 분포

초록 실선: G가 생성한 분포

파란 점선: D가 판별한 결과

화살표: x = G(z) mapping

(a) 초기상태, G, D 모두 학습전

(b) D 학습 후, 판별을 잘하고 있다.

(c) G 학습 후, G가 생성한 분포가 원본 분포와 비슷해지고 있다.

(d) 충분한 학습 후, G가 생성한 분포가 원본의 분포와 거의 동일하며, D의 판별 값이 0.5에 수렴한다.

 

 

Theoretical Results

Theoretical Results

 

 

Experiments

 

MNIST, TFD, CIFAR-10에 대해 학습을 진행한 결과가 다음과 같습니다.

GAN 학습 결과

소스코드: https://github.com/djkim1991/gan

 

 

Adventages and disadvantages

 

장점

 - backpropagation 만으로 학습이 가능합니다.(마르코프 체인이 필요 없다.)

 - 다양한 함수들이 모델들을 모델에 접목하여 활용도가 뛰어나고 발전 가능성이 높습니다.

 

단점

 - 판별자 D와 생성자 G가 균형을 잘 맞추어 성능이 향상되어야 하는데, 정답이 없고 쉽지 않습니다.

 - 모델이 실제 데이터 분포를 따라가지 못하고 그저 뭉뚱그리기만 하면서, 다양성을 잃을 수 있습니다.

   예를 들면, MNIST로 학습하는 경우 단순히 목적함수의 loss만 줄이는 방향으로 설정되어, 0~9 총 10가지 숫자를 골고루 생성하는 것이 아니라 특정 숫자만 만들려고 하는 경우입니다.

 

 

Conclusions and future work

 

사실 2014년 처음 발표된 original GAN은 학습이 불안정하고 고해상도 이미지는 생성하지 못하는 한계를 갖고 있습니다.

이러한 문제를 보완하기 위해 GAN 이후로 수많은 발전된 GAN이 연구되어 발표되었습니다.

 

Comments