본문 바로가기
논문리뷰

[논문리뷰] GAN 논문 리뷰

by 단깅수 2025. 5. 24.
728x90

GAN 논문 리뷰입니다.

논문 :Generative Adversarial Nets

저자 : Ian J. Goodfellow,    Jean Pouget-Abadie,   Mehdi Mirza,   Bing Xu,  David Warde-Farley, Sherjil Ozair,  Aaron Courville,  Yoshua Bengio, Département d’informatique et de recherche opérationnelle

 

[1] Introduction

딥러닝은 이미지, 음성, 자연어 등 다양한 데이터 도메인에서 탁월한 성능을 보이는 모델 개발을 가능하게 했습니다. 논문에서는 이러한 발전을 ‘풍부하고 구조화된 모델의 발견’이라고 표현하며, 특히 복잡한 데이터 분포를 잘 포착해내는 능력에 주목했습니다.

 

그중에서도 가장 눈에 띄는 분야는 분별(discriminative) 모델입니다. 이 모델은 복잡한 입력 데이터를 주어진 레이블로 잘 매핑하는 데 특화되어 있으며, 대표적인 예시로는 이미지 분류(classification) 과제가 있습니다. 역전파(backpropagation)와 드롭아웃(dropout) 같은 기법들을 바탕으로 높은 성능을 내는 데 성공했죠.

 

하지만 생성(generative) 모델의 경우 이야기가 조금 다릅니다. 생성 모델은 단순히 데이터를 분류하는 게 아니라, 원래 데이터와 유사한 새로운 샘플을 만들어내야 합니다. 그런데 이 과정에는 확률 기반 추론이나 최대 가능도 추정과 같은 복잡한 계산이 필수적이고, 이는 모델을 학습하고 제어하는 데 있어 큰 난관으로 작용했습니다. 또한 부분적으로 선형 구조를 갖는 유닛을 효과적으로 활용하는 것도 쉽지 않았습니다. 결국, 기존의 분별 모델 학습 방식과는 전혀 다른 접근이 필요했던 것입니다.

 

이에 저자들은 이런 어려움을 우회할 수 있는 새로운 생성 모델 학습 프레임워크인 Adversarial Nets Framework를 제안합니다.

 

Adversarial Nets Framework란?

 

이 프레임워크는 생성 모델분별 모델을 동시에 훈련시키는 구조입니다. 각 모델의 역할은 다음과 같습니다:

  • 생성 모델: 가능한 한 분별 모델을 속이도록, 진짜같은 데이터를 생성하는 것이 목표입니다.
  • 분별 모델: 주어진 입력이 실제(real)인지, 생성된(fake) 데이터인지를 판단합니다.

저자는 이 구조를 위조지폐범과 경찰에 비유합니다. 생성 모델은 위조지폐를 만들어내는 범죄자, 분별 모델은 이를 감별해내는 경찰인 셈이죠. 두 모델은 서로의 성능을 높이기 위해 경쟁하게 되고, 이 경쟁 구도는 전체적인 모델 성능을 향상시키는 원동력이 됩니다.

실제 구현에서는 생성 모델이 무작위 노이즈를 다층 퍼셉트론(multilayer perceptron, MLP)을 통해 가짜 데이터를 만들어내고, 분별 모델은 동일한 구조의 MLP를 활용해 해당 데이터가 진짜인지 가짜인지 구별합니다.

 

저자들은 이 두 모델을 하나의 통합된 학습 시스템, 즉 Adversarial Nets로 정의하며, 이 구조가 역전파와 드롭아웃만으로 학습이 가능하고, 생성 시에는 단순한 순전파(forward propagation)만으로도 충분하다고 주장합니다. 별도의 추론 과정이나 마르코프 체인(Markov Chains)을 사용할 필요가 없다는 점을 강조하고 있으며, 이는 기존 생성 모델과의 차별점을 부각시키기 위한 의도로 보입니다.

 


[2] Adversarial Nets

 

이제 본격적으로 adversarial 모델링 프레임워크의 핵심 구조에 대해 정리해보겠습니다.

 

G와 D의 정의

Adversarial framework는 여러 딥러닝 모델을 학습시키는 상황에서 가장 직관적이고 단순한 형태로 적용 가능한 구조입니다. 전체 목적은 입력 데이터 에 대한 생성 분포 p_를 학습하는 것인데, 이를 위해 먼저 노이즈 변수 z∼pz(z)z \sim p_z(z)를 정의하고, 이 노이즈를 실제 데이터 공간으로 매핑하는 생성 함수 G(z;θg)G(z; \theta_g)를 설계합니다.

 

이 G는 파라미터 θg\theta_g를 가지는 다층 퍼셉트론(Multilayer Perceptron, MLP) 구조이며, 즉 딥러닝 기반의 생성 모델을 의미합니다.

 

이와 함께 판별 함수 D(x;θd)D(x; \theta_d)도 함께 정의되는데, 이 역시 MLP 구조이며, 특정 입력 x가 실제 데이터 분포에서 나온 것인지, 혹은 G가 생성한 가짜 샘플인지 판별하는 스칼라 확률 값을 출력합니다. 쉽게 말하면, D는 주어진 샘플이 진짜(real)일 확률을 반환하는 판별기라고 볼 수 있습니다.

 

여기까지가 generator G와 discriminator , 즉 생성 모델과 판별 모델을 각각 정의하는 과정입니다.

 

G와 D의 학습 목표

이제 두 모델을 동시에 학습시키는 단계로 넘어갑니다. 중요한 점은 G와 D가 서로 상반된 목적을 가지고 경쟁한다는 것입니다.

  • Discriminator D: 실제 데이터에는 높은 확률을, G가 만든 가짜 데이터에는 낮은 확률을 할당하려고 합니다. 즉, 올바른 레이블을 줄 확률을 최대화하는 것이 목적입니다.
  • Generator G: D가 자신이 만든 데이터를 진짜라고 착각하게 만들고자 합니다. 논문에서는 이 과정을 log⁡(1−D(G(z)))\log(1 - D(G(z)))최소화하는 것으로 수식화했습니다. 여기서 log⁡(1)=0\log(1) = 0이므로, D의 판단을 완전히 속일 수 있다면 G는 손실을 0으로 만들 수 있습니다.

이 학습 과정은 수학적으로 minimax 게임으로 정의됩니다. 즉, D는 손실을 최대화하려 하고, G는 그것을 최소화하려고 합니다.

해당 수식은 다음과 같습니다:

 

이 식은 GAN 학습의 핵심으로, 첫 번째 항은 D가 진짜 샘플을 잘 맞출수록 값이 커지고, 두 번째 항은 G가 만든 가짜 샘플에 대해 D가 헷갈릴수록 (즉 D의 출력이 1에 가까울수록) 손실이 줄어드는 구조입니다.

결과적으로 이 절묘한 균형 위에서 G와 D는 서로 경쟁하며 점점 더 정교한 생성 및 판별 능력을 갖춰나가게 됩니다.

 

Theoretical Analysis of Adversarial Nets

이번에는 adversarial nets의 학습 구조가 이론적으로 어떤 의미를 가지는지를 분석해보면, 이 분석은 우리가 설정한 training criterion—즉, 학습 손실 함수가—어떻게 하면 생성 모델 G가 실제 데이터 분포 $p_{data}$를 제대로 복원하도록 만들고, 동시에 판별기 D가 충분히 정교한 기능을 갖도록 유도하는지를 설명해줍니다.

 

여기서 말하는 training criterion은 실질적으로 우리가 모델 학습에 사용하고 있는 손실 함수(loss function)를 의미한다고 볼 수 있습니다. 코드에서 흔히 criterion이라는 변수명으로 등장하는 바로 그것이다. 따라서 이론적 분석은 결국, 우리가 사용하는 이 손실 함수가 어떤 방식으로 두 모델(G와 D)을 발전시키는지를 수학적으로 설명하는 것입니다.

 

또한 논문에서는 non-parametric limit 조건 하에서 D가 충분히 유연한 모델일 경우, G는 점점 $p_{data}$에 가까워지도록 수렴할 수 있음을 보입니다. 여기서 non-parametric이라는 말은, 특정한 형태(예: 정규분포 등)를 전제하지 않는 자유로운 형태의 분포를 말하며, 쉽게 말해 D가 복잡한 분포도 잘 구분해낼 수 있는 충분한 표현력을 가지고 있다는 가정입니다.

 

 

 

학습 과정 시각화 해석

이미지에 등장하는 각각의 곡선은 다음과 같은 의미를 가집니다

  • 검은 점선: 실제 데이터 분포 $p_{data}(x)$
  • 녹색 실선: 생성된 데이터 분포 $p_g(x)$
  • 파란 점선: 판별기의 출력 분포 $D(x)$
  • 아래의 z 선: 샘플링되는 latent $space z∼p_z(z)$
  • 화살표 : 생성 모델 $를 통해 생성된 샘플

화살표들은 z에서 x로의 매핑이 비균일한 분포 $p_g(x)$를 어떻게 만들어내는지를 나타냅니다. 흥미롭게도, 는 pg(x)p_g(x)가 밀도가 높은 구간에서는 더 적게 (즉, 많은 가 한 곳에 몰리게) 매핑하고, 밀도가 낮은 구간에서는 더 넓게 퍼지게끔 구성됩니다. 이게 바로 “high-density 영역에서 줄어들고, low-density에서 늘어난다”는 의미입니다.

 

단계별 학습 과정 설명

(a) 초기 상태

  • 아직 학습이 거의 되지 않은 상황
  • 생성 분포 $p_g$는 실제 데이터 분포와는 거리가 있음
  • 그러나 D는 특정 구간에서는 제법 정확한 판별을 해내기 시작한 모습

(b) D의 학습

  • 이 단계에서 D는 이론적으로 최적의 형태인$D^*(x) = \frac{p_{data}(x)}{p_{data}(x) + p_g(x)}$로 점점 수렴
  • 실제 데이터와 생성 데이터의 비율을 근거로 진위 여부를 판단할 수 있게 됨

(c) G의 학습

  • 로부터 받은 gradient를 기반으로 G를 업데이트
  • 이 과정에서 G는 자신의 출력이 D를 속이도록 점점 실제 데이터와 비슷한 분포로 수렴하게 됨

(d) 학습 반복 결과

  • G와 D가 충분히 훈련된 이후, 생성된 분포 $p_g$는 실제 분포 $p_{data}$와 거의 일치하게 됨
  • 이 경우 $D(x) \approx 0.5$가 되며, 즉 판별기는 더 이상 두 분포를 구분할 수 없게 됨
  • 이는 모델이 완벽하게 학습되었다는 이상적인 상태

 

실용적 학습 전략

논문에서는 G와 D의 학습 과정을 일종의 iterative game—서로의 성능을 견제하며 학습하는 게임 이론적 구조—으로 설명합니다. 그러나 이론적으로 D를 완벽하게 학습시키는 건 실제로는 불가능합니다.

이유는 다음과 같습니다

  • 학습 데이터는 유한하며, D를 과하게 학습시키면 오버피팅이 발생할 수 있음
  • D를 지나치게 많이 업데이트하면 G의 gradient가 사라지는 문제도 생길 수 있음

그래서 실제 학습에서는 다음과 같은 전략을 사용:

D를 k번 업데이트한 뒤, G를 1번 업데이트
이 과정을 반복함으로써 두 모델의 학습 균형을 유지하고, 수렴 가능성을 높임

이 전략은 논문에서도 Algorithm 1로 제시된 구조이며, 실제 GAN 학습의 핵심 루틴으로 사용됩니다.

 

 


[3] Experiments

이제 제안된 adversarial framework가 실제로 어떤 성능을 내는지 실험을 통해 확인해보겠습니다. 저자들은 생성기 G와 판별기 를 세 가지 데이터셋—MNIST, Toronto Face Database (TFD), 그리고 CIFAR-10—에 적용하여 학습시킨 뒤, 결과를 분석하였습니다.

 

모델 구성 측면에서, G는 입력으로 노이즈 벡터를 받아들이며, ReLU와 sigmoid 함수를 조합한 비선형 활성화 함수를 사용합니다. 반면, Dmaxout이라는 활성화 함수를 활용하여 입력이 실제(real)인지 생성(fake)인지 판별하도록 구성됩니다.

 

생성 모델이 만든 데이터의 품질을 평가하기 위해, 저자들은 Gaussian Parzen window 기반의 방법을 사용하였습니다. 이 방식은 실제 생성된 샘플에 대해 확률 밀도 함수를 추정한 뒤, 그 확률을 로그 확률 (log-likelihood)로 변환하여 모델의 성능을 간접적으로 평가하는 방식입니다.


이 때 사용되는 가우시안 커널의 표준편차 σ\sigma는 별도의 검증(validation) 데이터셋을 통해 교차 검증(cross-validation) 방식으로 설정하게 됩니다.

 

이런 평가 방식은 직접적으로 생성 확률을 계산하기 어려운 생성 모델의 특성상 널리 사용되는 기법입니다. 다만, 저자도 언급했듯이 고차원 이미지 데이터에서는 이 방법이 불안정한 측면이 있으며, 분산이 큰 결과가 나올 수 있다는 한계가 있습니다. 그럼에도 불구하고, 당시 기준으로는 사용 가능한 방법 중 가장 타당한 평가 방식이었다고 판단하여 이를 채택하였습니다.

 

또한, 저자는 이러한 실험이 샘플링은 가능하지만 명시적인 확률 계산은 어려운 생성 모델들에 대한 평가 방법 연구에 대한 동기를 제공한다는 점에서 의의가 있다고 언급하였습니다. 평가가 완벽하지 않다는 점을 인정하면서도, 미래 연구를 위한 방향성을 제시하고자 하는 저자의 태도가 인상 깊었습니다.

마지막으로 논문에는 학습이 완료된 생성 모델이 만들어낸 샘플 이미지들이 함께 제시되어 있으며, 이를 통해 G가 실제 데이터의 분포를 어느 정도 잘 학습했는지를 시각적으로도 확인할 수 있습니다.

 


[4] Adversarial Nets의 장점과 단점

Adversarial nets framework는 기존에 존재하던 다양한 생성 모델들과 비교했을 때, 몇 가지 명확한 장점과 함께 고유의 단점도 갖고 있습니다.

✅ 단점

가장 대표적인 단점은 두 가지로 요약됩니다.

  1. 생성 분포 $p_g(x)를 명시적으로 표현하지 않는다는 점
    즉, 생성된 데이터가 어떤 확률 밀도 함수로부터 나왔는지를 직접적으로 기술할 수 없다는 구조적 한계가 있습니다.
  2. 학습 시 G와 D의 동기화가 필수적이라는 점
    여기서 동기화(synchronization)란, 생성기 G가 판별기 의 학습 상태와 균형을 맞춰가며 함께 업데이트되어야 한다는 의미입니다.
    만약 D의 업데이트 없이 G만 지속적으로 학습된다면, G는 다양한 값을 소수의 x 값으로만 매핑하게 되고, 이로 인해 데이터의 다양성이 심각하게 떨어지는 문제가 발생합니다. 이러한 현상을 논문에서는 "Helvetica scenario"라고 표현합니다.
    구체적으로 말하자면,
  3. “G collapses too many values of to the same value of x, leading to insufficient diversity to model $p_{data}$.”
    즉, 생성 모델이 여러 잠재 벡터 z를 동일한 x로만 매핑함으로써, 학습 데이터의 분포를 제대로 복원하지 못하는 상황이 발생하는 것입니다.

 

✅ 장점

반면, adversarial framework는 여러 가지 계산적 및 통계적 장점을 동시에 가지고 있습니다.

  1. Gradient-based 학습이 가능하므로, Markov Chain 같은 복잡한 샘플링 절차가 필요하지 않습니다.
  2. 학습 중 별도의 추론 과정이 불필요하다는 점도 큰 장점입니다. 즉, 모델을 학습시키는 동안 posterior 추정을 따로 수행하지 않아도 됩니다.
  3. 이론적으로 어떤 differentiable 함수든 생성 모델로 사용할 수 있는 구조이기 때문에, 모델 설계의 유연성이 매우 높습니다.

이러한 계산적 장점 외에도 통계적인 측면에서의 강점도 존재합니다. GAN은 직접적으로 데이터 예제를 따라가며 학습하지 않습니다. 대신, 판별기 D로부터 받은 gradient 신호를 바탕으로 생성기의 파라미터를 조정합니다.

 

이는 곧, 원본 데이터의 속성이 직접적으로 G의 가중치에 '복사'되기보다는, G가 D를 속이기 위한 방식으로 간접적으로 데이터를 학습한다는 뜻입니다. 결과적으로, GAN은 예리하고 정밀한 데이터 분포를 학습할 수 있으며, 이 분포는 경우에 따라 Markov Chain 기반 모델보다 더욱 sharp하거나 정제된 형태로 표현될 수 있습니다.

 

이는 GAN이 기존 데이터를 완전히 복제하는 것이 아니라, 원본과 유사하면서도 미묘하게 차별화된 새로운 데이터를 생성할 수 있다는 의미이기도 합니다. 이러한 특성 덕분에 GAN은 고차원 이미지 생성 등 다양한 영역에서 뛰어난 성능을 발휘할 수 있게 됩니다.

 

 

위 표는 GAN(Adversarial Models)을 비롯한 다양한 생성 모델들과의 비교를 통해 위에서 언급된 장단점을 좀 더 구조적으로 이해할 수 있도록 돕습니다.

 


[5] Conclusion and Future Work

논문의 마지막에서 저자들은 자신들이 제안한 Generative Adversarial Networks (GAN) 프레임워크를 출발점으로 하여, 앞으로 어떤 방식으로 발전시킬 수 있을지를 구체적으로 제시하고 있습니다. 표현 그대로, 이 프레임워크는 "다양한 형태로 자연스럽게 확장 가능하다(admits many straightforward extensions)"는 점에서 큰 가능성을 내포하고 있습니다.

 

▸ 조건부 생성 모델 (Conditional Generative Model)

생성기 G와 판별기 에 조건 변수 c를 함께 입력으로 넣으면, 특정 조건에 따른 데이터 분포 $p(x \mid c)$를 생성할 수 있는 조건부 생성 모델로 확장할 수 있습니다. 이 방식은 이미지 레이블, 텍스트 조건 등 다양한 실용적 조건을 활용하는 데 적합합니다.

 

▸ 추론 능력 확장 (Approximate Inference)

별도의 auxiliary network를 도입하여 입력 x로부터 잠재 변수 z를 예측하도록 학습하면, 학습 기반의 근사 추론(learned approximate inference)이 가능해집니다. 이는 과거 wake-sleep 알고리즘에서의 추론 네트워크 학습 방식과 유사하지만, 생성 모델이 먼저 고정된 이후 그에 맞춰 auxiliary network를 학습시킨다는 점에서 차별성을 가집니다. 이 구조는 더욱 안정적이며 실용적인 추론 경로를 제공합니다.

 

▸ 조건부 확률 구조 학습 (Conditional Structure Learning)

입력 x의 모든 부분집합 S에 대해 조건부 확률 $p(x_S \mid x_{\setminus S})를 학습할 수 있는 모델 패밀리도 GAN 구조 안에 포함시킬 수 있습니다. 이 구조는 가중치 공유(weight sharing) 전략을 활용해 효율적인 모델링이 가능하며, 복잡한 데이터 간 관계를 효과적으로 학습할 수 있게 해줍니다.

 

▸ 반지도 학습 (Semi-supervised Learning)

GAN은 라벨이 적은 환경에서도 강력한 학습 성능을 발휘할 수 있는 가능성을 가지고 있습니다. 특히, 판별기 또는 추론 네트워크로부터 추출된 특성(feature)을 분류기의 입력으로 활용하면, 전체적으로 분류 성능을 향상시킬 수 있습니다. 이는 실제 현장에서 데이터 라벨링 비용을 줄이는 데 큰 도움이 될 수 있습니다.

 

▸ 효율성 향상 (Training Efficiency)

학습 효율성 측면에서도 여러 개선 방향이 제시되었습니다. 예를 들어, 잠재 변수 z를 샘플링하는 방식 자체를 개선하거나, 생성기 G와 판별기 의 구조를 조정하여 더 효율적인 분포 학습이 가능하도록 설계하는 방법 등이 있습니다. 이러한 전략들은 GAN의 학습 속도 및 수렴 안정성을 높이는 데 핵심적인 역할을 할 수 있습니다.


이처럼 GAN은 단순한 모델 하나에 그치지 않고, 범용적인 adversarial modeling framework로서 다양한 방향으로 확장될 수 있는 유연성을 갖추고 있습니다. 저자들은 이 논문을 통해 GAN이 실제로 작동 가능한 모델임을 실험과 이론을 통해 입증하였으며, 미래 연구에 있어 유의미한 출발점이 될 수 있음을 강조하며 글을 마무리합니다.

728x90
반응형