본문 바로가기

컴퓨터비전/논문리뷰

Generative Adversarial Nets(GAN) 논문 리뷰 (2/2)







Ganerative Adversarial Nets

(Ian J. Goodfellow et al.)

 

 

Generative Adversarial Nets(GAN) 논문 리뷰 (1/2)에서 GAN이 적대적신경망이라 불리는 이유와 이미지를 만들어내는 제너레이터가 어떤 개념에 의해 트레이닝 되는지에 대해 살펴보았습니다. 이번 파트에서는 Theoretical Results에 대해 살펴보겠습니다.

 

 

4. 이론적 적용(Theoretical Results)

   알고리즘에 대한 설명을 보면 기본적으로 1편에서 설명했던 개념과 동일하다. z의 경우 G에 입력되는 노이즈들이며, x는 샘플이미지들이다. D는 이를 정확하게 구분하기 위해 첫번째 식을 최대화 시키며, G는 반대로 두번째 식의 부분을 최소화 시키는 과정을 통해 상호 발전한다.

Goodfellow, I. J., Pouget-Abadie, J., Mirza, M., Xu, B., Warde-Farley, D., Ozair, S., Courville, A., and Bengio, Y. (2014). Generative adversarial nets. In NIPS’2014.

 

 

4.1 Global Optimality of pg = pdata

 

Proposition1

D*는 D가 최적의 상태임을 의미한다.

  변하지 않는 G를 사용한다고 할 때, 판별기인 D는 최적의 결론을 갖고 있다. 즉 G가 생산한 이미지는 모두 거짓으로 판별하고 이미지 샘플에서 나온 데이터는 모두 진실로 판별할 수 있는 것이다. 이때, G에 입력되는 데이터가 z(노이즈)이든 x(이미지)이든 판별기는 G를 거친 것인지 아닌지의 여부를 알아야한다. 이 논리를 간단하게 식으로 나타내면 (2)와 같다. 

 

proof)

  최적의 D를 만들어내기 위해 아래의 식에서 V(G, D)를 maximize해야한다.

 

pdata(x) : 샘플 데이터의 확률분포

D(x) : x가 판별기를 거쳐나온 결과

pz(z) : 노이즈 데이터의 확률분포

g(z) : 노이즈 데이터가 생산기를 거쳐 만들어진 가짜이미지

 

  Algorithm1에서 설명되었던 개념으로, 판별기가 진짜 이미지와 만들어진 이미지를 정확하게 구분한다면 D(x)부분은 1이 되고 D(g(z))부분은 0이 될 것이다.

  여기서 제너레이터에 노이즈인 z가 아니라 샘플이미지인 x가 입력으로 들어간다면 어떻게 되야할까? 노이즈도 무작위의 데이터였기 때문에 동일하게 이미지를 생성해야한다. 이렇게 x가 입력으로 들어가서 제너레이터 함수에 의해 맵핑되는 영역의 확률분포를 pg(x)로 표현할 수 있다.

  한편 이상적인 제너레이터에 의해 생성된 이미지인 G(z)는 x의 영역으로 맵핑되었기 때문에, x로 표현될 수 있다. 따라서, pz(z)log(1-D(g(z))) 는 pg(x)log(1-D(x)) 로 쓸 수 있다. 이를 다시 쓰면 (3)과 같이 나타난다.

 

∀ (a, b) ∈ R2 \ {0, 0}

y → a log(y) + b log(1 - y)인 함수의 최대값음 [0,1] 범위에서 a/(a+b) 가 된다. 따라서 proposition1은 성립한다.

 

 

트레이닝을 위한 최적단계인 C(G)는 V(G,D)를 maximize하여 얻을 수 있고 이를 식으로 나타내면 아래와 같이 전개하여 표현할 수 있다.

 

 


 

Theorem1. 위에서 트레이닝을 위한 기준식으로 제시했던 C(G)의 Global min은 pg = pdata일 때만 만족될 수 있다. 이때, C(G)의 값은 -log4가 된다.

 

두 확률 분포 사이에 차이가 전혀 없어 pg = pdata라면 DG*(x) = 1/2이 되고 (4)번 식에 의해서 C(G) = -log4가 된다.

 

KL-Divergence에 의해 두 확률분포에 따른 엔트로피 값을 통해 (5)와 같이 쓸 수 있다.

(KLD는 두 확률분포 간의 정보량의 차이를 계산하는 식으로 여기서는 자세한 설명을 생략하고 이와 관련된 포스팅을 다시 하겠다.)

여기서 -log(4)는 기준이 되는 확률의 분포를 통해 얻은 값으로 위에서 log(1/2) + log(1/2)로 -log4인 것을 알았고 뒤의 두 항이 분포간의 차이를 나타내는 값이다.

이를 거리개념으로 나타내는 값이 JSD(Jensen-Shannon divergence)로 바꾸어 표현하면 (6)으로도 나타낼 수 있다. 이때, 두 분포간의 차이값은 최소가 0 또는 그 이상이 될 수 밖에 없기 때문에 위에서 설명한 C(G) 최소값은 -log4가 되고 2·JSD(pdata||pg)를 최소화하는 문제가 된다.

 


4.2 Convergence of Algorithm 1

Proposition2

  G와 D가 충분한 능력을 갖고 있다고 가정하자. 이때, Algorithm1에서 D가 완전히 최적화 되는 상태까지 도달할 수 있고 트레이닝 최종점에 대한 기준치를 개선하기 위해 pg도 위해 업데이트 된다라고 하면 pg는 pdata로 수렴할 것이다.

 

  다만 실질적으로 적용을 할 때는 G(z; Θg) 함수를 통해 pg의 분포를 제한적으로만 나타낼 수 있기 때문에 pg자체를 최적화 하기보다 Θg를 최적화하는 것이 현실적이다. 또한, 다계층 신경망으로 구성한 경우에 파라미터 영역에서 여러개의 임계점이 발생하게 되지만 이러한 이론적인 한계에도 불구하고 퍼포먼스가 좋기 때문에 다계층 신경망을 사용하는 것이 유리하다고 한다.

 


 

5. 실험(Experiments)

순서대로 a) MNIST b) TFD c) CIFAR-10(fully connected model) d) CIFAR-10(convolutional discriminator and deconvolutional generator) 샘플들을 통해 생성한 이미지들을 visualizing 한 것이다.


이렇게 GAN 논문에 대한 리뷰를 마쳤습니다. GAN의 경우 적용되는 분야가 굉장히 많기 때문에 확실하게 이해하시고 넘어가는 것이 도움이 될 것 입니다. 포스팅 읽어주셔서 감사합니다.