Generative Adversarial Nets(GAN) 리뷰

falconlee236

·

2024. 1. 20. 19:07

반응형

 

 

0. Abstract


  • 이 논문에서는 적대적 방식을 통해서 생성 모델을 추정하는 새로운 framework를 제안
  • 이 framework에서는 두개의 model을 동시에 훈련한다.
    • $G$ : generative model
      • 기존에 있는 실제 데이터를 모방한다.
    • $D$ : discriminative model
      • $G$가 생성한 데이터가 실제 데이터랑 얼마나 비슷한지 확률을 추정한다.
  • 이 framework의 목표는 $G$가 생성한 데이터를 $D$가 구분을 못하는 확률을 최대화 하는 것이다.
    • 즉 $D$의 역할은 실제와 가짜를 구분하는 역할인데, $G$가 만든 데이터가 실제라고 생각하는 확률을 최대화 하는 것이 목표이다.
  • 해당 framework는 각각 두명의 사용자의 최대최소를 서로 확인하는 것과 연관되어있다.
    • $G$가 만든 가짜 데이터가 실제 데이터와의 차이를 최소화하는것과
    • $D$가 $G$가 만든 가짜 데이터를 실제라고 판별할 확률을 최대화하는것
    의 조합으로 이루어져 있다는 말이다.
  • 임의의 함수 $G$, $D$에 대해서
    • $G$는 원래 training data의 분포를 완벽히 회복하고
    • $D$는 진짜와 가짜를 구분할 확률을 정확히 각각 $\frac{1}{2}$로 만들어야 한다.
  • 만약 $G$와 $D$가 multilayer perceptron(딥러닝에 있는 여러 layer로 이루어진 단순 모델)이라면 전체 시스템은 backpropagation(역전파)로 훈련이 가능하다.
    • 단순 미분의 chain-rule을 통해서 훈련이 가능하다는 뜻.
  • 모델을 생성하거나 훈련할 때 Markov chain이나 unrolled approximate inference가 필요없다.

 

1. Introduction


  • 지금까지 딥러닝 분야에서 가장 성공적인 부분은 Discriminative model 분야이다.
    • 고차원 데이터를 다루고, label 분류에 따라서 값이 매우 민감해진다.
    • 기본적으로 역전파와 dropout 알고리즘을 사용
    • gradient 계산에 유용한 piecewise-unit을 사용
  • 기존의 생성 모델은 그렇게 큰 영향력을 미치지 못했다.
    • 최대 가능도 추정, 관련 방법을 구하기 위해서 필요한 각 변수간의 확률적인 계산을 추정하는 것이 어려움.
    • 생성의 관점에서 piecewise linear unit의 이점을 끌어 올리기 위하는 방법이 어려움.
    때문에.
  • 해당 생성모델의 어려움 때문에 우리는 새로운 생성모델 추정 절차를 제안한다.
  • 제안한 적대적인 nets 프레임워크에서 생성 모델은 서로 적대적으로 학습한다.
    • discriminative모델은 표본이 G에서 만들어진 것인지 기존 데이터에서 만들어진 것을 결정하면서 학습을 한다.
    • generative모델은 진짜와 거의 비슷하게 만들어서 판별 모델이 구별하지 못하는 데이터를 만든다.
    이러한 경쟁은 생성 모델이 만든 가짜가 진짜랑 구별이 안될정도로 정교한 데이터를 만들 때까지 각자 모델을 발전시킨다.
  • 해당 논문에서는 G와 D모두 다층 퍼셉트론으로 이루어진 특수한 경우의 모델에 대해서 알아볼것이다.
    • 이러한 특수한 케이스를 우리는 앞으로 adversarial nets 라고 한다.
  • adversarial nets는 오직 역전파, 순방향 전파, dropout알고리즘만을 사용해서 훈련이 가능하며, approximate inferenceMarkov chain은 불필요하다.

 

2. Adversarial nets


  • 적대적 모델은 두 모델이 서로 multilayer perceptron으로 이루어져 있는 경우 적용하기 쉽다.
  • 우리는 기존의 training data와 $G$에서 만들어진 sample에 각각 알맞는 label을 부여하는 확률을 최대화하게 $D$를 훈련해야한다.
  • 즉 다음 수식을 사용.
  • $\min\limits_{G}\max\limits_{D}V(D,G)=\mathbb{E}{x\sim p{data}(x)}[logD(x)]+\mathbb{E}{z\sim p{z}(z)}[log(1-D(G(z)))]$

In Generator

  • 데이터 $x$의 generator의 분포 $p_g$를 학습하기 위해서는 입력 noise 변수 $p_z(z)$를 정의해야한다.
  • 그리고 나면 해당 $z$ 를 데이터 공간 $G(z; \theta_g)$에 사영해야 한다.
    • $G$는 매개변수가 $\theta_g$인 다층 퍼셉트론의 미분가능한 함수이다.

In Discriminator

  • 하나의 스칼라값을 결과로 하는 또 다른 다층 퍼셉트론 함수인 $D(x;\theta_g)$를 정의한다.
    • $D(x)$에서 $x$는 노이즈가 섞인 데이터 분포인 $p_g$에서 가져온 $x$가 아니다.
    • 실제 데이터인 $p_{data}$에서 가져온 변수 $x$이다

Training Strategy

  • 다음 챕터에서 adversarial net의 실증적인 분석을 제공한다.
  • 그림 1을 덜 엄밀하게, 특히 해당 게임을 반복적이고 수치적인 관점으로 보자면
    • $D$를 매 반복마다 훈련을 하는 것은 유한한 real dataset을 가지고 있어서 과적합의 위험성이 있기 때문에 좋지 않다.
    • 그 대신에 $G$를 한 단계 최적화 할때, $D$를 $k$단계 최적화 하는 식으로 과적합을 줄일 수 있다.
    이렇게 하면 $D$는 여전히 최적의 해답을 가진상태로 유지하고 $G$의 변화는 충분히 줄어든다.
  • 이러한 전략은 SML/PCD 에서 소개한 방식이다.
  • 특히 위에서 언급한 수식은 $G$에 대한 충분한 gradient를 제공하지 못한다.
    • 학습 초기에 $G$가 성능이 좋지 않을때, $G$가 생성한 데이터는 확실히 train data와 다르기 때문에 $D$는 sample를 분명히 reject할 것이다.
    • 이 경우에 $log(1-D(G(z))$의 값은 음의 무한대로 가까워질 것이다.
      • 왜냐하면 $D$가 거의 1에 가깝게 결과를 낼 것이고, log안에 있는 값이 0에 가까워지면 음의 무한대로 발산
    • 따라서 우리는 $log(1-D(G(z))$를 최소화 하려고 훈련하는 것이 아닌, $log(D(G(z))$를 최대화하는 $G$로 훈련하는 것이 더 낫다.

증명은 다음 포스트에서 계속..

반응형

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

Generative Adversarial Nets (GAN) 증명  (0) 2024.01.20