[논문 리뷰] Generative Adversarial Nets(GANs)
이미지 생성이란?
이미지 생성이란 모델이 학습 데이터셋의 확률 분포를 모델링하고, 이를 바탕으로 새로운 이미지를 생성하는 것을 말합니다. 전체 데이터셋은 고차원 공간에 분포하며, 각 이미지는 고차원 공간의 한 점입니다. 생성 모델의 목표는 이 분포를 학습하여, 분포에 따라 새 이미지를 생성하는 것입니다.
Generative Adversarial Nets
GANs는 Ian J. Goodfellow 등 연구자들이 2014년에 발표한 논문에서 처음 소개되었습니다. 이는 기존 생성 모델인 VAEs, RBMs 등의 한계를 극복하기 위한 방법으로, 생성자(Generator)와 판별자(Discriminator)라는 두 개의 네트워크를 경쟁적으로 학습시키는 구조입니다.
Adversarial Learning
- 생성자 (G): 임의의 노이즈에서 시작하여 실제 데이터와 유사한 새로운 데이터를 생성하려고 합니다.
- 판별자 (D): 생성자가 만든 데이터와 실제 데이터를 구별하려고 합니다.
생성자는 판별자가 자신의 출력을 올바르게 분류할 확률을 최소화하려고 노력하고, 판별자는 자신의 분류 정확도를 최대화하려고 노력합니다.
Objective Function
앞선 과정을 나타내는 GAN의 Ojective Function은 아래와 같습니다.
이를 생성자와 판별자의 관점에서 바라보면 아래와 같습니다.
Algorithm
모델은 미니 배치마다 아래 수식을 k번씩 반복합니다:
판별자와 생성자의 순서대로 아래와 같이 업데이트합니다.
D 업데이트:
- 실제 데이터 분포에서 m개의 데이터 샘플링
- 노이즈 분포에서 m개의 노이즈 샘플링
- 각 샘플에 대해 D(x)값을 기반으로 손실 함수 계산
- 확률적 경사 상승법을 통해 손실을 최대화하는 방향으로 D의 파라미터를 업데이트
G 업데이트 (D 업데이트 완료 이후):
- 노이즈 분포에서 새로운 m개의 노이즈 샘플링
- 각 샘플에 대해 G가 생성한 데이터 품질 평가
- 확률적 경사 하강법을 통해 손실을 최소화하는 방향으로 G의 파라미터를 업데이트
Represent by Graph
학습이 진행됨에 따라 생성 모델의 분포는 원본 데이터의 분포를 따르게 됩니다. 판별 모델의 분포는 D(x) = 0.5로, 이는 원본 데이터와 생성 데이터를 구분하지 못하는 상태로 학습됩니다.
Experiments
실험은 MNIST, TFD, CIFAR-10 데이터셋으로 진행되었습니다. Parzen Window 기반의 로그 가능도를 측정한 결과는 아래와 같습니다:
생성된 데이터 샘플의 예시는 아래와 같습니다. (a) MNIST, (b) TFD, (c) (d) CIFAR-10
Conclusion
GAN은 생성 모델링 분야에 혁신적인 변화를 가져온 연구입니다. 이 논문은 적대적 학습 프레임워크를 통해 높은 품질의 데이터를 생성할 수 있는 새로운 방법을 제시하며, 특히 이미지 생성 분야에서 그 가능성을 입증하였습니다. GAN의 핵심은 생성자와 판별자의 동적 경쟁을 통해 서로의 성능을 향상시키는 것으로, 이는 기존의 생성 모델이 가지고 있던 한계를 극복할 수 있게 합니다.
그러나, GAN은 학습의 안정성과 모드 붕괴와 같은 문제들을 완전히 해결하지 못하였습니다. 이는 GAN의 알고리즘을 개선하고 더 넓은 범위의 문제에 적용할 수 있도록 연구 방향을 제시합니다.