Generative Adversarial Nets_GAN_Overview

2021. 3. 2. 17:04Data Science/05_Research paper

반응형

 

Generative Adversarial Nets_GAN_(Overview)

 

: 2014년 공개된 GAN(Generative Adversarial Nets) 논문 리뷰를 진행

: 개념을 설명하는 Overview와 Tensor 2.0 구현 Code 2개 챕터로 소개

 

 

Generative Adversarial Nets 논문 링크

arxiv.org/pdf/1406.2661.pdf

 

Generative Adversarial Nets Tutorial 링크

arxiv.org/pdf/1701.00160.pdf

 

 

1. Concept

 

: 생성모델(G)은 학습 데이터를 학습하여 학습 데이터의 분포를 따르는 유사한 데이터를 생성하는 모델

: Markov decision process, VAE, Bayesian Network, Gaussian Mixture Model 등의 생성모델이 있으나 해당 논문에선 Generative Adversarial Networks(GAN) 위주로 기술

 

 

2. Structure

 

: 두개의 모델(G, D)‘적대적 네트워크’형성

: 생성자 (Generator)진짜처럼 보이는 이미지를 생성하도록 배우는 와중에, 감별자 (Discriminator)는 가짜의 이미지로부터 진짜를 구별하게 되는 것을 학습

 


GAN_structure


 

 

: 기본 GAN생성자와 판별자는 convoluation layer로 이루어져 있음 (Conv-BatchNorm-Activation)

2-1) 생성자 (Generator)

  • 판별자(D)가 구별을 실패할 수 있도록 최대한 학습 데이터와 동일한 분포 데이터를 출력하도록 학습

2-2) 판별자 (Discriminator)

  • 생성자(G)와 실제 데이터를 보다 잘 구별할 수 있도록 학습

 


GAN_structure_G_D


 

 

2-3) 생성 오차와 판별 오차 (Generation Loss & Discrimination Loss)

  • 각 모델에서의 오차를 minimax game을 통해 최적화

2-4) 파생모델

  • 위의 기본 GAN 구조에서 내부의 어떤 layer를 어떤 형태로 형성했는지, 어떤 loss function을 썼는지, 혹은 어떤 작업을 수행하는가에 따라 다양한 파생 모델 존재
  • DCGAN, InfoGAN, WGAN, AC-GAN, CycleGAN, ProgressiveGAN, StyleGAN, BigGAN 등

GAN_lossfunction_minmax


 

 

3. Features

 

3-1) 장점

  • computational cost 측면에서 MarKov chains이 필요하지 않고 기울기 계산을 위한 역전파만 사용
  • 학습 중에는 예측이 필요 없음
  • 모델의 다양한 기능을 통합할 수 있음
  • 미래 행동에 대한 조건부 확률를 추정하는 방법으로 강화학습의 model-based algorithm 활용 가능
  • missing data와 label imbalance를 보완 가능
  • 다수의 ‘정답’이 있는 multi-modal outputs 모델로 사용

3-2) 단점

  • 생성자(G)로 만들어진 x에 대해 명시적인 표현이 없음
  • 훈련중에 판별자(D)와 생성자(G)가 적절하게 학습되어야 함
  • Loss function의 saddle point를 찾기 어려움 (학습 자체가 어려움, "training GANs requires finding Nash equilibria in high-dimensional, continuous, non-convex games")
  • Mode collapsing 문제가 발생 (생성자가 판별자를 속이기 위해서 잘못된 데이터를 생성)
  • 모델이 '잘' 학습되었는지 판달할 수 있는 evaluation metrics의 부재

 


GAN_features


 

반응형