AI/Deep Learning

Generative Adversarial Nets (GAN) 수식으로 이해

이성훈 Ethan 2023. 9. 13. 15:59

GAN: $G$ 와 $D$ 가 two-player minimax game 을 하는 것

 

$G$: Generator

$D$: Discriminator

 

Minimax game: 게임이론, 결정이론 등에서 쓰이는 것으로 최악의 상황에서 손실을 최소화 하는 방향

 

Value function: $\min _G \max _D V(D, G)=\mathbb{E}_{\boldsymbol{x} \sim p_{\text {data }}(\boldsymbol{x})}[\log D(\boldsymbol{x})]+\mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}(\boldsymbol{z})}[\log (1-D(G(\boldsymbol{z})))]$

 

 

$G$ 의 입장

 

$\min _G V(D, G)$: $V(D, G)$ 를 최소화시키는 $G$ 를 학습

 

$\log (1-D(G(\boldsymbol{z})))$ 값이 최소가 되게 하려면 $\log$ 안의 값이 0이 되면 되므로 $D(G(\boldsymbol{z}))$ 의 값이 1이 이 되도록 학습

 

 

$D$ 의 입장

 

$\max _D V(D, G)$: $V(D, G)$ 를 최대화시키는 $D$ 를 학습

 

따라서 $\log$ 안의 값이 모두 1이 되도록 학습

 

 

 

결론적으로 $G$ 는 discriminator 가 구분을 못하도록, $D$ 는 진짜와 가짜를 모두 잘 구별하도록 학습

 

최종은 $G$ 만 사용하여 이미지 생성

'AI > Deep Learning' 카테고리의 다른 글

Autoregressive Model  (0) 2024.03.08
Variational Auto-Encoder (VAE)  (0) 2024.02.28
Penultimate Layer  (0) 2023.03.17
Transfer learning  (0) 2022.02.15
Mode collapse  (0) 2022.01.26