본문 바로가기
논문 리뷰/CV

[D&A] GAN 논문 리뷰

by hyeon827 2024. 7. 17.

Generative Adversarial Nets

논문 원본 : https://arxiv.org/abs/1406.2661

 

Generative Adversarial Networks

We propose a new framework for estimating generative models via an adversarial process, in which we simultaneously train two models: a generative model G that captures the data distribution, and a discriminative model D that estimates the probability that

arxiv.org

 

1. Abstract & Introduction

   

    minimax two-player game

  • Generative model(G)와 Discriminative model(D) 을 동시에 훈련시키는 방법 제안
  • G는 training data의 분포를 모사 (D가 구별하지 못하도록) => 지폐 위조범
  • G의 training 과정은 D가 실수할 확률을 최대화하는 것
  • D는 해당 데이터가 G가 만든 것인지, 원본인지 판별 => 경찰
  • 즉, 두 모델은 서로 게임을 하듯이 경쟁하면서 학습 진행
  • 학습이 잘 되었을 때(G가 training 데이터 분포에 모사) D가 입력 데이터가 실제 데이터인지 생성된 가짜 데이터인지 판별할 확률이 50%
  • G와 D가 mult-layer perceptrons으로 정의된 경우,전체 시스템은 back-propagation을 통해 학습

 

2. Adversarial nets

  • Adversarial modeling framework는 모델들이 모두 multi-layer perceptrons일 때 가장 간단하게 적용
  • 첫 번째 항 : 원본 데이터 분포에서 sample x를 뽑아 logD(x)의 기대값 계산
  • 두 번째 항 : 노이즈 분포에서의 sample z를 뽑아 log(1-D(G(z)))의 기대값 계산

   Discriminative 입장

  • 첫 번째 항 : D가 원본 데이터에 대해서 1(Real)로 판별할 수 있도록 학습
  • 두 번째 항 : G로부터 생성된 이미지(가짜 데이터)로부터 0(Fake)으로 판별할 수 있도록 학습
  • 즉, 아래 목적함수를 maximize하는 방향으로 학습 (최대값 0)

   Generative 입장

  • 첫 번째 항 : G 포함 X (고려 X)
  • 두 번째 항 : G로부터 생성된 이미지(가짜 데이터)로부터 D가 1(Real)로 판별할 수 있도록 학습
  • 즉, 아래 목적함수를 minimize하는 방향으로 학습 (최솟값 ∞)

 

   초기 학습 시 문제점

  • 학습 초기 G가 제대로 학습되지 않았을 때, 생성된 sample이 training 데이터와 확연히 다름
  • 이로 인해 D는 높은 확률로 생성된 sample를 높은 확률로 거부할 수 있음 
  • 이 경우 log(1-D(G(z)))는 포화되어 gradient가 거의 0이 되므로 G의 학습이 제대로 이루어지지 않음

   대안 방안

  • log(1-D(G(Z)))를 최소화하는 대신 logD(G(Z))를 최대화하도록 G를 훈련
  • 학습 초기에 훨씬 강한 gradient 제공

   학습 과정

  • (b) : Generator 고정하고 Discriminator 학습
  • (c) : Discriminator 고정, Generator 학습
  • 해당 과정 반복
  • (d) : 원본 데이터 분포와 생성 모델 분포가 거의 비슷해짐
  • 즉, D의 분포가 1/2로 수렴
  • 파란색 점선 : discriminative distribution
  • 초록색 점선 : generative distribution
  • 검은색 점선 : data generating distribution (real)

 

 

3. Theoretical Results

 

  증명 과정 참고 영상: https://www.youtube.com/watch?v=AVvlDmhHgC4

  •  G가 고정되어 있는 상황에서 D의 최적해 (수식적으로 증명)

 

  • G의 최적해 (수식적으로 증명)
  • JSD는 두 분포의 distance를 구하는데 사용 (최소값 0)
  • 즉, 생성자가 잘 학습돼서 G분포와 D분포가 같아질 때 최소값 -log(4)를 가지게 됨

 

 

4. Conclusion (한계점)

 

   Mode collapse

  • 단순히 오류를 최소화하기 위해 최빈값(mode)에만 집중하여 학습
  • 즉, 특정한 형태만 계속해서 생성 

   How to evaluate? 

  • 성능 평가 지표 X (사람이 판단)
  • 학습을 얼마나 진행해야 하는지 명확한 기준이 부족

   Unstable training

  • minmax 게임 과정 속에서 G와 D 간의 힘의 균형이 깨지기 쉬움
  • G가 너무 강할 경우: G는 현실적이지 않은 데이터를 생성 (하지만 D는 판별 못하는 상태)
  • D가 너무 강할 경우: G는 D를 속이는 방법을 찾기 어렵게 되고, 학습이 제대로 이루어지지 않음

 

Reference

https://tobigs.gitbook.io/tobigs/deep-learning/computer-vision/gan-generative-adversarial-network

https://www.youtube.com/watch?v=AVvlDmhHgC4

https://www.youtube.com/watch?v=jB1DxJMUlxY

https://mz-moonzoo.tistory.com/15

'논문 리뷰 > CV' 카테고리의 다른 글

[X:AI] Detr 논문 리뷰  (0) 2024.07.23
[X:AI] MOFA-Video 논문 리뷰  (0) 2024.07.20
[X:AI] SimCLR 논문 리뷰  (1) 2024.07.14
[X:AI] Grad-CAM 논문 리뷰  (0) 2024.07.06
[X:AI] Taskonomy 논문 리뷰  (0) 2024.05.21