Towards Likelihood-free learning
Maximum Likelihood 방식의 학습은 빠른 학습 속도를 갖는다. 하지만 높은 likelihood가 항상 좋은 quality의 sample 생성을 보장하지는 않는다. 반대로 좋은 sample이 낮은 likelihood를 갖는 경우도 있다. (overfitting의 경우)
Comparing Distributions via Samples
S1={x∼P}, S2={x∼Q}이 각각 다른 distribution에서 얻어진 samples라고 할 때, samples로 부터 두 distribution을 비교하는 방법으로 Two-sample test 을 사용할 수 있다.
Two-sample test는 다음 두 개의 hypotheses를 고려한다.
- Null hypothesis: H0:P=Q
- Alternative hypothesis: H1:P=Q
test는 두 samples 집단을 비교하여 statistic T를 구하고, T가 임계값 이상이면 크면 H0 기각, 아닌 경우 H0을 지지한다. 즉, test objective T를 통해 두 distribution을 비교할 수 있다. 다음은 두 samples의 mean과 variance를 차이를 확인하는 test objective 예시다.
- T(S1,S2)=∣∣S1∣1∑x∈S1x−∣S2∣1∑x∈S2x∣
위 test에서 주목할 점은 likelihood-free 라는 점이다. T statistic을 증가시키는 방향으로 모델을 학습하면, likelihood 없이 generative model을 학습 할 수 있다.
그러나 high dimension인 variables(예를들면 image)에서 two-sample test는 좋은 objective를 찾기 어렵다. 예를 들어 앞서 본 mean, variance만을 비교하는 objective는 high dimension에서 좋은 objective로 보기 어렵다. 왜냐하면 mean과 variance가 같더라도 충분히 다른 distribution일 수 있기 때문이다.
이에 대한 대안으로 S1,S2가 서로 다른지 구별하는 classifier를 학습하는 방식이 제안된다. (discriminator)
Two-Sample Test vis Discriminator
Discriminator를 이용한 two-sample test는 test statistic을 discriminator의 -loss로 설정할 수 있다. 낮은 discriminator의 loss는 두 samples 집단의 차이를 알기 쉽다는 것을 의미하고, 높은 discriminator의 loss는 두 samples 집단의 차이를 구별하기 어렵다는 것을 의미하기 때문이다. generative model의 관점에서 보면 two-sample test의 statistic을 높여 alternative hypothesis를 채택하도록 하고 싶다. 따라서 discriminator의 loss를 줄여야한다. 이를 다음과 같이 쓸 수 있다.
- DϕmaxV(pθ,Dϕ)=Ex∼pdata[logDϕ(x)]+Ex∼pθ[log(1−Dϕ(x)]≈x∈S1∑logDϕ(x)+x∈S2∑log[(1−Dϕ(x)]
위 식의 pθ는 generative model(S2)이라고 볼 수 있고, pdata는 실제 데이터 분포(S1)라고 볼 수 있다. 또한 discrimantor의 최적 값은 다음과 같다.
- Dθ∗(x)=pdata(x)+pθ(x)pdata(x)
즉, 최상의 시나리오인 pdata=pθ에서 discriminator는 1/2 확률로 두 sample을 구별할 수 있게 된다.(cannot do better than chance)
Generative Adversarial Networks
앞서 본 pθ를 generative model로 볼 수 있고 이를 generator(G)라고 부른다. generator는 z를 input으로 받아 데이터를 생성한다.
GAN은 generator와 discriminator의 minmax game 형태이다.
- GminDmaxV(G,D)=Ex∼pdata[logD(x)]−Ex∼pG[log(1−D(x))]
Generator는 discriminator가 최대한 두 samples 집단을 구별 못하도록 하고 싶어하고, discrimiantor는 generator가 생성한 samples를 잘 구별하고 싶어한다.
The GAN Training Algorithm
GAN의 training은 다음과 같이 이루어 진다.
- sample minibatch of m traning points x(1),x(2),⋯,x(m) from D
- sample minibatch of m noise vectors z(1),z(2),⋯,z(m) from pz (일반적으로 gaussian)
- update discriminator parameters ϕ by gradient ascent
∇ϕV(Gθ,Vϕ)=m1∇ϕi=1∑m[logDϕ(xi))+log(1−Dϕ(Gθ(z(i))))]
- update generator parameter θ by gradient descent
∇θV(Gθ,Vϕ)=m1∇θi=1∑mlog(1−Dϕ(Gθ(z(i))))
- repeat for fixed number of epchos
정리하면 다음과 같은 function을 얻을 수 있다.
- θminϕmaxV(Gθ,Dϕ)=Ex∼pdata[logDϕ(x)]−Ez∼p(z)[log(1−Dϕ(Gθ(z)))]
Optimization Challenges
GAN은 이론상 generator가 optimal로 수렴하는 것이 보장되어 있다. 하지만 현실에서는 쉽게 optimal에 도달하지 못한다. 일반적으로 generator와 discriminator의 loss가 진동하는 것을 쉽게 볼 수 있다.
다음은 GAN의 주요 optimization challanges 이다.
- Unstable optimization
- Mode Collapse: 모델이 특정 sample만을 생성하려고 하는 것.
- Evaluation: 어느 지점에서 학습을 멈춰야 하는지 알기 어려움.
Reference
cs236 Lecture 9