본문 바로가기
AI

[논문리뷰]Generative Adversarial Nets

by Reodreamer 2022. 9. 13.
반응형

Abstract

  • 이 논문에서는 적대적 과정을 통해 생성 모델을 예측하는 새로운 프레임워크를 소개한다.
  • 이 적대적 과정은 데이터의 분포를 저장하는 생성 모델 $G$와 $G$의 데이터가 아닌 학습 데이터 샘플의 확률을 추정하는 판별 모델 $D$로 구성되어 있다.
  • $G$의 학습 과정은 $D$가 잘못 판별하는 확률을 최대화하는 방향으로 진행한다.
  • 저자는 이 프레임워크가 minimax two-player game 게임이라고 설명한다. 자세한 내용은 본문에서 다시 나온다.
  • 임의의 $G$와 $D$의 공간에서, unique solution이 존재한다. $G$가 학습 데이터를 모방하고 $D$의 판별 확률은 50%가 된다. $G$와 $D$가 MLP로 정의하면, 전체 시스템이 backpropagation(역전파)로 학습할 수 있다.

 

=>  이 논문은 GAN이라는 새로운 프레임워크를 소개한다. 쉽게 설명하면 GAN 안의 $G$는 학습 데이터와 유사한 데이터를 생성하여 $D$를 속이려고 하고, $D$는 G가 만든 가짜 데이터와 진짜 데이터를 잘 판단하려고 하는데, 이러한 경쟁관계를 adversarial process라고 표현한다.

 

1. Introduction

딥러닝은 인공지능을 활용하는 데 있어서 여러 종류의 데이터의 확률 분포를 나타내는 풍부하고 계청 모델을 발견하는 데 도움이 된다. 지금까지 딥러닝의 가장 놀라운 성공은 고차원의 풍부한 sensory data를 분류하는 판별 모델들과 관련이 있었다. 이런 성공적인 모델들은 backpropagation과 dropout에 기반했는데 이는 기울기를 잘 다루는 piecewise linear unit을 사용한다. Deep generative model들은 MLE와 이와 관련된 방법들의 확률적 연산을 추정하는 것이 어렵기 때문에 사용하는데 어려움이 있었다. 이와 더불어 generative context 내 piecewise linear unit을 활용하는 어려움 또한 있다.

그래서 이 연구의 저자는 이러한 어려움을 해소하는 새로운 genearative model estimation 방법을 소개한다.
제안된 $adversarial nets$ framework에서는 생성 모델은 adversary와 경쟁한다(판변모델이 주어진 sample 이 model distribution에서 온 건지, data distribution에서 온 건지 판별한다). Generative model은 화쳬 위조범에 비유할 수 있고 Discriminative model은 경찰에 비유할 수 있다. 둘 사이의 경쟁관계는 위조범들이 위조를 완벽하게 할 수 있을 때까지 각자의 방법을 개선해나가게끔 한다.

 

이런 프레임워크는 많은 종류의 모델과 최적화 알고리즘을 학습하는 특정한 training algorithms을 제공한다. 이 논문에서 generative model이 MLP에 random noise를 흘려보내며 sample을 생성하고 discriminative model 또한 MLP인 경우를 살펴본다. 이런 경우를 $adversarial nets$라고 부른다. 이때 두 모델을 성능이 좋은 backpropagation과 dropout 알고리즘만을 이용하여 학습하고 forward propagation만을 이용하여 generative model에서 sampling 한다.

 

 2. Related work

directed graphical models with latent variables의 대안은 RBMs(restricted Boltzmann machine)와 같은 undirected graphical models with latent variables이다. 그러한 모델에서 상호작용은 unnormalized potential functions의 결과물로 나타난다. 이 partition function과 기울기는 MCMC로 추정할 수는 있어도, 대부분의 trivial instance만 확인할 수 있다.

 

DBNs(Deep Belief networks)는 single undirected layer와 several directed layers로 구성된다. fast approximate layer-wise training criterion이 존재하지만, DBNs는 undirected와 directed model 둘과 관련된 연산적 어려움을 야기한다. 

 

log-likelihood를 예측하거나 제한하는 score matching과 NCE와 같은 다른 criteria가 제안됐다. 이 둘은 모두 학습된 probability density를 normalization constant에 특정되게끔 필요로 한다. 많은 생성 모델에서 tractable unnormalized probability density를 얻는 것은 불가능하다. denoising auto-encoder와 contractive autoencoder는 RBMs에 적용된 score matching과 굉장히 비슷한 학습 규칙을 따른다. 이 연구에서 NCE는 discriminative training criterion는 generative model에 적합하는 데 사용된다. 하지만, 개별적인 discriminative model을 적합하는 것 대신, generative model 자체가 fixed noise distribution의 sample과 생성된 데이터를 판별하는 데 사용된다. 왜냐하면 NCE는 fixed noise distribution을 이용하는데 이는, observed variable의 작은 subset에서 correct 한 distribution을 학습한 후에는 학습이 극적으로 느려진다.

 

몇몇 기법은 확률분포를 명시적으로 정의하지는 않는다. 대신 generative machine이 이상적인 분포에서 sampling을 하게끔 학습한다. 이 접근법은 back-propagation으로 학습하게끔 모델을 고안할 수 있는 이점이 있다. 이 분야에서 최근 주요한 연구는 GSN(generative stochastic network)가 있는데, 이는 generalized denoising auto-encoder로 확장한다. GSN과 비교해서 adversarial nets는 sampling을 위해 Markov chain이 필요하지 않다. adversarial nets는 generation 동안 feedback loop를 사용하지 않기 때문에 piecewise linear unit을 더 잘 활용할 수 있게 한다. 이는 back-propagation의 성능을 향상시키지만, feedback loop를 사용하는 동안 unbounded activation과 관련한 문제가 존재한다.

 

3. Adversarial Nets

adversarial modeling은 model들이 모든 MLP 일 때 활용하기에 직관적이다. $x$에 대한 generator의 분포 $p_g$를 학습하기 위해 prior on input noise variables $P_z(Z)$를 정의한다. 이후 data space에 mapping 한 것을 $G(z; \theta_g)$로 나타내고 $G$는 파라미터로 $\theta_g$를 가진 MLP로 표현된 미분 가능한 함수이다. 그리고 output으로 스칼라 값을 반환하는 두 번째 MLP인 $D(x;\theta_d)$를 정의한다. $D(x)$는 $P_g$가 아닌 데이터에서 온 $x$의 확률을 나타낸다. $D$ trainging example 과 $G$의 sample 둘 모두에 맞는 옳은 라벨을 부여하는 확률을 최대화하도록 학습시킨다. 이와 동시에 $G$는 $log(1-D(G(z)))를 최소화하도록 학습한다.

다른 말로 설명하면, $D$와 $G$는 아래의 식을 가지는 value function $V(G, D)$를 가지는 two-player minimax game을 한다.

학습의 inner loop에서 $D$를 최적화하는 것은 연산 냥이 많고 유한한 데이터 셋에선 오버 피팅을 야기할 수 있다. 대신에 D를 최적화하는 k-step마다 G를 최적화하는 1스텝을 번갈아 학습한다. 이렇게 함으로서 $D$는 최적의 solution 근처에 머물게 하고 G도 충분히 천천히 변화하게 한다.

 

실제로는 위의 식은 G가 잘 학습하는데 충분한 기울기를 얻지 못할 수 있다. 학습 초기에 G의 성능이 좋지 않을 때엔 G의  sample이 training data와 명확하기 다르기 때문에 D는 높은 확신을 가지고 해당 sample을 기각하게 된다. 즉 D가 판별을 잘하는 상태인 것이다. 이런 경우, $log(1-D(G(z)))$가 포화된다. $G$가 $log(1-D(G(z)))$가 최소화되게 학습하는 것이 아니라 $G$가 $logD(G(z))$를 최대화하도록 학습할 수 있다. 이 목적함수는 $G$와 $D$가 변화하는 데서 똑같은 고정된 지점을 반환하고 초기 학습 단계에서 훨씬 강한 기울기를 제공한다.

 

- 파란 점선 : $D$의 분포

- 검은 점선 : 실제 데이터 생성 분포 $P_x$ 

- 녹색 실선  : $G$의 분포 $P_g$

- 하단 수평선 : $z$가 sampling 되는 도메인의 uniform distribution

- 상단 수평선 : $x$의 도메인 

 

(a) : 학습 초기 분포 모습
(b) : $D$가 판별을 잘 하고 있는 것을 확인할 수 있다.
(c) : $G$를 업데이트한 후, D 기울기가 $G(z)$가 data로 분류되는 가능성이 높은 영역으로 가도록 가게 한다.
(d) : 여러 단계 동안 학습하고 난 후, $P_g$ = $P_data$가 되면서 $G$와 $D$ 둘 모두 더 이상 개선되지 않은 지점에 도달한다. 이 지점에서 $D(x) = \rac{1}{2}$가 되고 $D$는 두 분포를 구별하지 못하게 된다.

 

4. Theoretical  Results

$G$는 $z$가 $P_g$를 따를 때 samples $G(z)$의 분포를 얻어 묵시적으로 확률분포$P_g$를 정의한다. 그러므로 아래의 알고리즘 1이 충분한 capacity와 training time이 주어질 때, $p_data$를 잘 예측하게 수렴하도록 한다. 이 과정은 non-parametric setting에서 진행되었다.

5. Experiments

MNIST dataset과 CIFAR-10을 이용하여 실험을 진행했다. $G$는 활성함수로 ReLU와 sigmoid 함수 함께 이용했고 $D$는 활성함수로 maxout을 이용했다. Dropout은 $D$의 학습에 사용되었다. 다른 프레임워크와 달리, $G$의 가장 아래의 layer에만 noise를 input으로 이용했다.

 

$G$에 의해 생성된 sample에 Gaussian Parzen window를 적합하여 얻은 분포의 log-likelihood를 확인하여 $p_g$의 testset의 확률을 추정했다. 이 방법은 높은 변동성을 가지고, 고차원의 공간에서는 잘 작동하지는 않지만, 아직까지는 가장 좋은 방법이다.

 

아래에 보이는 $G$가 생성한 sample들이 기존 방법의 sample보다 더 낫다고 할 수는 없지만, 적어도 더 나은 생성 모델과 경쟁할 수 있다고 보이며 adversarial framework의 잠재력을 강조한다.

6.  Advantages  and  disadvantages

단점

  • $p_g$를 명시적으로 보일 수 없다
  • $D$와 $G$는 학습 동안 동기화가 잘 되어야 한다. 

장점 

  • Markov chain이 필요 없이 back-propagation 만으로 기울기를 얻을 수 있다.
  • 학습 동안 inference가 필요 없다
  • 다양함 함수들을 모델에 사용할 수 있다.
  • generator network를 data로부터 직접적으로 업데이트되지 않고 discriminator에 흐르는 기울기만으로 업데이트할 수 있어 통계적인 이점이 있다.

 

7. Conclusions and future work

  1. $G$와 $D$에 c를 더함 을러서 조건부 생성 모델 $p(x|c)$을 얻을 수 있다.
  2. auxiliary network를 학습해서 learned approximate inference를 사용하여 $x$가 주어졌을 때, $z$를 예측할 수 있다.
  3. 파라미터를 공유하는 조건부 모델계 학습을 통해 $x$의 인덱스 subset이 $S$인 모든 조건부$p(x_s | x_(not) s$에 대한 모델링이 가능하다.
  4. Semi-supervised Leaning(준지도 학습) :레이블이 일부만 있는 데이터를 사용할 때, $D$의 feature들로 classifier의 성능을 향상시킬 수 있다.
  5. 효율성 향상 : $G$와 $D$를 조합하는 더 나은 방법을 고안하거나, 학습 동안 sample $z$를 sampling 하는 더 나은 분포를 결정하여 학습이 더 빨라질 수 있다.

 

  

.

 

  

 

 

 

반응형

'AI' 카테고리의 다른 글

[PyTorch]Tensor-part1  (0) 2022.09.14
[Pytorch]패키지 기본구성  (0) 2022.09.13
[논문리뷰]Playing Atari with Deep Reinforcement Learning  (0) 2022.09.05
[논문리뷰]Word2Vec  (0) 2022.09.05
[ML]회귀(Regression)  (0) 2022.05.20

댓글