(2014)Generative Adversarial Networks

Gyuha Park·2021년 8월 12일
2

Paper Review

목록 보기
1/34
post-thumbnail
post-custom-banner

0. Abstract

본 논문에서는 새로운 생성 모델을 제안했다. 적대적인 관계를 가진 네트워크 두 개를 학습한다. 이 때 생성 모델 GG는 원본 데이터의 분포를 학습하고 판별 모델 DD는 한 장의 이미지가 학습 데이터인지 GG로 부터 생성된 이미지인지 구별하도록 학습이 된다.

다시 말해 min-max game을 진행하게 된다. 기존 방식과는 다른 새로운 방식이며 오직 인공 신경망 만을 사용하여 학습한 최초의 방법이다.

1. Introduction

최근에 ReLU를 사용하여 gradient vanishing 문제가 해결 되어 깊은 네트워크도 수월하게 학습할 수 있게 되었다. 하지만 확률론적인 계산에는 어려움이 있다. 그래서 ReLU와 같은 도구들을 효율적으로 사용하는데는 아직 어려움이 있었다.

본 논문은 이러한 어려움을 회피할 수 있는 새로운 네트워크를 제안한다. GGDD와 적대적으로 싸운다고 할 수 있다. 이 때 오직 딥러닝 만을 사용함으로 학습할 수 있다. Markov chain과 같은 별도의 테크닉은 사용하지 않았다.

2. Adversarial nets

GGpz(z)p_z(z)에서 부터 이미지 xx를 생성한다. 이 때 GG는 딥러닝 방식으로 학습이 되기 때문에 미분 가능하다고 할 수 있다. DD또한 딥러닝 모델로 하나의 스칼라 값을 내보내기 때문에 미분 가능하다고 할 수 있다.

minGmaxDV(D,G)=Expdata(x)[logD(x)]+Ezpz(z)[log(1D(G(z)))]\min\limits_{G}\max\limits_{D}V(D,G)=\mathop{\mathbb{E}}_{x\sim p_{data}(x)}[\log D(x)]+\mathop{\mathbb{E}}_{z\sim p_z(z)}[\log (1-D(G(z)))]

위 식이 전체 목적 함수이다. GG는 목적 함수가 최소가 되도록 학습되며 DD는 최대가 되도록 학습된다. 즉, DD는 실제 이미지가 들어왔을 때 1을 출력하고 가짜 이미지가 들어왔을 때는 0을 출력하도록 학습이 된다. GG는 자신이 만든 가짜 이미지가 DD로 들어갔을 때 1로 출력 되도록 학습된다.

위 그림은 교육 목적의 그림이다. 실제 분포는 고차원 공간이다. 초기에는 (a)를 보면 pgp_gpdatap_{data}와 닮아가고 있으며 DD는 부분적으로 정확한 classifier가 되고 있다. (b)는 DD가 실제 데이터를 잘 구별하도록 학습이 되고 있으며 D(x)=pdata(x)pdata(x)+pg(x)D^*(x)=\cfrac{p_{data}(x)}{p_{data}(x)+p_g(x)}에 수렴한다. (c)는 GG가 업데이트 된 후 DD의 gradient가 G(z)G(z)가 실제 데이터로 구별되는 방향으로 학습이 된다. (d)는 많은 step을 거친 후 GGDD가 충분한 capacity를 가질 경우 pg=pdatap_g=p_{data}가 되는 지점으로 도달한다. 그리고 D(x)=12D(x)=\cfrac{1}{2}가 된다.

3. Theoretical Results

GG를 직접적으로 학습하는 것이 아니라 GG에서 생성한 데이터가 특정한 조건을 만족하도록 학습하기 때문에 간접적으로 학습이 되는 것이다. 그래서 학습을 다 마치고 나면 GG의 분포도가 실제 데이터의 분포도와 일치하게 된다.

1) Global Optimality of pg=pdatap_g=p_{data}

GG가 고정되어 있을 때 DD
D(x)=pdata(x)pdata(x)+pg(x)D^*(x)=\cfrac{p_{data}(x)}{p_{data}(x)+p_g(x)} 이러한 분포로 optimal을 가진다.

V(G,D)=xpdata(x)log(D(x))dx+zpz(z)log(1D(g(z)))dz=xpdata(x)log(D(x))+pg(x)log(1D(x))dxV(G,D)=\int_xp_{data}(x)\log(D(x))dx+\int_zp_z(z)\log(1-D(g(z)))dz=\int_xp_{data}(x)\log(D(x))+p_g(x)\log(1-D(x))dx

그리고 위 식과 같이 pz(z)p_z(z)pg(x)p_g(x)g(z)g(z)xx로 mapping 될 수 있다. 이 때 optimal을 위해 pz(z)ap_z(z)\rightarrow a, pg(x)bp_g(x)\rightarrow b로 놓았을 때 y=alog(y)+blog(1y)y=a\log(y)+b\log(1-y)와 같은 형식이 됨으로 aa+b\cfrac{a}{a+b}에서 optimal할 수 있다.

이어서 DD^*일 때 GG에 대한 optimal을 살펴보면

C(G)=maxDV(G,D)=Expdata[logDG(x)]+Ezpzlog(1DG(G(z)))]=Expdata[logDG(x)]+Ezpzlog(1DG(x))]=Expdata[logpdata(x)pdata(x)+pg(x)]+Expdata[logpg(x)pdata(x)+pg(x)]C(G)=\max\limits_{D}V(G,D)=\mathop{\mathbb{E}}_{x\sim p_{data}}[\log D^*_G(x)]+\mathop{\mathbb{E}}_{z\sim p_{z}}\log(1-D^*_G(G(z)))]=\mathop{\mathbb{E}}_{x\sim p_{data}}[\log D^*_G(x)]+\mathop{\mathbb{E}}_{z\sim p_{z}}\log(1-D^*_G(x))]=\mathop{\mathbb{E}}_{x\sim p_{data}}[\log\cfrac{p_{data}(x)}{p_{data}(x)+p_g(x)}]+\mathop{\mathbb{E}}_{x\sim p_{data}}[\log\cfrac{p_{g}(x)}{p_{data}(x)+p_g(x)}]

함수 VV를 최대화 할 수 있는 DD가 있을 때 함수 VVCC로 표현할 수 있다. 그리고 C(G)C(G)log4-\log 4가 될 때 pg=pdatap_g=p_{data}가 성립한다.

왜냐하면 C(G)=log(4)+KL(pdatapdata+pg2)+KL(pgpdata+pg2)C(G)=-\log (4)+KL(p_{data}||\cfrac{p_{data}+p_g}{2})+KL(p_g||\cfrac{p_{data}+p_g}{2})로 식을 변형하면 C(G)=log(4)+2JSD(pdatapg)C(G)=-\log (4)+2\cdot JSD(p_{data}||p_g)로 다시 변형할 수 있는데 Jensen-Shannon divergence는 두 distribution의 거리 값임으로 결국 log(4)-\log (4)로 식이 수렴할 수 있음을 증명할 수 있다.

2) Convergence of Algorithm

pgp_gpdatap_{data}로 잘 수렴할 수 있는지 알아보겠다.
V(G,D)=U(pg,D)V(G,D)=U(p_g,D)에서 U(pg,D)U(p_g,D)pgp_g에 대해 convex 함수이기 때문에 학습을 통해 빠르게 수렴할 수 있다.

4. Experiments

다양한 데이터 세트에 평가를 진행했다.

비교했을 때 충분히 경쟁력 있는 결과를 보여줬다.

가장 오른쪽 열의 노란색 박스는 실제 이미지이고 그 외는 GAN에서 생성한 이미지이다. 단순히 학습 데이터를 암기하는 것이 아니라 실제 이미지와 비슷한 이미지를 생성함을 보여준다.

post-custom-banner

1개의 댓글

comment-user-thumbnail
2021년 8월 12일

유익하네요~

답글 달기