Generative Models의 목표는 학습 데이터의 샘플들을 어떤 가상의 확률 분포 로부터 얻은 것으로 가정하고, 이 분포와 유사한 분포 를 나타내는 모델을 학습하는 것에 있다.
이때 학습 방향은 주어진 학습 데이터셋에 대해서 확률 값이 커지도록 학습하는 Maximazing likelihood의 방향으로 학습을 하게 된다.
기존 VAE는 관측할 수 없는 Latent variable z에 의해 x가 결정된다는 가정을 사용했다.
이때 베이즈 정리에 의해 Likelihhood는 세가지 확률분포의 결합으로 표현했는데, Likelihood 계산 대신 Lower bound 계산을 통해 Maximazing likelihood를 해결했다.
GAN은 기존의 Explicit density models와 달리, Implicit density model에 해당한다.
VAE는 수식으로 정의할 수는 있지만 계산이 불가능하기 때문에 Density를 근사했다는 특징이 있다.
따라서 GAN은 계산 불가능한 모든 수식과 관련된 Issue를 회피할 수 있다는 장점을 가진다.
GAN은 데이터 분포를 capture하는 G(generator)와, 실제 데이터와 G에서 생성한 데이터를 구별하는 D(discriminator) 2가지를 동시에 훈련시킨다.
G는 D가 두 종류의 데이터를 구분하지 못하도록 실수를 할 확률을 최대화 하는 것이고, D는 두 데이터를 잘 구분하도록 훈련된다.
임의의 함수 G, D의 공간에서, G가 Training data distribution을 묘사하게 되면서 D가 real data인지, generated data인지 판별할 확률은 가 된다.
G와 D가 Multilayer perceptrions로 정의되었을 때 전체 시스템이 역전파를 사용하여 훈련될 수 있다.
따라서 Markov chains나 unrolled 근사 추론은 필요하지 않다.
기존 Deep generative models는 MLE나 이와 관련된 strategies에 대한 연산을 할 때, 계산이 어렵거나 불가능하기 때문에 많은 경우에 근사를 시키는 방법으로 진행하게 된다.
GAN은 implicit density model로써, 이와 관련된 연산을 회피할 수 있다.
Adversarial nets framework 하에서, G와 D는 경쟁적인 관계에 있다.
G는 위조 지폐를 생산하고, 감지되지 않고 사용하려는 위조꾼 팀에 유사하게 생각할 수 있고,
D는 위조지폐를 감지하려는 경찰과 유사하다.
이 경쟁은 위조품이 정품과 구별하기 어려울 때 까지 양 측이 자신들의 방법을 개선하도록 만든다.
본 논문에서는 random noise를 multilayer perceptron을 통과시켜 샘플을 generate하고, 이를 구별하는 discriminator 또한 multilayer perceptron으로 구성된 경우를 탐구한다.
이 경우, generator와 discriminator를 역전파 및 드롭아웃 만을 사용하여 훈련할 수 있고, 생성모델에서는 순전파 만을 사용해 샘플을 생성할 수 있다.
근사 추론이나 Markov chain 등은 필요하지 않다.
directed graphical models with latent variables의 대안으로, Boltzmann machines (RBMs)나 deep Boltzmann machines (DBMs) 같은 undirected graphical models with latent variables가 존재한다.
하지만 연산이 어려운 계산들이 존재하고, MCMC 방법을 사용해 추정할 수는 있지만 한계가 존재한다.
Deep belief networks는 single undirected layer와 몇개의 directed layers가 포함된 하이브리드 모델이며, 빠른 layer-wise 근사 추론 방법이 존재하지만, 역시 computational difficultites가 존재한다.
log-likelihood를 근사하거나 제한하지 않는 score matching이나 noise-contrastive estimation 등의 방법도 존재한다. 하지만 레이어가 깊은 네트워크에서는 역시 연산에 어려움이 존재한다.
확률 분포를 명시적으로 정의하되, generative machine을 훈련함으로써 원하는 분포에서 샘플을 생성하는 방법도 있다. 모델을 역전파로 훈련할 수 있도록 설계할 수 있다는 이점이 존재하며 주목할 만한 최근 연구는 generative stochastic network, VAE 등 이다. 본 논문에서 제안하는 GAN은 GSN에서 필요한 Markov chain이 필요하지 않으며 feedback loops 또한 사용하지 않기 때문에 piecewise linear units를 잘 이용할 수 있다. 이는 역전파에서의 성능 향상을 야기할 수 있다.
GAN은 모델이 둘다 multilayer perceptron일 때 가장 직관적으로 적용이 가능하다.
generator의 data 에 대한 distribution인 를 알기 위해선, input noise variable인 에 대한 Prior를 정의해야 한다.
이후 data space에 mapping을 로 표현한다.
이떄 G는 를 파라미터로 가지는 multilayer perceptron으로 이루어진 미분 가능한 함수이다.
두번째 multilayer perceptron 구조의 모델 를 정의한다. 이때 output은 1차원 scalar이다.
는 가 real data인지 generated data인지에 대한 확률을 표현한다.
모델은 가 에 대한 correct label을 잘 찾도록,
동시에 가 를 minimize 하도록 훈련된다.
즉, 는 함수로 이루어진 2-player minimax game을 하는 것과 같다고 표현할 수 있다.
GAN은 와 가 충분한 capacity를 가질 때, 비모수적인 한계(non parametric limit)가 있더라도 데이터 생성 분포를 복원할 수 있다고 한다.
훈련 내부 과정에서 D를 완전히 최적화 시키는 것은 계산 상 힘들며, 데이터셋이 유한할 때에는 과적합을 초래할 수 있다.
따라서 저자들은 D를 최적화하는 step과 G를 최적화하는 1 step을 수행한다.
이로써 G가 충분히 느리게 학습될 때 D가 최적의 optim 근처로 수렴할 수 있다.
위 1번 식을 보자.
학습 초기단계에서, G는 성능이 좋지 않기 때문에, D는 real data와 G가 생성한 data를 high confidence를 가지고 구분할 것이다.
이 경우, 는 포화하게 된다.
D(G(z))가 초기 단계에선 대부분 0을 나타내기 때문에, log 값은 대부분 0으로 수렴할 것이다.
따라서, 를 minimize하도록 G를 학습하는 것이 아니라, 를 maximize하도록 훈련시킨다.
D가 데이터를 잘 구분하지 못하도록 학습하는 것은 동일하지만, 초기 단계에서 0으로 수렴하지 않기 때문에 역전파 시 기울기가 잘 전달 되는 효과를 가진다.
- D (discriminative distribution)는 파란색 점선을,
data generating distribution (real data)는 검정색 점선,
G (generative distribution) 는 초록색 실선이다.- 맨 밑 에 대한 수평선은, noise z distribution에서 uniform하게 sampling이 되는 도메인이라고 보면 된다.
그 위의 화살표는 에 대한 mapping을 나타낸다.
이때 는 transposed samples에 대한 non-uniform 분포가 된다 (초록색 실선).
학습 알고리즘은 다음과 같다.
개의 Noise Samples {}를 noise prior 로 부터 뽑아서 minibatch를 구성한다.
학습 데이터셋에서 개의 데이터 {}를 뽑아서 또 다른 minibatch를 구성한다.
다음의 Loss Function을 이용해서 Discriminator의 parameter 를 업데이트
개의 Noise Samples {}를 noise prior 로 부터 뽑아서 minibatch를 구성한다.
다음의 Loss Function을 이용해서 Discriminator의 parameter 를 업데이트
의 전역 optimum을 찾기 위해선, 우선 어떤 G에 대한 D의 optimum을 고려해야 한다.
proposition 1 :
가 고정되어 있을 때, optimal discriminator 는 아래와 같다.
Proof :
가 고정되어 있을 때, D에 대한 학습 척도는 를 최대화 하는 것.
위 식에서 모든 z에 대해 적분을 해서 x에 대해서 나타낼 수 있는 건가? 잘 모르겠음..
이때 {}이 아닌 실수 {}에 대해서, 는 에서 maximum 값을 가진다.
는 주어진 x에 대해서 정답을 선택하는 에 대한 log likelihood를 최대화하는 것이 목적이다.
이때 (1) 식을 아래와 같이 표현할 수 있다.
Theorem 1 :
에 대한 전역 최솟값은 인 경우에 발생하며, 이때 값은 이다.
Proof :
일 때, 이다. 이때 이다.
이를 이용해 아래와 같은 식을 만들 수 있다.
Jenson-Shannon divergence (참고) :
=
따라서 C(G)는 일 때 전역 최솟값인 이다.
Proposition 2.
가 충분한 capacity를 가지고, 의 각 단계마다, 주어진 G에 대해 D가 전역 최솟값에 도달하는 것이 가능하고, 가 업데이트되어 criterion을 개선한다면 :
는 로 수렴한다.
Proof :
로, 에 대한 함수 형태로 나타낼 수 있다.
는 에서 convex하다.