Paper Review/Generative AI

[OUTTA Alpha팀 논문 리뷰] Part 3-4. GAN(Generative Adversarial Networks), Conditional GAN

YeonJuJeon 2024. 12. 28. 18:19

논문 링크1: https://arxiv.org/abs/1406.2661

Ian J. Goodfellow et al., 2014, NIPS

 

Generative Adversarial Networks

We propose a new framework for estimating generative models via an adversarial process, in which we simultaneously train two models: a generative model G that captures the data distribution, and a discriminative model D that estimates the probability that

arxiv.org

 

논문 링크2: https://arxiv.org/abs/1411.1784

 

Conditional Generative Adversarial Nets

Generative Adversarial Nets [8] were recently introduced as a novel way to train generative models. In this work we introduce the conditional version of generative adversarial nets, which can be constructed by simply feeding the data, y, we wish to conditi

arxiv.org


Abstract

본 논문은 generative model을 학습하는 새로운 프레임워크를 제안한다. 이 구조에서는 두 개의 모델, 생성자 G와 판별자 D가 적대적(adversarial)으로 동시에 학습된다. G는 실제 데이터와 유사한 샘플을 생성하고, D는 주어진 샘플이 진짜 데이터인지 G가 만든 데이터인지를 구분한다.

G는 D가 틀릴 확률을 최대화하도록 학습되며, 이 과정은 minimax 이중 플레이어 게임으로 정의된다. 이론적으로 G와 D가 임의의 함수 공간에 있을 경우, 최적의 상태에서는 G가 데이터 분포를 정확히 복원하고, D는 모든 입력에 대해 1/2의 확률을 출력하게 된다.

G와 D를 multilayer perceptron으로 정의하면, 전체 시스템은 backpropagation만으로 학습 가능하며, 샘플 생성 또한 간단한 forward propagation으로 수행된다. 이 프레임워크는 Markov chain이나 근사 추론 네트워크 없이도 작동하며, 실험을 통해 생성된 샘플이 정성적·정량적으로 우수함을 보인다.


1. Introduction

딥러닝은 이미지, 음성, 자연어 등 인공지능에서 다루는 복잡한 데이터를 표현할 수 있는 계층적 확률 모델(hierarchical probabilistic model)을 학습하는 것을 목표로 한다. 지금까지 딥러닝의 주요 성공 사례는 주로 discriminative model에서 나왔다. 고차원 입력을 받아 class label로 매핑하는 이러한 모델들은 backpropagation, dropout, ReLU 같은 piecewise linear unit을 기반으로 뛰어난 성능을 보여주었다.

반면 generative model은 발전 속도가 느렸다. 이는 maximum likelihood 기반의 학습에서 자주 등장하는 비용이 큰 확률 계산 때문이며, 생성 모델에서는 ReLU 계열 함수의 장점을 제대로 활용하기도 어렵기 때문이다.

이 논문은 그러한 한계를 피할 수 있는 새로운 학습 방법을 제안한다. 핵심은 생성 모델 G와 판별 모델 D를 경쟁시키는 구조다. G는 가능한 한 실제 같은 데이터를 생성하고, D는 그것이 진짜인지 가짜인지 판별하려고 한다. 이 구조는 위조지폐범(G)과 경찰(D)의 관계에 비유할 수 있다. 두 모델은 서로를 이기기 위해 점점 정교해지고, 결국에는 D가 더 이상 G의 출력을 구분하지 못하게 된다.

이 프레임워크는 다양한 모델 구조와 최적화 방법에 적용할 수 있지만, 논문에서는 G와 D 모두를 multilayer perceptron으로 구성한 특수한 경우에 초점을 맞춘다. 이 경우 학습은 backpropagation과 dropout만으로 가능하며, 샘플 생성은 단순히 forward propagation으로 처리된다.

복잡한 추론 알고리즘이나 Markov chain 없이도 높은 품질의 샘플을 생성할 수 있다는 점에서, 이 방식은 간결하면서도 강력한 generative modeling 방법론으로 평가된다.


3. Adversarial nets

Adversarial nets 프레임워크는 생성자와 판별자 모델이 모두 MLP일 때 가장 간단하게 적용된다.

생성자 G와 판별자 D의 구성

  • 생성 모델 $G(z; \theta_g)$입력 잡음 $z$를 데이터 공간 $x$으로 사상하는 함수다.
    • $z \sim p_z(z)$: 입력 잡음은 특정 prior 분포 (예: uniform 또는 Gaussian)에서 샘플링된다.
    • $G$는 매끄러운 미분 가능한 함수이며, MLP로 구현된다.
  • 판별 모델 $D(x; \theta_d)$입력 $x$가 실제 데이터에서 나온 것인지, 생성 모델 G에서 나온 것인지를 확률로 출력하는 함수다.
    • $D(x) \in [0, 1]$: $x$가 실제 데이터일 확률을 나타낸다.

목적 함수: Minimax 게임

GAN의 학습은 G와 D가 서로의 목표를 방해하는 minimax 게임으로 정의된다.

G는 D를 속이기 위해 학습되고, D는 G를 구별하기 위해 학습된다.

이 관계는 다음과 같은 목적 함수 (value function)로 표현된다:

$$\min_G \max_D V(D, G) = \mathbb{E}_{x \sim p_{\text{data}}(x)}[\log D(x)] + \mathbb{E}_{z \sim p_z(z)}[\log (1 - D(G(z)))] \tag{1}$$

  • 첫 번째 항: 실제 데이터 샘플 $x$에 대해 D가 "진짜"라고 올바르게 판단할 확률을 최대화한다.
  • 두 번째 항: 생성된 샘플 $G(z)$에 대해 D가 "가짜"라고 정확히 구별할 확률을 최대화한다.
  • D는 위 식 전체를 최대화하려 하고, G는 반대로 이 값을 최소화하려 한다.

이론적으로는...

G와 D의 표현력이 무한하다면 (non-parametric limit), 이 minimax 게임은 다음과 같은 상태에서 균형에 도달한다:

  • $p_g(x) = p_{\text{data}}(x)$: 생성 모델이 실제 데이터 분포를 완벽히 복원하고,
  • $D(x) = \frac{1}{2}$: 판별 모델이 두 분포를 구분할 수 없게 된다.

논문 Figure 1에서는 이 과정을 시각적으로 설명하고 있다.


G는 고밀도 영역은 압축하고, 저밀도 영역은 확장하면서, 잡음 $z$ 의 분포를 데이터 분포에 맞게 변형해간다.

  • (a) G와 D가 수렴에 근접한 상태. $p_g \approx p_{\text{data}}$, D는 약간 정확한 상태.
  • (b) D가 최적화되고 있는 상태. 이론적으로 $D(x) = \frac{p_{\text{data}}(x)}{p_{\text{data}}(x) + p_g(x)}$에 수렴한다.
  • (c) D의 gradient가 G를 더 실제처럼 보이는 영역으로 이동시키고 있다.
  • (d) 충분히 학습이 이루어진 후, G와 D는 더 이상 개선할 수 없는 지점에 도달하며, 이때 $p_g = p_{\text{data}}$, $D(x) = \frac{1}{2}$이 된다.

실제 학습 방법

이론과 달리 실제로는 G와 D 모두 유한한 파라미터를 가진 MLP이며, 전체 최적화는 수치적(iterative) 접근법으로 이루어진다.
GAN 학습 알고리즘의 기본 전략은 다음과 같다:

  1. 판별자 D를 k번 업데이트하여 거의 최적 상태에 도달하게 하고,
  2. 그 다음 G를 한 번 업데이트한다.

이 방식은 G가 급격히 변화하지 않는 한, D가 항상 상대적으로 최적에 가까운 상태를 유지할 수 있도록 만든다. 이는 Markov Chain 기반 학습에서 샘플을 유지하여 chain 초기화를 피하는 방식과 유사하다.

이 과정은 논문 내 Algorithm 1에 공식적으로 정리되어 있다.

수식 (1)의 문제점과 대안

실제 학습 초기에 G가 생성하는 샘플은 매우 비현실적이기 때문에, D는 이를 쉽게 구별할 수 있다.
이때 두 번째 항인 l$\log (1 - D(G(z)))$saturation 현상을 보이며 gradient가 매우 작아진다.
즉, G 입장에서는 학습이 잘 되지 않는 상태가 된다.

이를 해결하기 위해, 수식 (1) 대신 G의 학습 목적을 다음처럼 바꿔 사용할 수 있다:

$$\max_G \mathbb{E}_{z \sim p_z(z)}[\log D(G(z))]$$

이 대체 목적 함수는 D를 속이기 위한 G의 학습을 더 효과적으로 만들어주며, 초기 학습 단계에서 훨씬 강한 gradient를 제공한다.
최종적으로는 원래 목적 함수와 동일한 고정점에 도달하지만, 더 빠른 수렴을 유도한다.


4. Theoretical Results

$z$ Generator의 입력 노이즈 벡터 (잠재 변수)
$G(z; \theta_g)$ Generator 함수 (파라미터 $\theta_g$를 가짐)
$\theta_g$ Generator의 학습 가능한 파라미터 (weight, bias 등)
$p_g$ Generator가 만들어낸 데이터 분포 (모델이 학습 중 표현하려는 분포)
  1. Generator G는 z를 받아서 샘플 x를 생성.$x = G(z; \theta_g)$
  2. 이 과정을 통해 G는 어떤 분포 $p_g(x)$를 간접적으로 만들어냄.
    (→ 즉, $z \sim p_z$를 넣으면 $x \sim p_g$)
  3. 그런데 우리는 직접 $p_g(x)$를 모델링하거나 수정할 수는 없음.
    왜냐하면 GAN은 explicit한 확률 모델이 아니기 때문!
  4. 대신 우리는 $G$의 파라미터 $\theta_g$를 바꾸면서
    결과적으로 $p_g(x)$가 진짜 데이터 분포 $p_{data}(x)$에 가까워지게 만듬듬.

생성자 G는 입력 노이즈 $z \sim p_z$를 통해 샘플 $G(z)$를 생성하며, 이로부터 암묵적으로 분포 $p_g$를 정의한다.
GAN의 목표는 학습을 통해 이 $p_g$가 실제 데이터 분포 $p_{\text{data}}$와 최대한 같아지도록 만드는 것이다.

D는 실제 샘플에는 1, G가 만든 가짜 샘플에는 0을 출력하도록 학습된다. G는 D를 속이기 위해, 즉 G가 만든 샘플을 D가 진짜로 믿게 만들도록 학습된다. 두 모델은 번갈아가며 업데이트되며, 이 과정을 통해 생성 분포 $p_g$​가 점점 데이터 분포 $p_{\text{data}}$에 가까워지게 된다.

논문은 이 목표가 이론적으로 달성 가능한지를 수학적으로 증명하며, 다음의 두 가지 관점에서 분석을 진행한다:

4.1 Global Optimum: $p_g = p_{\text{data}}$가 최적점임

이 절에서는 GAN의 핵심 수식인 minimax 게임이 언제 최적화되는지를 수학적으로 분석한다.
핵심은, 생성자 $G$가 만드는 분포 $p_g$ 실제 데이터 분포 $p_{\text{data}}$와 같아질 때, 목적 함수가 전역 최소값을 갖는다는 것이다.

1) 판별자 D의 최적 형태: Proposition 1

우선, 생성자 $G$가 고정되어 있을 때, 판별자 $D$가 최적이 되려면 어떤 형태를 가져야 하는지를 살펴본다.

Proposition 1.
생성자 $G$가 고정되어 있을 때, 판별자 $D$의 최적해는 다음과 같다:

$$D^*_G(x) = \frac{p_{\text{data}}(x)}{p_{\text{data}}(x) + p_g(x)} \tag{2}$$

증명 아이디어:

  • 목적 함수는 아래와 같다:

$$V(G, D) = \int_x p_{\text{data}}(x) \log D(x) \, dx + \int_z p_z(z) \log(1 - D(G(z))) \, dz$$

  • 두 번째 항은 생성 분포를 $p_g$라고 두면 다음과 같이 바뀐다:

$$V(G, D) = \int_x p_{\text{data}}(x) \log D(x) + p_g(x) \log(1 - D(x)) \, dx \tag{3}$$

  • 이 식은, 고정된 $a, b \geq 0$에 대해 함수 $y \mapsto a \log y + b \log(1 - y)$
      최대값$y = \frac{a}{a + b}$에서 갖는다는 사실을 적용하면 된다.

따라서 각 $x$에 대해, $D(x)$는 위 수식을 최대화하는 값인

$$D^*_G(x) = \frac{p_{\text{data}}(x)}{p_{\text{data}}(x) + p_g(x)}$$

으로 정의되면 된다.

2) 목적 함수의 재정의와 최적점 계산

이제 생성자 $G$에 대한 목적 함수만 남겨두고 정리하면 아래와 같은 "가상 훈련 기준(virtual training criterion)"을 정의할 수 있다:

$$C(G) = \max_D V(G, D)$$

이때 최적 $D$를 대입한 후 다음과 같이 식을 정리한다:

$$C(G) = \mathbb{E}_{x \sim p_{\text{data}}} \left[ \log \frac{p_{\text{data}}(x)}{p_{\text{data}}(x) + p_g(x)} \right] + \mathbb{E}_{x \sim p_g} \left[ \log \frac{p_g(x)}{p_{\text{data}}(x) + p_g(x)} \right] \tag{4}$$

이 식을 보면, 각 항이 모두 분포 간의 차이를 나타내는 형태임을 알 수 있다.

3) 전역 최솟값: $p_g = p_{\text{data}}$일 때

Theorem 1.
가상 훈련 기준 $C(G)$$p_g = p_{\text{data}}$일 때 전역 최소값을 갖는다.
이때의 값은:

$C(G) = \log 4$

증명 스케치:

  • $p_g = p_{\text{data}}$이면, 수식 (2)에서 $D^*(x) = \frac{1}{2}$
  • 수식 (4) 대입 시, 각 로그 항은 $\log \frac{1}{2}$가 되고, 최종 합은:

$$C(G) = \log \frac{1}{2} + \log \frac{1}{2} = \log \frac{1}{4} = -\log 4$$

  • 따라서, $C(G) = -\log 4$일 때가 목적 함수의 최소값이다.

4) Jensen-Shannon Divergence로 표현된 최종 형태

GAN 논문은 마지막으로 이 수식을 다음처럼 Jensen-Shannon Divergence (JSD) 형태로 정리한다:

$$C(G) = -\log 4 + 2 \cdot \text{JSD}(p_{\text{data}} \parallel p_g) \tag{6}$$

여기서 JSD는 항상 0 이상이며, 두 분포가 같을 때만 0이 된다.
따라서 $p_g = p_{\text{data}}$일 때 JSD = 0, 즉 $C(G) = \log 4$에서 전역 최소값을 달성하게 된다.

결론

이론적으로, GAN은 판별자 D가 최적으로 동작할 수 있다고 가정하면, 생성자 G는 결국 데이터 분포를 완전히 복원할 수 있다.
그리고 그 시점에서 판별자는 더 이상 두 분포를 구분할 수 없으며, 모든 입력에 대해 1/2의 확률을 출력하게 된다.

즉, GAN 학습의 이상적인 종착지는
$p_g = p_{\text{data}}$,
$D(x) = \frac{1}{2}$ 이다.

4.2 Convergence of Algorithm 1: Algorithm 1이 Eq. (1)을 최적화함

앞서 4.1절에서는 GAN의 목적 함수$p_g = p_{\text{data}}$일 때 전역 최소값을 갖는다는 것을 증명했다.
이번 절에서는 실제 학습 알고리즘인 Algorithm 1이 이론상 이 최적점에 수렴할 수 있는 조건을 정리한다.

Proposition 2

가정

  • G와 D가 충분한 표현 능력(capacity)을 가졌고,
  • 알고리즘의 각 단계에서 D는 G에 대해 항상 최적 상태에 도달하며,
  • G는 다음의 목표를 향해 업데이트된다고 하자:

$$\mathbb{E}_{x \sim p_{\text{data}}}[\log D_G(x)] + \mathbb{E}_{x \sim p_g}[\log(1 - D_G(x))]$$

그렇다면:
$p_g \rightarrow p_{\text{data}}$, 즉 G가 생성하는 분포는 데이터 분포로 수렴한다.

증명 아이디어

  • 목적 함수 $V(G, D) = U(p_g, D)$분포 $p_g$의 함수로 본다.
  • 이 함수 $U(p_g, D)$는 $p_g$에 대해 convex(볼록)하며,
    최적 $D^*$에서의 기울기를 따라 $p_g$를 업데이트하면 수렴을 보장할 수 있다.

이것은 다음과 같은 개념에 기반한다:

"여러 convex 함수의 supremum(최댓값)도 convex이며,
그 지점에서의 미분은 전체 supremum의 subderivative에 포함된다."

즉, 각 단계에서 $D$를 최적으로 맞추고, 그에 맞춰 $p_g$를 gradient descent로 천천히 업데이트하면,
결국 전역 최소점인 $p_g = p_{\text{data}}$에 수렴하게 된다.

실제에서는 어떻게 되나?

현실적으로는 다음과 같은 제약이 있다:

  • 우리는 $p_g$를 직접 정의하거나 업데이트하지 않고,
    G(z; θ)라는 함수 (예: MLP)를 통해 $p_g$를 간접적으로 정의한다.
  • 따라서 실제로는 분포 $p_g$ 자체를 업데이트하는 게 아니라,
    G의 파라미터 $θ_g$를 gradient descent로 학습한다.

이 과정에서 MLP 을 사용하면 다음과 같은 문제가 발생할 수 있다:

  • Parameter space에 여러 개의 local minimum이나 saddle point가 존재한다.
  • 즉, 이론처럼 완전히 최적화되거나, 항상 수렴한다고 보장할 수는 없다.

그럼에도 불구하고,
MLP 기반 모델은 실전에서 매우 우수한 성능을 보여주기 때문에,
이론적 보장이 부족하더라도 GAN 학습을 위한 실용적인 선택지로 간주된다.

요약

  • 이론적으로, Algorithm 1은 $D$를 최적으로 맞추고 $G$를 천천히 업데이트하면 $p_g$$p_{\text{data}}$로 수렴한다.
  • 현실에서는 $G$를 MLP로 구현하고 파라미터를 직접 최적화하기 때문에, 여러 극값에 걸릴 수 있지만,
    MLP의 실전 성능 덕분에 충분히 효과적인 모델링이 가능하다.

수렴 보장은 이론적으로 성립하지만, 실제 구현에서는 적절한 네트워크 구조와 학습 전략이 병행되어야 한다.


5. Experiments

Adversarial nets은 다음 세 가지 데이터셋에서 실험되었다:

  • MNIST: 손글씨 숫자 이미지
  • TFD (Toronto Face Database): 정면 얼굴 이미지
  • CIFAR-10: 저해상도 컬러 자연 이미지

GeneratorReLUsigmoid를 혼합하여 사용했고,
Discriminatormaxout activation을 사용했다.
Discriminator에는 dropout을 적용해 regularization을 수행했고,
Generator에는 입력층에만 noise를 추가했다 (중간 layer에는 추가하지 않음).

Figure 2

각 서브 그림은 학습된 모델이 생성한 샘플이다.
오른쪽 열(노란색 박스)은 해당 생성 샘플과 가장 유사한 실제 학습 데이터로,
모델이 단순히 외운 것이 아님을 보여주기 위한 참고 이미지이다.

  • (a) MNIST: 숫자 이미지가 비교적 선명하고 균일하게 생성됨
  • (b) TFD: 얼굴의 구조와 윤곽이 잘 보존되어 있음
  • (c) CIFAR-10 (fully connected GAN): 대체로 흐릿한 이미지지만 전반적인 색감과 형태 유지
  • (d) CIFAR-10 (convolutional GAN): (c)에 비해 디테일이 좀 더 살아 있음

이 샘플들은 랜덤 샘플링 결과이며 cherry-picking이 아님을 강조한다.
또한 MCMC 없이 샘플링되었기 때문에 상호 독립적이고 섞이지 않은(random & uncorrelated) 상태다.

Figure 3

Generator 입력 $z$ 공간에서 두 점 사이를 선형 보간(linear interpolation)했을 때,
출력 이미지가 부드럽게 변화함을 보여준다.

이는 Generator가 학습한 잠재 공간(latent space)
의미 있는 표현 구조를 학습했음을 보여주는 간접적인 증거다.

 

Table 1

정확한 likelihood를 계산할 수는 없기 때문에,
샘플에 대해 Gaussian Parzen Window를 적용해 log-likelihood를 추정했다.

  • 평가 방식: 생성된 샘플들로부터 가우시안 커널 밀도 추정을 하고,
     테스트 샘플의 log-likelihood를 측정 (cross-validation으로 bandwidth 결정)

GAN은 MNIST와 TFD 모두에서 다른 생성 모델들에 비해 경쟁력 있는 또는 우수한 성능을 보인다.

Table 2

아래는 다양한 생성 모델을 학습, 추론, 샘플링, likelihood 평가, 설계 측면에서 비교한 표다.

GAN은 샘플링이 매우 간단하고, 모델 설계에 큰 제약이 없다는 점에서
기존의 directed/undirected 모델 대비 실용성이 뛰어나다.


6. Advantages and Disadvantages

GAN은 기존 생성 모델 프레임워크와 비교했을 때 몇 가지 명확한 장점과 단점을 가진다.

단점

  • $p_g(x)$를 명시적으로 표현하지 않음
    → 정확한 분포를 모델링하기 어렵고, likelihood 계산도 직접적으로 할 수 없음.
  • G와 D의 동기화(synchronization)가 매우 중요함
    → 특히 G가 너무 빠르게 학습되면 "Helvetica 시나리오"가 발생할 수 있다.
    → 이는 여러 $z$ 값이 같은 $x$로 매핑되며 다양성이 사라지는 문제로,
    Boltzmann Machine에서 negative chain이 오래된 것과 유사한 상황이다.

장점

  • Markov chain이 전혀 필요 없음
    → 샘플 간 의존성 없이 독립적으로 생성 가능함.
  • 학습 시 inference 불필요
    → 잠재 변수 $z$에 대한 추론 없이, 단순히 forward-backward 연산만으로 학습이 가능함.
  • 단순한 backpropagation으로 gradient 계산 가능
  • 모델 구성 유연성
    → 미분 가능한 함수라면 어떤 구조든 사용 가능함 (convolution, residual 등도 포함 가능)
  • 통계적 장점 가능성
    → G는 데이터 샘플을 직접 복사하지 않고, D로부터 흐르는 gradient만으로 학습되므로,
    입력의 특정 속성만 과도하게 반영되는 위험이 줄어든다.
  • Sharp한 분포도 표현 가능
    → MCMC 기반 모델은 샘플이 서로 혼합될 수 있어야 하므로 분포가 상대적으로 blurry해야 하지만,
    GAN은 매우 뾰족하거나 특이한(discrete/degenerate) 분포도 표현할 수 있다.

7. Conclusions and Future Work

이 논문은 Generative Adversarial Networks라는 새로운 생성 모델 학습 프레임워크를 제안하고,
이론적 기반과 실험적 타당성을 입증했다. 이 프레임워크는 다음과 같은 다양한 확장 가능성을 가진다.

확장 가능성

  1. Conditional GAN
    • 조건부 생성 모델 $p(x|c)$을 만들기 위해 조건 $c$를 G와 D 모두의 입력에 추가하면 된다.
  2. Inference Network 학습
    • $x$로부터 $z$를 예측하는 보조 네트워크를 학습하면, approximate inference가 가능하다.
    • 이는 Wake-Sleep 알고리즘에서의 inference net과 유사하지만,
      G 학습 이후에도 inference net만 별도로 학습할 수 있다는 장점이 있다.
  3. 부분 조건 분포 학습
    • $x$의 일부 변수 $x_S$를 고정한 조건부 분포 $p(x_{\setminus S} | x_S)$를 모델링할 수 있다.
    • 이를 위해 파라미터를 공유하는 conditional GAN들을 여러 개 학습시키면 된다.
    • 이는 확률적 버전의 deterministic MP-DBM 구조를 구현하는 것과 유사하다.
  4. Semi-supervised learning
    • Discriminator나 inference network에서 추출한 feature를 분류기(classifier)의 입력으로 사용하면,
      라벨이 적은 상황에서도 성능 향상에 도움이 된다.
  5. 학습 효율 개선
    • G와 D 간의 동기화를 더 잘 수행하는 방식,
      또는 더 나은 $z$ 샘플링 분포를 찾는 방법을 도입하면 학습 속도와 안정성을 개선할 수 있다.

Conditional GAN (CGAN)

1. 배경

  • GAN은 단순히 랜덤 노이즈 z만 입력 → 특정 조건/레이블 반영 어려움
  • Conditional GAN(CGAN):
    • 외부 조건 y생성기와 판별기 양쪽에 주입
    • 예) 레이블, 태그, 이미지 스케치 등
    • 생성기가 $G(z|y)$ 형태로 조건 기반 가짜 데이터 생성
    • 판별기 $D(x|y)$조건이 주어진 입력이 진짜/가짜인지 분류

2. 주요 아이디어

  1. Condition 입력
    • 모두에  삽입
    • 조건부로 데이터를 생성하고, 또한 분류 시에도 그 조건 활용 (요약)
  2. Minimax Game
    • $$\min_G \max_D \; V_{\text{cGAN}}(D,G) $$ 여기서, $$V_{\text{cGAN}}(D,G) = \mathbb{E}_{x \sim p_{\text{data}}}[\log D(x|y)] + \mathbb{E}_{z \sim p_z} [\log(1 - D(G(z|y)|y))]$$
    • 전체 구조와 학습 절차는 GAN과 유사하되, y를 인풋에 추가

3. 특징

  • 제한된 생성: 특정 클래스로 이미지를 생성하거나, 특정 컨디션에 맞춰 데이터 생성 가능
  • 유연성: 라벨 정보, 스케치, 영상 프레임 등 다양한 형태의 조건 삽입 가능 → 다양한 응용

결론 요약

  • GAN:
    • 생성기판별기적대적 학습을 통해, 복잡한 데이터 분포 모방
    • 표현력 뛰어나지만, 학습 안정성, Mode Collapse 등 문제 존재
  • Conditional GAN:
    • GAN 구조에 조건(Condition)을 추가 → 특정 라벨/정보에 맞춘 샘플 생성
    • 다양한 응용(조건 기반 이미지 생성, 스타일 변환 등)으로 확장성 높음