ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문리뷰] Generative Adversarial Nets
    Artificial Intelligence/Computer Vision 2021. 5. 13. 04:16

    개요

        딥러닝의 대가인 Ian Goodfellow에 의해 쓰여진 이 논문은 2014년에 NIPS에 발표되어 지금까지 30,000회가 넘는 인용수를 자랑하며 생성 분야에 있어서 새로운 지평을 열었다고 해도 과언이 아닌 성과를 낳았습니다.

        AlexNet이 ILSVRC에서 우승을 한 것이 2012년이니 딥러닝이 다시 본격적으로 주목받게 된지 시간이 좀 지난 후였습니다만, 아쉽게도 딥러닝은 아직 그 저력을 분류 모델에서만 보인 상태였습니다. Maximum Likelihood Estimation(MLE) 등에서 발생하는 확률 연산들을 근사하는 것, 생성의 관점에서 개별적인 선형 데이터들로부터 얻을 수 있는 이득을 극대화하는 것이 어려웠기 때문입니다.

        이러한 한계점을 저자는 새로운 데이터를 만들어내는 Generator와 Generator로부터 만들어진 것과 그렇지 않은 것을 구분하는 Discriminator, 2개의 네트워크를 학습시킴으로써 상당 부분 극복했습니다. Generator는 Discriminator를 속이기 위해, Discriminator는 Generator에게 속지 않기 위해 학습하는 것에서 Adversarial Nets 라는 명칭이 붙게 되었습니다.

     

     

    Adversarial Nets

    value function V(D, G)

        위의 함수는 Discriminator model $D$와 Generator model $G$를 학습시키는 목적 함수이다. 위에서 $x$는 dataset에서 추출해낸 값을 뜻하며, D는 입력받은 값이 dataset에 속한 real data일 확률을 나타내는 함수이므로 $D(x)$를 최대화하도록 학습한다. 또한 $z$는 노이즈 분포에서 추출해낸 노이즈 값이다. 이를 입력받아 $G$는 새로운 가짜 데이터를 생성한다. $D$는 물론 이런 경우의 $D(G(z))$의 출력값을 최소화하도록 학습하게 되며, 반대로 $G$는 이를 최대화하도록 학습하게 된다. 즉, Generator로 만들어낸 가짜 데이터들이 진짜 데이터셋의 분포를 최대한 따라가도록 학습하게 된다는 의미이다. 위의 식에서 $D(x)$와 $D(G(x))$에 번갈아 1과 0을 대입해보면 좀더 감이 올 것이다.

        또한, 논문에서는 위 식에 대한 좀더 실질적인 학습법을 제시하고 있는데, 초기 학습 시기에는 $G(z)$가 학습이 되어있지 않아 데이터셋과 한참 동떨어진 값을 내놓을 것이고 그렇게 되면 $log(1 - D(G(z)))$는 그 절댓값이 과도하게 커질 수 있다. 때문에 초기에 한해 $G(z)$가 너무 말도 안되는 결과물을 내놓는다면 $logD(G(z))$를 최대화하는 방향으로 학습하도록 할 수 있다.

    생성 모델 학습 과정 설명도

        위의 그림은 학습 과정을 이해하기 쉽게 도식화한 것이다. 초록 선을 Generator 결과값의 분포, 검은 점들은 dataset의 분포, 파란 점선은 Discriminator의 경계선을 나타낸 것이다. 보다시피 처음에는 노이즈로부터 Generate된 결과물들이 학습이 덜 된 Generator 모델의 분포를 따르기에 실제 데이터셋과 거리가 있는 것을 확인할 수 있다. 그러나 학습이 진행될 수록 Generator의 분포가 데이터셋의 분포를 따라가게 되며, 이상적인 결과인 (d)에서는 Discriminator가 마침내 실제 데이터와 생성 데이터의 차이를 찾기 못해 어떠한 경우에도 반반의 확률을 출력하게 된다.

     

     

    Experiments

     

        Parzen winow 방식을 사용해서 다양한 모델들이 MNIST와 TFD에 대한 log likelihood를 계산한 표이다. Adversarial nets가 좋은 점수를 거두었음을 확인할 수 있다. 하지만, 생성 모델에 있어 당시에는 마땅히 그 성능을 측정할 지표가 없어서 MLE를 사용했음을 언급하는데, 때문에 더 좋은 평가 방식에 대한 연구들 또한 장려하고 있다.

        위는 GAN을 이용하여 데이터셋으로부터 만든 이미지를 보여주고 있다. 이미 당시부터 꽤나 성능이 좋았다는 것을 확인할 수 있다. 

     

     

    결론

        비록 이전의 생성 방법론들과 비교했을 때 Generator의 결과값 분포를 알 수 없으며, $G$와 $D$가 학습 중에 서로 동기화가 잘 이루어져야한다는 제약조건이 있으나, Markov Chain을 더이상 사용하지 않고 단지 gradient 업데이트만으로도 이러한 문제를 해결할 수 있다는 것에 큰 의의가 있다. 또한 앞으로의 다양한 발전가능성을 시사했는데, 조건을 추가하여 해당 조건을 가진 이미지를 생성하도록 하는 것, 라벨링이 덜 되어 있는 데이터도 학습 가능하도록 Weakly Supervised Learning을 실시하는 것, Generator와 Discriminator의 더 나은 학습 방법을 찾는 것 등이다.

    댓글

Designed by Tistory.