상세 컨텐츠

본문 제목

[6주차 / 논문리뷰 / 윤지현] Generative Adversarial Nets

방학 세션/CV

by j.hyeon 2023. 2. 21. 21:45

본문

1. Introduction

  지금까지 딥러닝에서의 가장 큰 성공은 고차원의 풍부한 입력을 class label에 매핑하는 판별모델과 관련이 있다. 이러한 성공은 주로 특히 잘 작동하는 gradient를 가지는 piecewise 선형 단위를 사용하는 역전파와 dropout 알고리즘을 기반으로 한다. 하지만 이러한 생성 모델은 최대 우도 추정(maximum likelihood estimation)에서 발생하는 다루기 힘든 확률 계산의 근사화가 어렵고, 생성 단락에서 piecewise 선형 단위의 이점의 활용이 어려워 영향이 작다. 

  제안된 adversarial net 구조상에서, 생성 모델은 샘플이 모델 분포에서 왔는지 데이터 분포에서 왔는지 결정하는 것을 학습한 판별 모델과 경쟁한다. 생성 모델은 위조화폐를 만들어 들키지 않으려는 위조범과 유사하고, 판별 모델은 이를 탐지하는 경찰과 유사하게 생각할 수 있다. 이 경쟁은 위조 화폐가 진짜 화폐와 구분이 불가능할 때까지, 즉 그 탐지 확률이 50%가 될때까지 지속된다. 이 논문에서는 생성 모델이 random noise를 통과함으로써 sample들을 생성해 낸다. 

 

2. Related Work

  잠재 변수가 있는 유향 그래픽 모델의 대안으로는 Boltzmann machines(RMBs)와 심층 Boltzmann machines(DBMs) 및 변형 모델과 같은 잠재 변수가 있는 무향 그래픽 모델이 있다. 이러한 모델의 partition 함수와 gradient는 MCMC(Markov chain Monte Carlo) 방법으로 추정 가능하지만 가장 사소한 경우 이외에는 다루기가 어렵다는 문제를 가진다.

  DBN(Deep Belief Networks)는 무향 단일 층과 유향 층을 포함하는 혼합 모델로, 빠른 근사적 계층별 훈련 기준을 가지지만 계산상의 어려움을 가진다.

  log-likelihood를 근사화하거나 제한하지 않는 대체 기준이 제안되기도 하였다. score matching과 NCE(noise-contrastive estimation) 이 그 두가지 모델인데, 이 두 모델은 모두 학습된 확률 밀도가 정규화 상수까지 지정되어야 한다. 하지만 생성 모델은 여러 계층의 잠재변수를 가지기 때문에 비정규화 확률 밀도를 도출하는 것조차 불가능하다. 또한 NCE는 고정된 noise 분포를 가지는 샘플에서 생성된 데이터를 판별하기 때문에 작은 하위 집합에 대한 근사적 분포를 학습한 후에도 학습 속도가 매우 느려진다. 

  일부 기술은 확률 분포를 명시적으로 정의하지 않고 원하는 분포에서 샘플을 추출하도록 생성 모델을 훈련시키기도 한다. 이러한 방식은 역전파에 의해 훈련되도록 설계할 수 있다. 모델의 예로는 일반화된 noise 제거 autoencoder를 확장하는 GSN(generative stochastic network) 구조가 있다. 

 

3. Adversarial nets

  adversarial 모델링 구조는 두개의 모델이 모두 다층 퍼셉트론일 때 적용하기 가장 쉽다.

  p(z)는 입력 noise 변수로 데이터 x에 대한 생성 모델의 분포 p를 학습하기 위한 변수이다. 이를 데이터 공간에 대해 매핑한 것을 G(z; θg)로 정의한다. D(x; θd)는 단일 스칼라를 출력하는 두번째 다층 퍼셉트론으로 정의된다. training 예제와 G의 샘플 모두에 올바른 label을 할당할 확률을 최대화하기 위해 D를 훈련시키고, 동시에 log(1 − D(G(z)))를 최소화하기 위해 G를 훈련시킨다. 간단히 말해, D와 G는 가치 함수 V (G, D)를 사용하여 minmax 경쟁을 한다고 할 수 있다. 다음 식으로 이를 표현할 수 있다.

  adversarial net의 분석은 G와 D에 비수모적 한계가 제공되었을 때 훈련 기준이 데이터 생성 분포를 복구할 수 있음을 주장한다. 

반복적이고 수치적인 접근 방식을 통해 net을 구현해 보았을 때, training의 inner loop에서 D의 최적화는 계산적으로 금지되어 있고 유한 데이터셋에서는 과적합이 발생한다. 따라서 D를 최적화하는 k 단계와 G를 최적화하는 한 단계를 번갈아가며 반복적으로 수행한다. 이러한 방법을 통해 D가 G의 느린 변화에 한해 최적의 솔루션에 근접한 것이 유지된다. 이를 알고리즘(수도코드)로 나타내면 다음과 같다.

 

4. Theoretical Results

4-1. Global Optimality of p[g] = p[data]

  먼저 주어진 생성기(generator) G에 대한 최적의 판별기(discriminator) D를 고려한다.

가정 1. 고정된 G에 대해, 최적의 D는 다음과 같이 표현할 수 있다.

G가 주어졌을 때, D에 대한 훈련 기준은 quantity V (G, D)를 최대화하는 것이다.

D에 대한 training 목표는 조건부 확률 P(Y = y|x)를 추정하기 위한 log likelihood를 최대화하는 것과 동일하게 간주할 수 있다. 여기서 Y는 (y=1)인 p[data]에서 오는 것인지, (y=0)인 p[g]에서 오는 것인지를 나타낸다. minmax 식은 다음과 같이 바꾸어 표현 가능하다.

이때 p[g]=p[data] 인 경우에만 가상의 training 기준 C(G)의 global 최소값이 달성된다. 

 

4-2. Convergence of Algorithm 1

가정 2. G와 D의 용량이 충분하고, 'Algorithm 1'의 각 단계에서 판별기는 주어진 G의 최적에 도달하도록 하고, p[g]는 기준을 개선하기 위해 업데이트되며 이후 p[g]는 p[data]에 수렴한다.

V (G, D) = U(pg, D)를 위의 기준에서 수행된 p[g]의 함수로 고려할 때, 해당 G가 주어진 최적의  D에서 p[g]에 대한 경사하강법 업데이트를 계산하는 것으로 증명이 가능하다. U(pg, D)는 고유한 global optima를 가지는 p[g]에서 볼록하기 때문에 p[g]에서 충분히 작은 업데이트만으로 p[g]가 p[x]에로 수렴하게 되는 것이다.

 

5. Experiments

  우리는 adversarial net를 MNIST, TFD 및 CIFAR-10 등의 데이터셋을 사용하여 훈련시켰다. generator 네트워크는 redcifier 선형 활성화와 sigmoid 활성화의 혼합을 사용하였고 discriminator 네트워크는 최대 활성화를 사용하였다. 이론적 구조는 generator의 중간 층에서 dropout과 다른 noise를 사용하였으며 최하위 층에 대한 입력으로만 noise를 사용하였다. 

  G로 생성된 샘플에 Gaussian Parzen window를 맞추고 이 분포에서 log likelihood를 보고하여 p[g]에서 데트스 데이터셋의 확률을 추정한다. 

이러한 likelihood를 추정하는 방법은 분산이 다소 크고 고차원의 공간에서는 잘 수행되지 않는 한계를 가진다. 

위의 그림을 통해 훈련 후 generator net에서 추출한 샘플을 확인할 수 있다. 

 

6. Advantages and disadvantages

  이전 모델링 framework와 비교하였을 때 이 모델이 가지는 장단점은 다음과 같다.

 

- 장점

  • Markov chain이 필요하지 않음
  • 역전파만 사용하여 gradient를 획득
  • 학습 중 추론이 필요하지 않음
  • 다양한 기능을 모델에 통합하는 것이 가능
  • discriminator를 통해 흐르는 gradient 만으로 업데이트되는 generator net로부터 이점을 가짐 (input의 구성요소가 generator의 매개변수에 직접 복사되지 않음)
  • 매우 sharp하고 변질된 분포를 나타낼 수 있음

- 단점

  • 주로 p(x)의 명시적 표현이 없음
  • training 중에 D가 G와 잘 동기화되어야 함

 

7. Conclusions and future work

이 framework이 허용하는 확장은 다음과 같다.

  1. 조건부 생성 모델 p(x | c)은 G와 D의 입력으로 c를 대입함으로써 얻을 수 있다.
  2. 주어진 x를 예측하지 위해 보조 네트워크를 훈련함으로써 학습된 근사 추론을 수행할 수 있다. 
  3. 파라미터를 공유하는 조건부 모델을 training 함으로써 모든 조건부를 근사적으로 모델링 가능하다.
  4. semi-supervised learning: 판별기 혹은 추론 네트워크의 기능은 제한된 label 데이터를 사용할 수 있을 때 classifier의 성능을 향상시킬 수 있다.
  5. 효율성 향상: G와 D를 조정하는 더 좋은 방법을 나누거나 training 중에 샘플 z에 대한 더 나은 분포를 결정함으로써 training을 가속화시킬 수 있다. 

관련글 더보기

댓글 영역