Generator가 가짜 데이터를 만들고, Discriminator가 실제 데이터인지 가짜 데이터인지 판별하는 방식으로, 두 신경망이 서로 경쟁하며 학습한다. 즉, Generator가 Discriminator를 속이도록 학습한다. 주로 이미지 생성 분야에서 사용된다.
Generative Adversarial Network(생성적 적대 신경망 ; GAN)는 실제 데이터의 분포를 학습하여 실제와 유사한 새로운 데이터를 생성하는 모델이다.
Generator(생성자, G)는 random noise $z$를 입력받아 가짜 데이터를 생성한다.
$z \sim p_z(z)$
$G(z) = x_{fake}$
처음에는 아무 의미 없는 이미지를 생성하지만, 학습이 진행될수록 실제 데이터와 유사한 이미지를 생성하게 된다.
Discriminator(판별자, D)는 실제 데이터 $x$ 또는 생성된 가짜 데이터 $G(z)$를 입력받아 해당 데이터가 실제일 확률을 출력한다.
$D(x) = P(Real|x) \in [0, 1]$
GAN의 Loss Function은 일반적인 Binary Cross Entropy 관점에서 다음과 같은 함수를 사용한다.
$L_D = -E_{x \sim p_{data}}[\log D(x)] - E_{z \sim p_z}[\log (1-D(G(z)))]$
GAN의 Objective Function(목적 함수)는 Minimax Game 이론의 형태를 가진다.
$\displaystyle \min_G \max_D V(D, G)$