2. Generative Adversarial Network
2Taxonomy of Generative Models (from Ian Goodfellow’s NIPS tutorial, 2016)
Generative model은 Explicit P.D.F.의 정의 여부에 따라 크게
2가지로 나뉜다.
1. Explicit P.D.F.을 정의해줌
① P.D.F.가 Tractable한 경우
Ex) Pixel RNN
② P.D.F.가 Intractable한 경우
Ex) Restricted Boltzmann machine
(에너지 함수를 이용한 볼츠만 분포를 확률밀도함수로 사용)
Ex) Variational AutoEncoder
(Intractable한 posterior를 계산하기 위해 Variational inference 사용)
3. Generative Adversarial Network
3Taxonomy of Generative Models (from Ian Goodfellow’s NIPS tutorial, 2016)
Generative model은 Explicit P.D.F.의 정의 여부에 따라 크게
2가지로 나뉜다.
2. Explicit하게 P.D.F.를 정의 해주지 않음
Ex) Generative Stochastic Network
(잘 모르겠습니다.)
Ex) Generative Adversarial Network
(게임 이용을 활용해 확률분포를 예측)
4. Generative Adversarial Network
4
1. GAN의 목표
일반적으로 우리는 Input Data에 대한 확률분포 P(X)를 모릅니다. 이를 알아보기 위해 다양한 방법을 사용하지만,
GAN은 외적으로 확률분포를 정의해주고 MLE를 통해 Parameter들을 구하는 것이 아닌,
게임이론을 사용하여 Value Function을 정의 해준 후, 이를 Gradient Descent방법을 사용하여 최적화 함으로서
𝑃𝑔 𝑥 를 𝑃𝑑𝑎𝑡𝑎(𝑥)에 근사 시켜주는 방법을 사용합니다.
사진: https://www.slideshare.net/YunjeyChoi/generative-adversarial-networks-75916964
5. 5Generative Adversarial Nets(from IJ Goodfellow, 2014)
Generative model은 주어진 데이터를 학습하여 Discriminative model이 실제 데이터와 생성된 데이터를 구분하지
못하게 하는 것을 목표로 한다.
Discriminative model은 실제 데이터 혹은 생성된 데이터를 입력으로 받아, 그 입력 데이터가 실제 데이터라고 생각하면
1을 반환하고, 생성된 데이터라고 생각하면 0이라는 스칼라를 반환하는 모델이다.
GAN에서는 이 두 모델(Generative, Discriminative)을 모두 MLP를 사용하여 정의하고 이를 Backpropagation Algorism을
사용해서 학습하는 것을 목표로 한다.
6. 6
Generative Adversarial Network
2. 논문의 Contribution(주관적인 생각일 수 있습니다.)
일반적인 Generative model에서는 Markov chain 또는 Approximate inference를 사용하는데 GAN에서는 둘다 필요 없다!
Generative Adversarial Nets(from IJ Goodfellow, 2014)
8. Generative Adversarial Network
8
4-1. Value Function of Discriminator
Value Function = 𝔼 𝑥~𝑝 𝑑𝑎𝑡𝑎(𝑥) 𝑙𝑜𝑔𝐷 𝑥 + 𝔼 𝑧~𝑝 𝑧(𝑧) log(1 − 𝐷 𝐺(𝑧 ))
𝑝 𝑑𝑎𝑡𝑎 𝑥 에서 𝑥를 샘플링 한다는 의미 𝑝 𝑧 𝑧 에서 𝑧를 샘플링 한다는 의미
𝑥가 𝑝 𝑑𝑎𝑡𝑎(𝑥)로 부터 나왔으므로 D(x) = 1이 되도록 학습되어야 한다.
G(z)는 생성된 이미지 이므로 D(G(z)) = 0이 되도록 학습되어야 한다.
9. Generative Adversarial Network
9
4-1. Value Function of Discriminator
Value Function = 𝔼 𝑥~𝑝 𝑑𝑎𝑡𝑎(𝑥) 𝑙𝑜𝑔𝐷 𝑥 + 𝔼 𝑧~𝑝 𝑧(𝑧) log(1 − 𝐷 𝐺(𝑧 ))
앞에서 봤듯, 앞 항의 D(x)는 → 1이 되도록 학습을 시켜야 하므로, 𝑙𝑜𝑔𝐷 𝑥 는 학습이 진행되면서 값이 증가하게 된다.
또한, 뒤 항의 𝐷 𝐺(𝑧 )는 → 0이 되도록 학습을 시켜야 하므로, log(1 − 𝐷 𝐺(𝑧 ))는 학습이 진행되면서 값이 증가하게 된다.
즉, Discriminator 입장에서는 학습이 일어남에 따라 Value Function이 증가하는 것을 목표로 삼는다.
10. Generative Adversarial Network
10
4-2. Value Function of Generator
Value Function = 𝔼 𝑥~𝑝 𝑑𝑎𝑡𝑎(𝑥) 𝑙𝑜𝑔𝐷 𝑥 + 𝔼 𝑧~𝑝 𝑧(𝑧) log(1 − 𝐷 𝐺(𝑧 ))
𝑝 𝑧 𝑧 에서 𝑧를 샘플링 한다는 의미
G(z)는 생성된 이미지 이므로, Generator 입장에서는 D(G(z)) = 1이 되도록 학습되어야 한다.
11. Generative Adversarial Network
11
4-2. Value Function of Generator
Value Function = 𝔼 𝑧~𝑝 𝑧(𝑧) log(1 − 𝐷 𝐺(𝑧 ))
Generator의 경우, 𝐷 𝐺(𝑧 )는 → 1가 되도록 학습을 시켜야 하므로, log(1 − 𝐷 𝐺(𝑧 ))는 학습이 진행되면서
값이 감소하게 된다.
즉, Generator 입장에서는 학습이 일어남에 따라 Value Function이 감소하는 것을 목표로 하게 된다.
13. Generative Adversarial Network
13
4-4. Training Algorism of GAN
논문에서는 GAN을 Training할 때,
Discriminator는 k번 업데이트를 하고
Generator는 1번 업데이트 하라고
적혀져 있다.
(Generator를 천천히 학습시킴)
Generative Adversarial Nets(from IJ Goodfellow, 2014)
17. Generative Adversarial Network
17
5. Theoretical Results(Math)
② C(G)의 정의와 Global optima 조건에 대한 증명
𝐶 𝐺 = − log 4 + 𝔼 𝑥~𝑃 𝑑𝑎𝑡𝑎
[log 𝑃𝑑𝑎𝑡𝑎 𝑥 ×
2
𝑃𝑑𝑎𝑡𝑎 𝑥 + 𝑃𝑔 𝑥
] + 𝔼 𝑥~𝑃 𝑔
[log× 𝑃𝑔 𝑥
2
𝑃𝑑𝑎𝑡𝑎 𝑥 + 𝑃𝑔 𝑥
]
= − log 4 +
𝑥
𝑃𝑑𝑎𝑡𝑎 𝑥 × log( 𝑃𝑑𝑎𝑡𝑎 𝑥 ×
2
𝑃𝑑𝑎𝑡𝑎 𝑥 + 𝑃𝑔 𝑥
)𝑑𝑥 +
𝑥
𝑃𝑔 𝑥 × log 𝑃𝑔 𝑥 ×
2
𝑃𝑑𝑎𝑡𝑎 𝑥 + 𝑃𝑔 𝑥
𝑑𝑥
KL_Divergence의 정의에 의해 위 식은 아래와 같이 전개된다.
= − log 4 + 𝐷 𝐾𝐿(𝑃𝑑𝑎𝑡𝑎 𝑥 ||
𝑃 𝑑𝑎𝑡𝑎 𝑥 + 𝑃 𝑔 𝑥
2
) + 𝐷 𝐾𝐿(𝑃𝑔 𝑥 ||
𝑃 𝑑𝑎𝑡𝑎 𝑥 + 𝑃 𝑔 𝑥
2
)
= − log 4 + 2 × 𝐽𝑆𝐷(𝑃𝑑𝑎𝑡𝑎 𝑥 || 𝑃𝑔 𝑥 ) , where JSD is Jensen-Shannon Divergence
& JSD(P||Q) ≥ 0, 최소값 0은 P =Q일 때 발생
∴ 𝐶∗
𝐺 = − log 4 𝑖𝑠 𝑡ℎ𝑒 𝑔𝑙𝑜𝑏𝑎𝑙 𝑚𝑖𝑛𝑖𝑚𝑢𝑚 𝑜𝑓 𝐶 𝐺 𝑎𝑛𝑑 𝑡ℎ𝑎𝑡 𝑡ℎ𝑒 𝑜𝑛𝑙𝑦 𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛 𝑖𝑠 𝑃𝑑𝑎𝑡𝑎 𝑥 = 𝑃𝑔 𝑥 ,
i.e. the generative model perfectly replicating the data generating process.
18. Generative Adversarial Network
18
5. Theoretical Results(Math)
③ Convergence of Training Algorism
Generative Adversarial Nets(from IJ Goodfellow, 2014)
19. Generative Adversarial Network
19
5. Theoretical Results(Math)
③ Convergence of Training Algorism
이전의 슬라이드는 13번 슬라이드에 있는 Algorism 1을 사용하면 Value Function을 Global Optima에
수렴시킬 수 있다는 것을 수학적으로 증명하고 있다.(수학적으로 엄밀하게 진행하지는 않았다고 한다…)
(※ 위의 내용을 확실하게 이해하려면 Vector Space와 Convex Optimization에 대한 기본 지식이 필요한 것 같은데,
저는 잘 모르겠어서 이 부분에 대해서는 언급을 하지 않겠습니다.)