GAN: Generative Adversarial Nets

논문 원본: https://arxiv.org/abs/1406.2661
논문 한 줄 요약:
두 개의 신경망이 경쟁하며 실제와 유사한 데이터를 생성하는 새로운 학습 프레임워크인 GAN을 제안
1. Introduction
이 논문의 서론에서는 새로운 종류의 생성 모델인 Generative Adversarial Network, 줄여서 GAN이라는 프레임워크를 제안하는 배경과 필요성을 설명한다. 기존의 생성 모델들은 주어진 데이터 분포를 명시적으로 추정하고 그로부터 샘플을 생성하려고 한다. 대표적인 방법으로는 확률적 그래픽 모델, 잠재변수 모델, 보통은 복잡한 사후확률 추정이 포함되는 베이지안 방식 등이 존재한다. 하지만 이러한 모델들은 실제로 학습하고 샘플을 생성하는 과정에서 계산량이 많고 구현이 복잡한 경우가 많으며, 특히 사후확률을 추정하는 과정에서 근사치를 사용해야 해서 정확도가 떨어질 수 있다는 문제가 있다.
이러한 문제를 해결하기 위해 저자들은 명시적인 확률 분포 추정 없이도 데이터를 생성할 수 있는 새로운 접근법을 제안한다. 바로 생성자(generator)와 판별자(discriminator)라는 두 개의 신경망을 서로 경쟁시키는 방식으로, 생성자는 가능한 진짜같은 데이터를 만들기 위해 학습하고, 판별자는 주어진 데이터가 실제 데이터인지 생성된 가짜 데이터인지를 구분하려고 학습하게 만든다. 이처럼 두 모델이 서로의 성능을 끌어올리며 경쟁적으로 발전하는 구조를 통해, 실제 분포와 거의 유사한 데이터를 생성할 수 있도록 유도하는 것이 이 논문의 핵심 아이디어이다.
2. Related Work
GAN이 제안되기 이전에는 다양한 생성 모델들이 연구되어 왔다. 대표적인 예로 Restricted Boltzmann Machine(RBM), Deep Belief Network(DBN), Variational Autoencoder(VAE) 등이 있다. 이들 모델은 대부분 데이터가 생성되는 과정을 확률적으로 모델링하려고 시도하며, 그 결과로 샘플을 생성한다. 하지만 이 과정에서 공통적으로 등장하는 문제는 사후확률 추정이다. 실제로 어떤 관측값이 주어졌을 때 그에 해당하는 잠재변수의 분포를 추정하는 과정이 필수적인데, 이 작업은 대부분의 경우에 정확하게 계산하기 어려우며, 근사 기법을 사용해야 한다. 근사 기법을 사용하면 효율은 올라갈 수 있지만 정확도가 떨어지고, 샘플의 질 또한 낮아지는 경향이 있다.
또한 기존 모델들은 학습 과정에서 Gradient를 효율적으로 역전파하기 어려운 구조가 많았기 때문에 최적화가 쉽지 않았다. 특히 deep generative model에서는 이 문제가 더 크게 작용하여 안정적인 학습이 어려웠다. GAN은 이러한 구조적 복잡성과 추론의 어려움을 모두 피하면서, 상대적으로 단순한 학습 구조와 신경망 기반의 gradient descent 방식으로 문제를 해결할 수 있다는 점에서 기존 모델들과는 본질적으로 다른 방향성을 제시한다.
3. The Adversarial Nets Framework
이 장에서는 GAN의 기본 구조와 학습 원리를 수학적으로 설명한다. GAN은 기본적으로 두 개의 모델을 포함한다. 하나는 생성자 G(Generator)이고, 다른 하나는 판별자 D(Discriminator)이다. 생성자 G는 일반적으로 다차원의 정규분포나 균등분포에서 샘플링된 잠재 벡터 z를 입력으로 받아 이를 실제와 유사한 데이터를 생성하는 함수이다. 반면 판별자 D는 어떤 입력 데이터가 실제 데이터셋에서 온 것인지, 아니면 생성자가 만들어낸 가짜 데이터인지를 구분하는 이진 분류기 역할을 한다.
이 구조는 수학적으로 다음과 같은 목적 함수를 통해 정의된다.

이 함수는 생성자와 판별자 사이의 미니맥스 게임 구조를 따른다. 판별자는 진짜 데이터를 최대한 진짜로 인식하고, 생성된 데이터를 최대한 가짜로 인식하기 위해 log D(x)와 log(1 - D(G(z)))를 최대화하려고 한다. 반면 생성자는 판별자가 자신의 출력을 진짜로 오해하도록 만들어야 하므로, log(1 - D(G(z)))를 최소화해야 한다. 이처럼 생성자와 판별자가 서로의 목표를 정반대 방향으로 갖는 경쟁적 구조는 게임 이론에서 말하는 내쉬 균형에 해당하며, 이 균형점에 도달하면 생성 모델이 실제 데이터 분포를 완벽히 모사할 수 있다는 것이 이론적 결과로 제시된다.

질문 1: Generator는 어떻게 점진적으로 데이터 분포 에 수렴해 가는가?
→ 그림 (a)에서 Generator는 임의의 분포 를 따르고 있으며, Discriminator는 이 둘을 잘 구분하고 있다. 이후 (b), (c)를 거치며 Discriminator는 더욱 정교하게 학습되고, 그에 따라 Generator는 Discriminator의 gradient를 따라가며 점점 진짜 분포와 유사한 샘플을 생성하게 된다. 하지만 이 과정은 gradient 기반으로 최적화되기 때문에, 중간 과정에서 mode collapse가 발생하거나 gradient가 사라지는 문제가 실제로 발생할 수 있다.
→ 논의 가능성: Generator가 gradient를 따라 분포를 맞춰나가는 이 메커니즘이, 실제로는 local optimum에 빠지거나, 다수 모드를 놓치는 문제가 있다는 점에서 실험적으로 그 한계를 분석해야 할 필요가 있다.
질문 2: (d)에서 이상적인 수렴 상태는 실제 학습에서 자주 도달 가능한가?
→ 수학적으로는 가 되면 Discriminator는 아무 것도 구분할 수 없고, 가 된다. 하지만 실제로는 이 수렴점에 도달하기가 어렵다. Discriminator가 지나치게 강하면 Generator는 학습이 불가능해지고, 반대로 Generator가 빨리 수렴해버리면 판별자의 학습이 방해받는다.
→ 논의 가능성: 실험적으로 어떤 조건에서 수렴이 안정적으로 이뤄지는지를 조사하는 것이 중요하며, 이 수렴을 돕는 조건(예: learning rate 조절, spectral normalization, gradient penalty 등)에 대한 후속 연구들이 왜 필요한지를 설명할 수 있다.
질문 3: Figure 1의 1차원 예시가 다차원 이미지 생성 문제에서 얼마나 일반화 가능한가?
→ 그림에서는 1차원 분포에 대해 시각적으로 쉽게 이해할 수 있도록 설명하고 있지만, 실제 GAN은 고차원의 이미지 데이터(예: 64x64x3, 256x256x3)를 생성해야 한다.
→ 고차원에서는 분포의 support 자체가 희소하고 gradient가 희미해지는 문제가 훨씬 심각해진다.
→ 논의 가능성: 논문에서 제시한 간단한 개념적 프레임워크가 실제 고차원 문제에 어떻게 확장 가능한가? 그 한계와 이를 보완하기 위한 후속 GAN 모델들의 구조적 변경은 어떤 방향으로 발전했는가?
4. Theoretical Results
이 장에서는 GAN이 어떻게 수렴하며, 그 수렴점에서 어떤 수학적 특성이 나타나는지를 분석한다. 우선 고정된 생성자 G에 대해 최적의 판별자 D가 어떤 형태를 띠는지를 유도한다. 수학적으로 분석해보면, 최적의 판별자 D는 다음과 같이 정의된다.

이는 특정 데이터 x가 주어졌을 때 그것이 실제 데이터일 확률을 나타낸다. 이 수식에 따르면, 생성자의 분포가 실제 데이터 분포와 가까워질수록 판별자의 출력은 0.5에 가까워지게 되며, 이는 판별자가 진짜와 가짜를 구분하지 못하게 된다는 것을 의미한다.
GAN의 목적 함수는 결국 생성자 분포 pg가 실제 데이터 분포에 수렴하도록 학습을 유도한다. 이는 GAN이 실제로는 두 분포 사이의 Jensen-Shannon Divergence (JS Divergence)를 최소화하는 구조임을 보여준다. 이러한 분석은 GAN이 단순히 이미지 품질이 좋아지는 방향으로만 학습되는 것이 아니라, 확률분포 자체를 모사하는 방향으로도 수렴함을 보장한다.
1. 목적 함수 재정의
GAN은 다음과 같은 미니맥스 게임 구조의 목적 함수를 갖는다.

여기서:
- pdata(x): 실제 데이터 분포
- pg(x): Generator가 만든 데이터 분포
- D(x): Discriminator가 x를 진짜라고 판단할 확률
2. 고정된 G 하에서 D의 최적해 유도
만약 Generator G가 고정되어 있고, Discriminator D를 최적화한다면?
→ D는 단순히 두 분포를 잘 구별하는 분류기를 찾으면 된다.
⇒ 목적: 다음의 기대값을 최대화하는 D(x)를 찾는 것

이를 D(x)에 대해 편미분하고 최댓값을 구하면 다음과 같은 최적 판별자가 도출된다:

즉, 어떤 데이터 x에 대해 그 데이터가 실제 데이터일 확률은 전체 샘플 중 pdata(x)가 차지하는 비율과 같다. 이 D*는 GAN 이론의 핵심 수식 중 하나로, 수학적으로 매우 직관적이고 강력하다.
3. 최적의 D를 대입한 뒤, G의 목적 함수는?
이제 D를 최적화한 상태라고 가정하고, Generator가 최소화해야 할 Loss를 다시 써보자.

여기서 D∗(x)를 위 식에 대입하면 다음처럼 정리된다:

이것을 정리하면 다음과 같다:

즉, Generator는 결국 Jensen-Shannon Divergence(JS Divergence)를 최소화하는 방향으로 학습되고 있다.
JS Divergence가 의미하는 것
JS Divergence란?
- 두 분포 P,QP, Q 간의 대칭적 거리 측도
- 다음과 같이 정의됨:

- 항상 0 이상이며, P=QP = Q일 때 0이 된다.
→ 즉, GAN은 결국 생성자 분포 pg와 실제 데이터 분포 pdata를 같게 만드는 것을 목표로 하고 있다는 수학적 근거를 제공한다.
수렴 상태에서 무슨 일이 일어나는가?
- 이상적인 수렴 상태에서는 pg(x)=pdata(x)가 된다.
- 이때, 판별자는 더 이상 두 분포를 구분할 수 없고 다음과 같이 된다:

→ 이론적으로 완벽한 학습이 이루어졌다면, 모든 x에 대해 D(x) = 0.5가 되고, 판별자는 진짜와 가짜를 구분할 수 없게 된다.
5. Experiments
논문에서는 GAN의 가능성을 입증하기 위해 간단한 실험을 수행하였다. 주요 데이터셋은 MNIST와 TFD(얼굴 이미지)이며, 두 모델 모두 다층 퍼셉트론을 기반으로 구성하였다. 이미지 생성 품질을 정량적으로 평가하기는 어려웠으나, 시각적으로 확인했을 때 생성된 샘플은 충분히 자연스럽고 실제와 유사하다는 평가를 받았다.
또한, 잠재 벡터 z 공간의 선형 보간을 통해 생성된 이미지들이 매끄럽게 변화하는 모습을 관찰할 수 있었다. 이는 GAN이 학습한 잠재 공간이 단순히 무작위가 아니라, 의미론적인 구조를 가지며, 이미지의 속성을 부드럽게 변형할 수 있는 잠재 공간임을 시사한다. 이 실험은 이후에 등장할 StyleGAN 등의 후속 연구에서 중요한 출발점이 된다.
6. Advantages and Disadvantages
GAN은 학습 방식의 단순성과 구조적 혁신이라는 점에서 많은 장점을 가진다. 특히 명시적인 확률 분포를 정의하지 않고도 데이터를 생성할 수 있다는 점, 샘플링 속도가 빠르다는 점, 학습에 복잡한 사후 추론이 필요 없다는 점은 기존 모델들과 뚜렷하게 구별되는 특성이다. 또한 잠재 공간이 의미론적으로 구조화된다는 점은 GAN을 통해 이미지 편집이나 제어된 생성이 가능하다는 가능성을 열어준다.
하지만 동시에 여러 가지 단점도 존재한다. 가장 대표적인 문제는 학습의 불안정성이다. 예를 들어, 판별자가 지나치게 강력하면 생성자의 gradient가 거의 0이 되어 학습이 진행되지 않는 gradient vanishing 현상이 발생할 수 있다. 또한 특정 샘플 패턴만 반복해서 생성하는 mode collapse 현상도 빈번하게 나타난다. 이러한 문제는 이후 많은 연구들(WGAN, BEGAN, LSGAN 등)이 해결하고자 한 핵심 과제가 된다.
7. Conclusion and Future Work
이 논문의 결론에서는 GAN이 생성 모델 분야에서 새로운 가능성을 제시했다고 주장한다. 두 개의 모델이 경쟁적으로 학습하는 간단한 구조만으로도, 확률 분포를 명시하지 않고 고품질의 샘플을 생성할 수 있다는 점은 매우 혁신적이다. 향후 연구는 학습 안정성을 높이는 방향, 다양한 응용 분야로의 확장, 더 높은 해상도와 정밀도를 갖는 이미지 생성 등으로 이어질 것이라고 제안한다.
이 논문은 이후의 딥러닝 생성 모델 발전에 결정적인 역할을 하였으며, 이미지 생성뿐만 아니라 텍스트 생성, 음성 합성, 데이터 증강, 예술 생성 등 광범위한 분야에 영향을 주었다고 평가할 수 있다.