Generative Model(Variational Auto Encoder, Generative Adversarial Model)
References:
오토인코더의 모든 것 by 이활석 (NAVER)
Youtube: https://youtu.be/rNh2CrTFpm4, Slideshare: https://www.slideshare.net/NaverEngineering/ss-96581209
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기 by 최윤제 (NAVER)
Youtube: https://youtu.be/odpjk7tGY0, Slideshare: https://www.slideshare.net/NaverEngineering/1-gangenerative-adversarial-network
Theory and Application of Generative Adversarial Networks by Ming-Yu Liu, Julie Bernauer, Jan Kautz (NVIDIA)
Youtube: https://youtu.be/KudkR-fFu_8, Slideshare: https://www.slideshare.net/mlreview/tutorial-on-theory-and-application-of-generative-adversarial-networks
Tutorial on Variational Autoencoders by Carl Doersch (Carnegie Mellon / UC Berkeley)
Arxiv: https://arxiv.org/pdf/1606.05908.pdf
Generative Adversarial Nets (2014) NIPS by Goodfellow et al
https://papers.nips.cc/paper/5423-generative-adversarial-nets.pdf
6. Introduction
Natural data in high dimensional spaces concentrates close to lower dimensional manifolds.
Probability density decreases very rapidly when moving away from the supporting manifold.
Manifold Hypothesis (assumption)
22. Variational Autoencoders (VAE)
결국 Latent Model 은 어떠한 z를 통해서 y를 찾아내는 것
𝑓(𝑧1)
𝑓(𝑧2)
𝑓(𝑧3)
만약 𝑧1, 𝑧2, 𝑧3 가 서로 아무 관계 없는 임의의 숫자라면 Z값을 찾아내는 게 의
미가 있을까? -> 그러한 모델은 의미가 없다. 만들어 내봤자, Target과 똑같은
것만 만듬
우리는 새로운 데이터를 원함
왜? 분명 같은 숫자 간에는 무언가 관계가 있을 테니까 그것을 생성하게 해줄 임
의의 Z도 무언가 관계가 있으면 좋을 것이다. 더불어 Z간의 관계를 알 수 있다면
우리는 그것을 Control해 Y값도 변화시킬 수 있을 것이다.
27. Variational Autoencoders (VAE)
𝜃 = 𝑎𝑟𝑔max
𝜃
ෑ 𝑃 𝜃(𝑥𝑖) = 𝑎𝑟𝑔max
𝜃
𝑃 𝜃(𝑥1, 𝑥2 , … … … , 𝑥 𝑛−1, 𝑥 𝑛)
x를 iid한 Data Set X에서 sampling한 한 개의 데이터라고 할 때
𝜃 는 𝑥1, 𝑥2 , … … … , 𝑥 𝑛−1, 𝑥 𝑛각각의 데이터 셋들이 모두 잘 나오게 해야 하므로
확률 ς 𝑃 𝜃(𝑥𝑖) 를 최대화 하는 값이어야 한다.
29. Variational Autoencoders (VAE)
Multivariate cases − log 𝑝 𝑦𝑖 𝑓𝜃 𝑥𝑖
Gaussian distribution Categorical distribution
𝑓𝜃 𝑥𝑖 = 𝜇𝑖 𝑓𝜃 𝑥𝑖 = 𝑝𝑖
Distribution estimation
𝑥𝑖
𝑝 𝑦𝑖 𝑥𝑖
Likelihood값을 예측하는 것이 아니라,
Likelihood의 파라미터값을 예측하는 것이
다.
𝑥𝑖𝑥𝑖
Mean Squared Error Cross-entropy
30. Variational Autoencoders (VAE)
If 𝑝 𝑥 𝑔 𝜃(𝑧) = 𝒩 𝑥 𝑔 𝜃 𝑧 , 𝜎2 ∗ 𝐼 , the negative log probability
of X is proportional squared Euclidean distance between 𝑔 𝜃(𝑧) and
𝑥.
𝑥 : Figure 3(a)
𝑧 𝑏𝑎𝑑 → 𝑔 𝜃 𝑧 𝑏𝑎𝑑 : Figure 3(b)
𝑧 𝑏𝑎𝑑 → 𝑔 𝜃 𝑧 𝑔𝑜𝑜𝑑 : Figure 3(c) (identical to x but shifted down and
to the right by half a pixel)
𝑥 − 𝑧 𝑏𝑎𝑑
2 < 𝑥 − 𝑧 𝑔𝑜𝑜𝑑
2
→ 𝑝 𝑥 𝑔 𝜃(𝑧 𝑏𝑎𝑑) >𝑝 𝑥 𝑔 𝜃(𝑧 𝑔𝑜𝑜𝑑)
Solution 1: we should set the 𝜎 hyperparameter of our Gaussian
distribution such that this kind of erroroneous digit does not
contribute to p(X) → hard..
Solution 2: we would likely need to sample many thousands of
digits from 𝑧 𝑔𝑜𝑜𝑑 → hard..
𝑝(𝑥) ≈
𝑖
𝑝 𝑥 𝑔 𝜃 𝑧𝑖 𝑝(𝑧𝑖)
Question: Why don’t we use maximum likelihood estimation directly?
생성기에 대한 확률모델을 가우시안으로 할 경우,
MSE관점에서 가까운 것이 더 p(x)에 기여하는 바가
크다.
MSE가 더 작은 이미지가 의미적으로도 더 가까운 경
우가 아닌 이미지들이 많기 때문에 현실적으로 올바
른 확률값을 구하기가 어렵다.
33. Variational Autoencoders (VAE)
VI란 사후확률(posterior) 분포 p(z|x)를 다루기 쉬운 확률분포 q(z)로 근사(approximation)하는 걸 말합
니다. 사후확률 분포를 계산하는게 불가능에 가까울 정도로 어려운 경우가 많기 때문
34. Variational Autoencoders (VAE)
사후확률 분포 p(z|x)와 q(z) 사이의 KLD를 계산하고, KLD가 줄어드는 쪽으로 q(z)를 조금씩 업데이
트하는 과정을 반복하면 사후확률을 잘 근사하는 q∗(z)를 얻게 될 것이라는 게 VI의 핵심 아이디어.
60. References
오토인코더의 모든 것 by 이활석 (NAVER)
Youtube: https://youtu.be/rNh2CrTFpm4, Slideshare: https://www.slideshare.net/NaverEngineering/ss-96581209
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기 by 최윤제 (NAVER)
Youtube: https://youtu.be/odpjk7tGY0, Slideshare: https://www.slideshare.net/NaverEngineering/1-gangenerative-adversarial-
network
Theory and Application of Generative Adversarial Networks by Ming-Yu Liu, Julie Bernauer, Jan Kautz (NVIDIA)
Youtube: https://youtu.be/KudkR-fFu_8, Slideshare: https://www.slideshare.net/mlreview/tutorial-on-theory-and-application-of-
generative-adversarial-networks
Tutorial on Variational Autoencoders by Carl Doersch (Carnegie Mellon / UC Berkeley)
Arxiv: https://arxiv.org/pdf/1606.05908.pdf
Generative Adversarial Nets (2014) NIPS by Goodfellow et al
https://papers.nips.cc/paper/5423-generative-adversarial-nets.pdf