상세 컨텐츠

본문 제목

[4주차/CV3팀/논문리뷰]Generative Adversarial Nets

2023 Summer Session/CV Team 3

by 임청수 2023. 8. 6. 19:12

본문

 

작성자 : 17기 임청수

 

0. 요약

 

경쟁하는 과정을 통해 생산 모델을 추정하는 새로운 프레임워크를 제안함

생성모델은 판별모델이 잘 구분하지 못하도록 학습하고, 판별모델은 가짜 데이터를 판별하도록 학습함

 

 

 

  1. generative model(G, 생성모델)
  • training data의 분포를 모사함
  • D모델이 구별하지 못하도록 가짜를 만들어내는 것이 목표

 

  1. discriminative model(D, 판별모델)

샘플 데이터에 대해 G가 만들어낸 데이터가 아닌 실제 학습 데이터일 확률을 추정

  • G를 학습하는 과정은 D가 샘플 데이터를 보고 G가 생성한 가짜 데이터인지 진짜 데이터인지 판별하는데 실수를 할 확률을 최대화하는 것이 목표
  • 본 논문에서는 minmax two-player game으로 표현
  • G가 학습 데이터의 분포를 모사하게 되면서 D가 실제 학습데이터인지 생성해낸 가짜 데이터인지 판별하는 확률은 1/2가 된다.
  • G와 D가 multi-layer perceptron으로 정의된 경우 전체 시스템은 back propagation으로 정의된다.

 

 

 

1. Introduction

 

Deep generative model은 maximum likelihood estimation 과정에서 확률 연산들을 근사하는 어려움이 있음.

generative context는 선형 활성화 함수의 장점을 활용하지 못해서 아쉬움이 있음.

논문에서는 multi-layer perceptron을 활용하여 다른 복잡한 네트워크 없이 forward propagation, back propagation, dropout algorithm으로 학습이 가능하도록 구현함.

 

 

3. Adversarial Nets

 

adversaria modeling framework는 간단하므로 multi-layer perceptron을 활용함.

 

 

  • 학습 초반 G가 생성해내는 이미지는 성능이 매우 안좋으므로 D(G(z))의 결과가 0에가까움.
  • 즉, z로 부터 G가 생성해낸 이미지가 D가 판별하였을 때 바로 가짜라고 판별할 수 있음.
  • 그리고 학습이 진행될수록, G는 실제 데이터의 분포를 모사하면서 D(G(z))의 값이 1이 되도록 발전. 이는 G가 생성해낸 이미지가 D가 판별하였을 때 진짜라고 판별해버리는 것을 표현.

 

첫번째 항: real data x를 discriminator 에 넣었을 때 나오는 결과를 log취했을 때 얻는 기댓값

두번째 항: fake data z를 generator에 넣었을 때 나오는 결과를 discriminator에 넣었을 때 그 결과를 log(1-결과)했을 때 얻는 기댓값

 

 

  • 학습 시 유의점
  • inner loop에서 D 최적화 과정은 많은 연산을 필요로 함. 유한한 데이터셋에는 overfitting 발생.
  • 따라서 k step만큼 D를 최적화하고 G는 1 step만큼 최적화하도록 함.
  • 학습 초반은 G 성능이 떨어지므로 D가 너무 잘 구분함. 
  • log(1-D(G(z))가 포화상태가 되므로 log(1-D(G(z))를 최소화하려고 하는 것보다 log(D(G(z))를 최대화되게끔 학습하는 것이 더 좋음.
  • G 성능이 떨어지는 경우에는 log(1-D(G(z))의 gradient를 계산했을 때 너무 작은 값이 나오므로 학습이 느리기 때문.

 

위의 그림에서, 파란색 점선: discriminative distribution, 검은색 점선: data generating distribution(real), 녹색 실선: generative distribution(fake)을 나타냄

 

위 그림은 GAN학습 과정을 그림을 통해 확인한 것

 

  • (a) : 학습 초기 real과 fake의 분포가 전혀 다른 상태.
  • (b) : D가 (a)보다 훨씬 안정적인 분포로 real과 fake를 잘 구분함을 알 수 있음.
  • (c) : 어느정도 D 학습이 이루어진 상태. G는 실제 데이터의 분포를 모사하며 D가 구분하기 힘든 방향으로 학습.
  • (d) : 이 과정을 반복하면서 real과 fake의 분포가 거의 유사해짐. 결국 D는 둘을 구분하지 못하고 1/2로 계산하게 됨.
  • 결론 : 이 과정으로 진짜와 가짜 이미지를 구별할 수 없을 만한 데이터를 G가 생성해내고 이게 GAN의 최종 결과가 됨.

 

4. Theoretical Results

앞서 제시한 GAN의 minmax problem이 제대로 작동하기 위하여 minmax problem이 global minimum unique sloution을 가지고 어떠한 조건에 만족하면 해당 solution으로 수렴한다는 사실이 증명되어야 함.

 

 

 

수식적 증명 : https://velog.io/@rapidrabbit76/Generative-Adversarial-Networks-%EC%86%90%EC%8B%A4-%ED%95%A8%EC%88%98%EC%9D%98-%EC%A6%9D%EB%AA%85

 

 

6. Advantages and disadvantages

 

1. Advantages

  • pg(x)가 명시적으로 존재하지 않음
  • D와 G가 균형을 잘 맞춰 성능이 향상되어야 함 (G는 D가 너무 발전하기 전에 너무 발전되어서는 안된다. G가 z 데이터를 너무 많이 붕괴시켜버리기 때문)

 

 

 

 

 

 

 

2. disadvantages

 

  • Markov chains이 전혀 필요 없고 gradients를 얻기 위해 back-propagation만이 사용됨
  • 학습 중 어떠한 inference가 필요 없음
  • 다양한 함수들이 모델이 접목될 수 있음
  • Markov chains을 쓸 때보다 훨씬 선명한 이미지를 얻을 수 있음

 

 

 

Reference

 

[paper] : https://arxiv.org/abs/1406.2661

관련글 더보기

댓글 영역