0. Abstract
본 논문에서는 새로운 생성 모델을 제안했다. 적대적인 관계를 가진 네트워크 두 개를 학습한다. 이 때 생성 모델 G는 원본 데이터의 분포를 학습하고 판별 모델 D는 한 장의 이미지가 학습 데이터인지 G로 부터 생성된 이미지인지 구별하도록 학습이 된다.
다시 말해 min-max game을 진행하게 된다. 기존 방식과는 다른 새로운 방식이며 오직 인공 신경망 만을 사용하여 학습한 최초의 방법이다.
1. Introduction
최근에 ReLU를 사용하여 gradient vanishing 문제가 해결 되어 깊은 네트워크도 수월하게 학습할 수 있게 되었다. 하지만 확률론적인 계산에는 어려움이 있다. 그래서 ReLU와 같은 도구들을 효율적으로 사용하는데는 아직 어려움이 있었다.
본 논문은 이러한 어려움을 회피할 수 있는 새로운 네트워크를 제안한다. G는 D와 적대적으로 싸운다고 할 수 있다. 이 때 오직 딥러닝 만을 사용함으로 학습할 수 있다. Markov chain과 같은 별도의 테크닉은 사용하지 않았다.
2. Adversarial nets
G는 pz(z)에서 부터 이미지 x를 생성한다. 이 때 G는 딥러닝 방식으로 학습이 되기 때문에 미분 가능하다고 할 수 있다. D또한 딥러닝 모델로 하나의 스칼라 값을 내보내기 때문에 미분 가능하다고 할 수 있다.
GminDmaxV(D,G)=Ex∼pdata(x)[logD(x)]+Ez∼pz(z)[log(1−D(G(z)))]
위 식이 전체 목적 함수이다. G는 목적 함수가 최소가 되도록 학습되며 D는 최대가 되도록 학습된다. 즉, D는 실제 이미지가 들어왔을 때 1을 출력하고 가짜 이미지가 들어왔을 때는 0을 출력하도록 학습이 된다. G는 자신이 만든 가짜 이미지가 D로 들어갔을 때 1로 출력 되도록 학습된다.
위 그림은 교육 목적의 그림이다. 실제 분포는 고차원 공간이다. 초기에는 (a)를 보면 pg가 pdata와 닮아가고 있으며 D는 부분적으로 정확한 classifier가 되고 있다. (b)는 D가 실제 데이터를 잘 구별하도록 학습이 되고 있으며 D∗(x)=pdata(x)+pg(x)pdata(x)에 수렴한다. (c)는 G가 업데이트 된 후 D의 gradient가 G(z)가 실제 데이터로 구별되는 방향으로 학습이 된다. (d)는 많은 step을 거친 후 G와 D가 충분한 capacity를 가질 경우 pg=pdata가 되는 지점으로 도달한다. 그리고 D(x)=21가 된다.
3. Theoretical Results
G를 직접적으로 학습하는 것이 아니라 G에서 생성한 데이터가 특정한 조건을 만족하도록 학습하기 때문에 간접적으로 학습이 되는 것이다. 그래서 학습을 다 마치고 나면 G의 분포도가 실제 데이터의 분포도와 일치하게 된다.
1) Global Optimality of pg=pdata
G가 고정되어 있을 때 D는
D∗(x)=pdata(x)+pg(x)pdata(x) 이러한 분포로 optimal을 가진다.
V(G,D)=∫xpdata(x)log(D(x))dx+∫zpz(z)log(1−D(g(z)))dz=∫xpdata(x)log(D(x))+pg(x)log(1−D(x))dx
그리고 위 식과 같이 pz(z)는 pg(x)로 g(z)는 x로 mapping 될 수 있다. 이 때 optimal을 위해 pz(z)→a, pg(x)→b로 놓았을 때 y=alog(y)+blog(1−y)와 같은 형식이 됨으로 a+ba에서 optimal할 수 있다.
이어서 D∗일 때 G에 대한 optimal을 살펴보면
C(G)=DmaxV(G,D)=Ex∼pdata[logDG∗(x)]+Ez∼pzlog(1−DG∗(G(z)))]=Ex∼pdata[logDG∗(x)]+Ez∼pzlog(1−DG∗(x))]=Ex∼pdata[logpdata(x)+pg(x)pdata(x)]+Ex∼pdata[logpdata(x)+pg(x)pg(x)]
함수 V를 최대화 할 수 있는 D가 있을 때 함수 V를 C로 표현할 수 있다. 그리고 C(G)가 −log4가 될 때 pg=pdata가 성립한다.
왜냐하면 C(G)=−log(4)+KL(pdata∣∣2pdata+pg)+KL(pg∣∣2pdata+pg)로 식을 변형하면 C(G)=−log(4)+2⋅JSD(pdata∣∣pg)로 다시 변형할 수 있는데 Jensen-Shannon divergence는 두 distribution의 거리 값임으로 결국 −log(4)로 식이 수렴할 수 있음을 증명할 수 있다.
2) Convergence of Algorithm
pg가 pdata로 잘 수렴할 수 있는지 알아보겠다.
V(G,D)=U(pg,D)에서 U(pg,D)는 pg에 대해 convex 함수이기 때문에 학습을 통해 빠르게 수렴할 수 있다.
4. Experiments
다양한 데이터 세트에 평가를 진행했다.
비교했을 때 충분히 경쟁력 있는 결과를 보여줬다.
가장 오른쪽 열의 노란색 박스는 실제 이미지이고 그 외는 GAN에서 생성한 이미지이다. 단순히 학습 데이터를 암기하는 것이 아니라 실제 이미지와 비슷한 이미지를 생성함을 보여준다.
유익하네요~