[CGAN] Conditional Generative adversarial Nets 논문 공부

2023. 2. 24. 22:26인공지능(AI)

CGAN을 공부해 보자.

GAN

$$_{\ G}^{min}\ _{\ D}^{max}\ V(D, G)\ =\ \mathbb{E}_{x\sim p_{data}(x)}[log D(x)]\ +\ \mathbb{E}_{z\sim p_{z}(z)}[log (1-D(G(z)))]$$

 

지난번 공부했던 [GAN] Generative Adversarial Nets은 생성모델 G가 real data분포를 따라가며 판별모델 D를 속여서 그럴싸한 데이터를 생성해 내는 모델이었다. 이때 생성모델 G는 랜덤한 vector z를 입력으로 받아 무작위로 생성하므로 원하는 데이터를 뽑아낼 수 없었다. CGAN에서는 이 부분을 보완한다.

CGAN

Conditional GAN

$$_{\ G}^{min}\ _{\ D}^{max}\ V(D, G)\ =\ \mathbb{E}_{x\sim p_{data}(x)}[log D(x|y)]\ +\ \mathbb{E}_{z\sim p_{z}(z)}[log (1-D(G(z|y)))]$$

이전 GAN의 objective에서 condition y가 추가되었다. MNIST를 예로 들자면, 먼저 Discriminator는 training data로 학습할 때 각 이미지에 해당하는 label값과 함께 학습한다. CGAN는 기존 GAN의 입력 latent vector z에 label정보를 이어 붙여 생성하게 되는데, 생성한 이미지와 이전에 주입한 label 정보를 함께 Discriminator가 판단한다. 그러므로 생성한 이미지 뿐만 아니라 label 정보도 함께 일치해야 한다. 이러한 방식으로 학습된 Generator는 원하는 label값만 latnet vector z와 함께 넣어주면 해당 이미지를 생성할 수 있게 된다.

 

CGAN MNIST

확실히 기존 GAN은 무작위로 생성되는 반면, CGAN은 원하는 정보를 생성해 잘 정돈된 모습이다.

 

reference

Mirza, Mehdi, and Simon Osindero. "Conditional generative adversarial nets." arXiv preprint arXiv:1411.1784 (2014).

'인공지능(AI)' 카테고리의 다른 글

Deep Fusion (작성중)  (0) 2023.09.11
Yolo 관련 공부  (0) 2023.08.19
Auxiliary Learning  (0) 2023.08.12
[GAN] Generative Adversarial Nets 논문 공부  (1) 2023.02.19