일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- DM
- ML
- frontend
- js
- PRISMA
- CV
- ts
- sqlite
- react
- review
- DB
- figma
- postgresql
- python
- Three
- Express
- UI
- vscode
- ps
- PyTorch
- API
- nodejs
- GAN
- Linux
- html
- mongo
- CSS
- C++
- SOLID
- Git
- Today
- Total
아카이브
[GAN] 조건적 적대 생성 신경망 (CGAN) 본문
일반적인 GAN의 경우 생성하는 위조 데이터를 원하는 속성의 데이터로 생성해낼 수 없다는 단점이 있습니다. 예를 들어 강아지 사진을 생성하는 GAN 모델의 경우, 무작위 강아지 사진을 생성할 수 는 있지만, 푸들이나 리트리버와 같이 특정한 견종을 지정하여 생성할 수 없습니다.
이를 개선하기 위해 GAN에 추가적인 조건(condition)을 제공하여 구체적인 속성의 데이터를 생성할 수 있게 해주는 조건적 적대 생성 신경망(Conditional Generative Adversarial Network, CGAN)이 개발되었습니다. [1]
1. 구조
CGAN은 원하는 조건을 나타내는 condition 변수를 가지고 있음을 제외하면 GAN과 동일한 구조를 가지고 있습니다.
이 condition 변수는 상황에 따라 임의로 지정할 수 있습니다. 가령 손글씨 데이터셋인 MNIST를 기반으로 만든 CGAN의 경우, 제시할 수 있는 조건은 숫자의 종류(0~9)가 되므로 0에서 9까지의 값이 condition 변수가 될 수 있습니다.
Condition y는 generator와 discriminator의 입력값에 합쳐져 사용됩니다. 모델에서는 크게 총 세 번 참조됩니다 :
- Generator 학습 시 위조값 생성에서 G(z + y)
- Discriminator 학습 시 위조값 생성에서 G(z + y)
- Discriminator 학습 시 입력값으로 D(G(z+y) + y)
이를 그림으로 나타내면 다음과 같습니다.
2. 최적화
CGAN의 loss function 또한 condition y가 주어지는 것 외에는 일반적인 GAN의 loss function과 동일합니다.
CGAN은 여기서 V(D, G)의 값을 최소로 만드는 G와 최고로 만드는 D의 적절한 모델을 학습해야 합니다.
References
[1] Mehdi Mirza (2014). "Conditional Generative Adversarial Nets"
'CS > ML' 카테고리의 다른 글
[GAN] Style 적대적 생성 신경망 (StyleGAN) (0) | 2023.04.28 |
---|---|
[GAN] 적대적 생성 신경망(GAN) (0) | 2023.02.17 |