SlideShare a Scribd company logo
Generative Adversarial Network
Kang, Min-Guk
1
N(0,1) ~ z
Dimension<100>
Generator G(z)
𝑃𝑑𝑎𝑡𝑎(𝑋) ~ x
Discriminator 1 or 0
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 사용)
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
(게임 이용을 활용해 확률분포를 예측)
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
5Generative Adversarial Nets(from IJ Goodfellow, 2014)
Generative model은 주어진 데이터를 학습하여 Discriminative model이 실제 데이터와 생성된 데이터를 구분하지
못하게 하는 것을 목표로 한다.
Discriminative model은 실제 데이터 혹은 생성된 데이터를 입력으로 받아, 그 입력 데이터가 실제 데이터라고 생각하면
1을 반환하고, 생성된 데이터라고 생각하면 0이라는 스칼라를 반환하는 모델이다.
GAN에서는 이 두 모델(Generative, Discriminative)을 모두 MLP를 사용하여 정의하고 이를 Backpropagation Algorism을
사용해서 학습하는 것을 목표로 한다.
6
Generative Adversarial Network
2. 논문의 Contribution(주관적인 생각일 수 있습니다.)
일반적인 Generative model에서는 Markov chain 또는 Approximate inference를 사용하는데 GAN에서는 둘다 필요 없다!
Generative Adversarial Nets(from IJ Goodfellow, 2014)
Generative Adversarial Network
7
3. Model of GAN
N(0,1) ~ z
Dimension<100>
Generator G(z)
𝑃𝑑𝑎𝑡𝑎(𝑋) ~ x
Discriminator 1 or 0
Generative Adversarial Network
8
4-1. Value Function of Discriminator
Value Function = 𝔼 𝑥~𝑝 𝑑𝑎𝑡𝑎(𝑥) 𝑙𝑜𝑔𝐷 𝑥 + 𝔼 𝑧~𝑝 𝑧(𝑧) log(1 − 𝐷 𝐺(𝑧 ))
𝑝 𝑑𝑎𝑡𝑎 𝑥 에서 𝑥를 샘플링 한다는 의미 𝑝 𝑧 𝑧 에서 𝑧를 샘플링 한다는 의미
𝑥가 𝑝 𝑑𝑎𝑡𝑎(𝑥)로 부터 나왔으므로 D(x) = 1이 되도록 학습되어야 한다.
G(z)는 생성된 이미지 이므로 D(G(z)) = 0이 되도록 학습되어야 한다.
Generative Adversarial Network
9
4-1. Value Function of Discriminator
Value Function = 𝔼 𝑥~𝑝 𝑑𝑎𝑡𝑎(𝑥) 𝑙𝑜𝑔𝐷 𝑥 + 𝔼 𝑧~𝑝 𝑧(𝑧) log(1 − 𝐷 𝐺(𝑧 ))
앞에서 봤듯, 앞 항의 D(x)는 → 1이 되도록 학습을 시켜야 하므로, 𝑙𝑜𝑔𝐷 𝑥 는 학습이 진행되면서 값이 증가하게 된다.
또한, 뒤 항의 𝐷 𝐺(𝑧 )는 → 0이 되도록 학습을 시켜야 하므로, log(1 − 𝐷 𝐺(𝑧 ))는 학습이 진행되면서 값이 증가하게 된다.
즉, Discriminator 입장에서는 학습이 일어남에 따라 Value Function이 증가하는 것을 목표로 삼는다.
Generative Adversarial Network
10
4-2. Value Function of Generator
Value Function = 𝔼 𝑥~𝑝 𝑑𝑎𝑡𝑎(𝑥) 𝑙𝑜𝑔𝐷 𝑥 + 𝔼 𝑧~𝑝 𝑧(𝑧) log(1 − 𝐷 𝐺(𝑧 ))
𝑝 𝑧 𝑧 에서 𝑧를 샘플링 한다는 의미
G(z)는 생성된 이미지 이므로, Generator 입장에서는 D(G(z)) = 1이 되도록 학습되어야 한다.
Generative Adversarial Network
11
4-2. Value Function of Generator
Value Function = 𝔼 𝑧~𝑝 𝑧(𝑧) log(1 − 𝐷 𝐺(𝑧 ))
Generator의 경우, 𝐷 𝐺(𝑧 )는 → 1가 되도록 학습을 시켜야 하므로, log(1 − 𝐷 𝐺(𝑧 ))는 학습이 진행되면서
값이 감소하게 된다.
즉, Generator 입장에서는 학습이 일어남에 따라 Value Function이 감소하는 것을 목표로 하게 된다.
Generative Adversarial Network
4-3. 학습에 관한 수식 한 줄 요약!
𝑚𝑖𝑛 𝐺 𝑚𝑎𝑥 𝐷 𝑉 𝐷, 𝐺 = 𝔼 𝑥~𝑝 𝑑𝑎𝑡𝑎(𝑥) 𝑙𝑜𝑔𝐷 𝑥 + 𝔼 𝑧~𝑝 𝑧(𝑧) log(1 − 𝐷 𝐺(𝑧 ))
12
Generative Adversarial Network
13
4-4. Training Algorism of GAN
논문에서는 GAN을 Training할 때,
Discriminator는 k번 업데이트를 하고
Generator는 1번 업데이트 하라고
적혀져 있다.
(Generator를 천천히 학습시킴)
Generative Adversarial Nets(from IJ Goodfellow, 2014)
Generative Adversarial Network
14
5. Theoretical Results(Math)
① G가 fixed 되어 있을 때, 𝑫 𝑮
∗
𝒙 =
𝑷 𝒅𝒂𝒕𝒂 𝒙
𝑷 𝒅𝒂𝒕𝒂 𝒙 + 𝑷 𝒈(𝒙)
의 증명 <*는 optimal을 나타낸다.>
𝑉 𝐺, 𝐷 = 𝔼 𝑥~𝑝 𝑑𝑎𝑡𝑎(𝑥) 𝑙𝑜𝑔𝐷 𝑥 + 𝔼 𝑧~𝑝 𝑧(𝑧) log(1 − 𝐷 𝐺(𝑧 ))
=
𝑥
𝑃𝑑𝑎𝑡𝑎(𝑥) × log 𝐷 𝑥 𝑑𝑥 +
𝑧
𝑃𝑧(𝑧) × log 1 − 𝐷 𝐺 𝑧 𝑑𝑧
=
𝑥
𝑃𝑑𝑎𝑡𝑎 𝑥 × log 𝐷 𝑥 + 𝑃𝑔(𝑥) × log 1 − 𝐷 𝑥 𝑑𝑥 < 𝑏𝑦 𝑐ℎ𝑎𝑛𝑔𝑒 𝑜𝑓 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒 𝑡𝑒𝑐ℎ𝑛𝑖𝑞𝑢𝑒 >
※ change of variable technique는 아래 링크에 잘 정리되어 있습니다.
https://www.facebook.com/groups/TensorFlowKR/permalink/475819116092485/
Generative Adversarial Network
15
5. Theoretical Results(Math)
① G가 fixed 되어 있을 때, 𝑫 𝑮
∗
𝒙 =
𝑷 𝒅𝒂𝒕𝒂 𝒙
𝑷 𝒅𝒂𝒕𝒂 𝒙 + 𝑷 𝒈(𝒙)
의 증명
𝑉 𝐺, 𝐷 =
𝑥
𝑃𝑑𝑎𝑡𝑎 𝑥 × log 𝐷 𝑥 + 𝑃𝑔(𝑥) × log 1 − 𝐷 𝑥 𝑑𝑥 < 𝑏𝑦 𝑐ℎ𝑎𝑛𝑔𝑒 𝑜𝑓 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒 𝑡𝑒𝑐ℎ𝑛𝑖𝑞𝑢𝑒 >
G가 고정되어 있을 때 D는 Value function을 최대화 하도록 학습이 되어야 하니
𝑃𝑑𝑎𝑡𝑎 𝑥 × log 𝐷 𝑥 + 𝑃𝑔(𝑥) × log 1 − 𝐷 𝑥 값이 최대가 되도록 D(x)가 학습이 되어야한다.
따라서, 간단한 미분을 이용하면(아래 사진 참조) , 𝐷 𝐺
∗
𝑥 =
𝑃 𝑑𝑎𝑡𝑎 𝑥
𝑃 𝑑𝑎𝑡𝑎 𝑥 + 𝑃 𝑔(𝑥)
라는 것을 쉽게 증명해 낼 수 있다.
Generative Adversarial Nets(from IJ Goodfellow, 2014)
Generative Adversarial Network
16
5. Theoretical Results(Math)
② C(G)의 정의와 Global optima 조건에 대한 증명
𝐶 𝐺 = 𝑚𝑎𝑥 𝐷 𝑉 𝐺, 𝐷
= 𝔼 𝑥~𝑃 𝑑𝑎𝑡𝑎
log 𝐷 𝐺
∗
𝑥 + 𝔼 𝑧~𝑃𝑧
[log 1 − 𝐷 𝐺
∗
𝐺(𝑧 )]
= 𝔼 𝑥~𝑃 𝑑𝑎𝑡𝑎
log 𝐷 𝐺
∗
𝑥 + 𝔼 𝑥~𝑃 𝑔
[log 1 − 𝐷 𝐺
∗
(𝑥 )] < 𝑏𝑦 𝑐ℎ𝑎𝑛𝑔𝑒 𝑜𝑓 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒 𝑡𝑒𝑐ℎ𝑛𝑖𝑞𝑢𝑒 >
= 𝔼 𝑥~𝑃 𝑑𝑎𝑡𝑎
[log
𝑃 𝑑𝑎𝑡𝑎 𝑥
𝑃 𝑑𝑎𝑡𝑎 𝑥 + 𝑃 𝑔 𝑥
] + 𝔼 𝑥~𝑃 𝑔
[log
𝑃 𝑔 𝑥
𝑃 𝑑𝑎𝑡𝑎 𝑥 + 𝑃 𝑔 𝑥
]
= − log 4 + 𝔼 𝑥~𝑃 𝑑𝑎𝑡𝑎
[log
𝑃 𝑑𝑎𝑡𝑎 𝑥
𝑃 𝑑𝑎𝑡𝑎 𝑥 + 𝑃 𝑔 𝑥
] + log2 + 𝔼 𝑥~𝑃 𝑔
[log
𝑃 𝑔 𝑥
𝑃 𝑑𝑎𝑡𝑎 𝑥 + 𝑃 𝑔 𝑥
] + log2
고등학교 때 배운 평균의 성질에 의해 상수를 기댓값 안으로 집어넣을 수 있다.
= − log 4 + 𝔼 𝑥~𝑃 𝑑𝑎𝑡𝑎
[log 𝑃𝑑𝑎𝑡𝑎 𝑥 ×
2
𝑃 𝑑𝑎𝑡𝑎 𝑥 + 𝑃 𝑔 𝑥
] + 𝔼 𝑥~𝑃 𝑔
[log 𝑃𝑔 𝑥 ×
2
𝑃 𝑑𝑎𝑡𝑎 𝑥 + 𝑃 𝑔 𝑥
]
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.
Generative Adversarial Network
18
5. Theoretical Results(Math)
③ Convergence of Training Algorism
Generative Adversarial Nets(from IJ Goodfellow, 2014)
Generative Adversarial Network
19
5. Theoretical Results(Math)
③ Convergence of Training Algorism
이전의 슬라이드는 13번 슬라이드에 있는 Algorism 1을 사용하면 Value Function을 Global Optima에
수렴시킬 수 있다는 것을 수학적으로 증명하고 있다.(수학적으로 엄밀하게 진행하지는 않았다고 한다…)
(※ 위의 내용을 확실하게 이해하려면 Vector Space와 Convex Optimization에 대한 기본 지식이 필요한 것 같은데,
저는 잘 모르겠어서 이 부분에 대해서는 언급을 하지 않겠습니다.)
Generative Adversarial Network
20Generative Adversarial Nets(from IJ Goodfellow, 2014)
Thank you!
21

More Related Content

PPTX
Variational AutoEncoder(VAE)
PDF
Lecture 2: Supervised Learning
PDF
Lecture 4: Neural Networks I
PDF
Lecture 3: Unsupervised Learning
PDF
Variational Auto Encoder, Generative Adversarial Model
PPTX
GAN with Mathematics
PDF
RLCode와 A3C 쉽고 깊게 이해하기
PDF
05. k means clustering ( k-means 클러스터링)
Variational AutoEncoder(VAE)
Lecture 2: Supervised Learning
Lecture 4: Neural Networks I
Lecture 3: Unsupervised Learning
Variational Auto Encoder, Generative Adversarial Model
GAN with Mathematics
RLCode와 A3C 쉽고 깊게 이해하기
05. k means clustering ( k-means 클러스터링)

What's hot (20)

PPTX
Deep learning study 1
PDF
차원축소 훑어보기 (PCA, SVD, NMF)
PPTX
해커에게 전해들은 머신러닝 #1
PDF
08. spectal clustering
PPTX
Q Learning과 CNN을 이용한 Object Localization
PDF
Auto-Encoders and Variational Auto-Encoders
PPTX
Dsh data sensitive hashing for high dimensional k-nn search
PPTX
해커에게 전해들은 머신러닝 #3
PDF
Adversarial Attack in Neural Machine Translation
PPTX
Focal loss의 응용(Detection & Classification)
PPTX
해커에게 전해들은 머신러닝 #4
PDF
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
PDF
06. graph mining
PPTX
Anomaly Detection with GANs
PDF
02. naive bayes classifier revision
PDF
Deep Learning from scratch 5장 : backpropagation
PDF
강화 학습 기초 Reinforcement Learning an introduction
PDF
Deep Learning from scratch 3장 : neural network
Deep learning study 1
차원축소 훑어보기 (PCA, SVD, NMF)
해커에게 전해들은 머신러닝 #1
08. spectal clustering
Q Learning과 CNN을 이용한 Object Localization
Auto-Encoders and Variational Auto-Encoders
Dsh data sensitive hashing for high dimensional k-nn search
해커에게 전해들은 머신러닝 #3
Adversarial Attack in Neural Machine Translation
Focal loss의 응용(Detection & Classification)
해커에게 전해들은 머신러닝 #4
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
06. graph mining
Anomaly Detection with GANs
02. naive bayes classifier revision
Deep Learning from scratch 5장 : backpropagation
강화 학습 기초 Reinforcement Learning an introduction
Deep Learning from scratch 3장 : neural network
Ad

Similar to Generative adversarial network (20)

PPTX
Neural network (perceptron)
PDF
04. logistic regression ( 로지스틱 회귀 )
PDF
지도 학습, 함수 근사와 최적화 문제: 데이터는 우악하니 데이터 사이언스라도 우아하게
PDF
정수론적 알고리즘 - Sogang ICPC Team, 2020 Winter
PDF
Chapter 19 Variational Inference
PDF
2016 UCPC 풀이
PDF
자료구조5보고서
PDF
Project#5 최단거리 찾기 D0 Hwp
PDF
Deep Learning from scratch 4장 : neural network learning
PDF
03. linear regression
PPTX
Linear regression
PDF
Gaussian Mixture Model
PPTX
Eigendecomposition and pca
PDF
십분딥러닝_7_GANs
PDF
Computational Complexity
PDF
Random walk, brownian motion, black scholes equation
PPTX
Multinomial classification and application of ML
PPTX
[Probability for machine learning]
PPTX
Number theory
Neural network (perceptron)
04. logistic regression ( 로지스틱 회귀 )
지도 학습, 함수 근사와 최적화 문제: 데이터는 우악하니 데이터 사이언스라도 우아하게
정수론적 알고리즘 - Sogang ICPC Team, 2020 Winter
Chapter 19 Variational Inference
2016 UCPC 풀이
자료구조5보고서
Project#5 최단거리 찾기 D0 Hwp
Deep Learning from scratch 4장 : neural network learning
03. linear regression
Linear regression
Gaussian Mixture Model
Eigendecomposition and pca
십분딥러닝_7_GANs
Computational Complexity
Random walk, brownian motion, black scholes equation
Multinomial classification and application of ML
[Probability for machine learning]
Number theory
Ad

More from 강민국 강민국 (10)

PPTX
PR-190: A Baseline For Detecting Misclassified and Out-of-Distribution Examp...
PDF
Deeppermnet
PDF
[Pr12] deep anomaly detection using geometric transformations
PDF
[Pr12] self supervised gan
PDF
Anomaly detection
PDF
Deep Feature Consistent VAE
PPTX
Deep learning overview
PPTX
Restricted boltzmann machine
PPTX
Backpropagation
PR-190: A Baseline For Detecting Misclassified and Out-of-Distribution Examp...
Deeppermnet
[Pr12] deep anomaly detection using geometric transformations
[Pr12] self supervised gan
Anomaly detection
Deep Feature Consistent VAE
Deep learning overview
Restricted boltzmann machine
Backpropagation

Generative adversarial network

  • 1. Generative Adversarial Network Kang, Min-Guk 1 N(0,1) ~ z Dimension<100> Generator G(z) 𝑃𝑑𝑎𝑡𝑎(𝑋) ~ x Discriminator 1 or 0
  • 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)
  • 7. Generative Adversarial Network 7 3. Model of GAN N(0,1) ~ z Dimension<100> Generator G(z) 𝑃𝑑𝑎𝑡𝑎(𝑋) ~ x Discriminator 1 or 0
  • 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이 감소하는 것을 목표로 하게 된다.
  • 12. Generative Adversarial Network 4-3. 학습에 관한 수식 한 줄 요약! 𝑚𝑖𝑛 𝐺 𝑚𝑎𝑥 𝐷 𝑉 𝐷, 𝐺 = 𝔼 𝑥~𝑝 𝑑𝑎𝑡𝑎(𝑥) 𝑙𝑜𝑔𝐷 𝑥 + 𝔼 𝑧~𝑝 𝑧(𝑧) log(1 − 𝐷 𝐺(𝑧 )) 12
  • 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)
  • 14. Generative Adversarial Network 14 5. Theoretical Results(Math) ① G가 fixed 되어 있을 때, 𝑫 𝑮 ∗ 𝒙 = 𝑷 𝒅𝒂𝒕𝒂 𝒙 𝑷 𝒅𝒂𝒕𝒂 𝒙 + 𝑷 𝒈(𝒙) 의 증명 <*는 optimal을 나타낸다.> 𝑉 𝐺, 𝐷 = 𝔼 𝑥~𝑝 𝑑𝑎𝑡𝑎(𝑥) 𝑙𝑜𝑔𝐷 𝑥 + 𝔼 𝑧~𝑝 𝑧(𝑧) log(1 − 𝐷 𝐺(𝑧 )) = 𝑥 𝑃𝑑𝑎𝑡𝑎(𝑥) × log 𝐷 𝑥 𝑑𝑥 + 𝑧 𝑃𝑧(𝑧) × log 1 − 𝐷 𝐺 𝑧 𝑑𝑧 = 𝑥 𝑃𝑑𝑎𝑡𝑎 𝑥 × log 𝐷 𝑥 + 𝑃𝑔(𝑥) × log 1 − 𝐷 𝑥 𝑑𝑥 < 𝑏𝑦 𝑐ℎ𝑎𝑛𝑔𝑒 𝑜𝑓 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒 𝑡𝑒𝑐ℎ𝑛𝑖𝑞𝑢𝑒 > ※ change of variable technique는 아래 링크에 잘 정리되어 있습니다. https://www.facebook.com/groups/TensorFlowKR/permalink/475819116092485/
  • 15. Generative Adversarial Network 15 5. Theoretical Results(Math) ① G가 fixed 되어 있을 때, 𝑫 𝑮 ∗ 𝒙 = 𝑷 𝒅𝒂𝒕𝒂 𝒙 𝑷 𝒅𝒂𝒕𝒂 𝒙 + 𝑷 𝒈(𝒙) 의 증명 𝑉 𝐺, 𝐷 = 𝑥 𝑃𝑑𝑎𝑡𝑎 𝑥 × log 𝐷 𝑥 + 𝑃𝑔(𝑥) × log 1 − 𝐷 𝑥 𝑑𝑥 < 𝑏𝑦 𝑐ℎ𝑎𝑛𝑔𝑒 𝑜𝑓 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒 𝑡𝑒𝑐ℎ𝑛𝑖𝑞𝑢𝑒 > G가 고정되어 있을 때 D는 Value function을 최대화 하도록 학습이 되어야 하니 𝑃𝑑𝑎𝑡𝑎 𝑥 × log 𝐷 𝑥 + 𝑃𝑔(𝑥) × log 1 − 𝐷 𝑥 값이 최대가 되도록 D(x)가 학습이 되어야한다. 따라서, 간단한 미분을 이용하면(아래 사진 참조) , 𝐷 𝐺 ∗ 𝑥 = 𝑃 𝑑𝑎𝑡𝑎 𝑥 𝑃 𝑑𝑎𝑡𝑎 𝑥 + 𝑃 𝑔(𝑥) 라는 것을 쉽게 증명해 낼 수 있다. Generative Adversarial Nets(from IJ Goodfellow, 2014)
  • 16. Generative Adversarial Network 16 5. Theoretical Results(Math) ② C(G)의 정의와 Global optima 조건에 대한 증명 𝐶 𝐺 = 𝑚𝑎𝑥 𝐷 𝑉 𝐺, 𝐷 = 𝔼 𝑥~𝑃 𝑑𝑎𝑡𝑎 log 𝐷 𝐺 ∗ 𝑥 + 𝔼 𝑧~𝑃𝑧 [log 1 − 𝐷 𝐺 ∗ 𝐺(𝑧 )] = 𝔼 𝑥~𝑃 𝑑𝑎𝑡𝑎 log 𝐷 𝐺 ∗ 𝑥 + 𝔼 𝑥~𝑃 𝑔 [log 1 − 𝐷 𝐺 ∗ (𝑥 )] < 𝑏𝑦 𝑐ℎ𝑎𝑛𝑔𝑒 𝑜𝑓 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒 𝑡𝑒𝑐ℎ𝑛𝑖𝑞𝑢𝑒 > = 𝔼 𝑥~𝑃 𝑑𝑎𝑡𝑎 [log 𝑃 𝑑𝑎𝑡𝑎 𝑥 𝑃 𝑑𝑎𝑡𝑎 𝑥 + 𝑃 𝑔 𝑥 ] + 𝔼 𝑥~𝑃 𝑔 [log 𝑃 𝑔 𝑥 𝑃 𝑑𝑎𝑡𝑎 𝑥 + 𝑃 𝑔 𝑥 ] = − log 4 + 𝔼 𝑥~𝑃 𝑑𝑎𝑡𝑎 [log 𝑃 𝑑𝑎𝑡𝑎 𝑥 𝑃 𝑑𝑎𝑡𝑎 𝑥 + 𝑃 𝑔 𝑥 ] + log2 + 𝔼 𝑥~𝑃 𝑔 [log 𝑃 𝑔 𝑥 𝑃 𝑑𝑎𝑡𝑎 𝑥 + 𝑃 𝑔 𝑥 ] + log2 고등학교 때 배운 평균의 성질에 의해 상수를 기댓값 안으로 집어넣을 수 있다. = − log 4 + 𝔼 𝑥~𝑃 𝑑𝑎𝑡𝑎 [log 𝑃𝑑𝑎𝑡𝑎 𝑥 × 2 𝑃 𝑑𝑎𝑡𝑎 𝑥 + 𝑃 𝑔 𝑥 ] + 𝔼 𝑥~𝑃 𝑔 [log 𝑃𝑔 𝑥 × 2 𝑃 𝑑𝑎𝑡𝑎 𝑥 + 𝑃 𝑔 𝑥 ]
  • 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에 대한 기본 지식이 필요한 것 같은데, 저는 잘 모르겠어서 이 부분에 대해서는 언급을 하지 않겠습니다.)
  • 20. Generative Adversarial Network 20Generative Adversarial Nets(from IJ Goodfellow, 2014)