[논문 리뷰] Gernerative Adversarial Nets

SimBa's avatar
Feb 08, 2025
[논문 리뷰] Gernerative Adversarial Nets
  • 2개의 model을 동시에 훈련시키는 adversarial process를 통한 generative model 제시
    • generative model G : D가 최대한 실수하도록 학습됨
    • discriminative model D : G보다 나은 sample을 만들도록 학습됨
 
 

1. Introduction

  • Deep generative model은 maximum likelihood estimation에서 발생하는 많은 다루기 어려운 확률 계산을 근사하는 것이 어려움
    • generative model은 보통 확률적 방법을 기반으로 데이터를 생성하는데, 이를 최적화하려면 복잡한 확률 계산이 필요
    • 근데 이러한 복잡한 확률 계산이 많은 경우 계산적으로 다루기 어려운 문제로 남아 있음
  • 생성적 맥락에서 piecewise liniear uniis의 이점을 활용하는 것이 어려움
    • generative model 외의의 CNN에서는 ReLU와 같은 부분 선형 함수가 널리 사용됨
    • 하지만, generative model는 이러한 구조를 적용하는 것이 쉽지 않음
  • 위의 두 가지 어려움을 해결할 수 있는 새로운 generative model을 제안
  • adversarial nets framawork
    • generative model이 discriminative model(sample이 model distribuiton과 data distribution 중에 어디에서 비롯되었는지 판별)과 대척점에 있음
      • data distri. : 실제 dataset의 분포
      • sample distr. : 생성한 data의 분포
    • generative model은 위조화폐를 제조 // discriminative model은 위조화폐를 탐지하려는 경찰
  • 본 연구에서는 generative model도 multilayer perceptron을 통해 random noise를 통과시켜 sample을 마늘고, discriminative model도 multilayer perceptron인 경우를 다룸 → adversarial nets
  • 이 경우에서는 두 모델 모두 역전파와 드롭아웃을 사용할 수 있음
 
 
  • undirected graphical model with latenet variable
    • ex. RBMs (restricted Boltzmann machines), DBMs
    • latenet variable와 observed variable을 함께 모델링하는 확률 모델 → latenet variable와 data 간의 의존성을 학습하면서 확률 분포를 근사하는 구조
    • product of unnormalized potential functions들이 모든 상태의 RV에서 global summation/integration에 의해 정규화됨
    • 하지만, 이러한 partition function과 기울기는 거의 대부분 계산이 어려움
  • DBNs (Deep belief network)
    • undirected layer 한개와 여러 개의 directed layer로 구성
    • layer별로 학습이 이러나며 빠르게 근사가 되지만, undirected & directed model 둘 다와 관련된 계산적인 어려움이 발생
  • alternative criteria
    • 기존의 생성 모델의 학습에서는 log-likelihood를 근사하거나 그 경계를 찾는 방식이 많이 사용됨 → 하지만, 이는 항상 효율적이거나 가능하지 않음 → alternative criteria 제안됨
    • Score matching, NCE (Noise-contrastive estimation)
      • log-likelihood를 직접 최적화하지 않고, 대체적인 방법으로 생성모델 학습
      • 학습된 확률 밀도가 normalization constant(정규화 상수)를 포함한 형태로 명확하게 정의될 수 있어야 함
      • DBM, DBN처럼 여러 개의 latent variable을 포함하는 생성 모델에서는, unnormalized 확률 밀도를 명확하게 정의하는 것이 어려움
      • DAE (Denosing Autoencoder, 노이즈 제거 오토인코더), CAE (Contractive Autoencoder, 수축 오토인코더) → RBM에 score matching을 적용한 것과 유사한 학습 규칙을 가짐
      • NCE
        • discriminative criteria를 사용하여 생성 모델 학습
        • NCE는 별도의 discriminative model을 따로 학습하지 않고, 생성 모델 자체가 데이터를 구별하도록 학습 → 실제 data vs. fized noise distribution 에서 생성된 sample 구별
        • fixed noise distribution → 학습 속도가 느려짐
  • GSN (generative stochastice network)
    • 확률 분포를 명시적으로 정의하지 않고, 주어진 분포에서 샘플을 생성하도록 학습
    • 역전파 사용 가능
    • Generalized denoising Autoencoder의 확장 버전
    • Markov chain 필요
    • GAN과 차이점
      • GAN은 Markov chain 필요 X
      • GAN은 feedback loop 필요 X
      • piecewise linear units(ex ReLU)와 더 잘 결합
 
 

3. Adversarial nets

  • : data 에 대한 generator’s distr.
  • : input noise variable
  • : data space와 mapping해주는 함수 (미분 가능, second multilayer의 input이 될 것)
  • : second multilayer perceptron
    • output : single scalar
    • data (generator’s distr.)보다 (data distr.)에서 왔을 확률 → real data일 확률을 출력
    • training example과 generator에서 온 sample 둘 다 correct label에 할당될 확률을 최대화하도록 학습시킴
    • 동시에, 는 최소화되도록 학습
notion image
  • discriminator
    • real data 는 높은 확률을 출력해야 함
    • fake(generator) data 는 낮은 확률을 출력해야 함
    • : GAN의 objective function → 의 값이 커야 함
    • : real data x가 들어옴 → 값이 1에 가까워질수록 값이 커짐 → 판별자는 real data에 대해 높은 확률인 1을 출력고자 함
    • : fake data 가 들어옴 → 값이 0에 가까워질수록 값이 커짐 → 판별자는 fake data에 대해 0을 출력하고자 함
  • generator
    • input noise 를 입력받음 → fake data 생성
    • 판별자를 속여서 fake data를 real data처럼 보이게 함
    • 판별자는 fake data에 대해 를 작게 만들려고 하지만, 생성자는 반대로 를 크게 만드려고 함
    • 따라서, 생성자는최소화하는 방향으로 학습됨
  • 훈련의 내부 루프에서 완료까지 D를 최적화하는 것은 계산적으로 금지되며, 유한한 데이터셋에서는 과적합이 발생할 수 있음. → D를 최적화하는 단계와 G를 최적화하는 한 단계를 번갈아 가며 수행 → 그 결과 D는 최적해 근처에서 유지되므로 D는 최적 해에 가깝게 유지
notion image
  1. 전체 훈련 반복문 : 특정 횟수만큼 training 반복
  1. Discriminator 업데이트
      • 번 반복
        • noise distr. 에서 개의 sample { } 추출
        • 실제 데이터 분호 에서 개의 sample { } 추출
        • 판별자 를 Gradient Ascent를 사용하여 업데이트
          • 판별자가 실제 데이터 x를 진짜라고 판단하고, 생성자가 만든 가짜 샘플 를 가짜라고 판별하도록 학습하는 과정
          • notion image
  1. Generator 업데이트
      • discriminator 업데이트를 번 반복 후, generator 업데이트를 시작
      • generator 업데이트는 반복 없이 딱 1번만 실행
      • noise distr. 에서 다시 개의 샘플을 샘플링
      • 생성자 를 Gradient Descent를 사용하여 업데이트
        • 생성자가 판별자를 속여 를 진짜라고 판단하게 만드는 방향으로 학습
        • notion image
 
 

4. Theoretical Results

4.1 Global Optimality of

notion image
  • 를 최적화하려면, 위에서 소개한 objective funcion maximize해야 함
    • notion image
    • 라고 하면, 의 최댓값은 위 사진에 있는 가 된다.
    • 따라서, Proposition 1 증명 완료
  • 그렇다면, 생성자 가 주어졌을 때 최적 판별자 를 사용한 objective function의 최댓값을 구해보자.
    • 우선, 를 사용하여 objective fuction을 다시 쓰면 아래 사진과 같다.
    • 4번째 줄은 자리에 위의 Proposition 1에 나와있는 식을 대입한 것
    • notion image
    • 식 정리 결과, 위의 식은 real data와 fake data에서의 log-ratio를 나타내는 형태가 됨
    • 는 생성자의 "오차"를 측정하는 함수로, 가 작을수록 가 실제 데이터 분포에 가까워졌음을 의미
    • notion image
  • 그렇다면, 이제 의 최소화 조건을 알아보자.
notion image
notion image
  • 결론적으로, 가 최소가 되는 조건은 가 실제 데이터 분포 를 완벽히 모방했을 때로, GAN의 최적화 목표와 일치
 
 

4.2 Convergence of Algorithm 1

notion image
  • 조건
    • 가 충분한 학습 용량을 가짐
    • 학습 과정에서 는 고정된 에 대해 최적화됨 (즉, 라는 최적의 판별 함수를 학습)
    • 를 업데이트하여 위의 의 식을 개선하고자 함
  • 증명
    • notion image
  • 한계
    • 가 유한한 신경망 구조로 표현됨 → 학습할 수 있는 분포가 제한됨
    • 를 직접적으로 업데이터하지 않고, 매개변수 를 통해 학습 →
Share article

심바