Weitere ähnliche Inhalte Ähnlich wie 개념 이해가 쉬운 Variational Autoencoder (VAE) (20) 개념 이해가 쉬운 Variational Autoencoder (VAE)4. 4
Autoencoder
𝑓1: 𝑥 → 𝑧 𝑓2: 𝑧 → 𝑥
encoder decoder
𝒙 𝒙
입력이 같으면,
출력도 같다.
deterministic function
non-deterministic하게 하고 싶다.
𝑧1
𝑧2
𝑧3
17. 17
𝑝(𝑧|𝑥) 𝑞(𝑧|𝑥)
이런 모양인지 조차도 모르는 분포
모양은 이런데,
좌우 위치와 홀쭉인지 뚱뚱인지 아직 정해지지 않은 분포
이 둘의 차이는 어떻게 계산하나?
𝜇 𝜎
이 둘을 조정해서 왼쪽 분포와
그나마 유사하게 만들어 줄 수 있다.
KL divergence 라는 식이 있다.
(두 분포의 차이를 계산하는 식)
이 식은 엔트로피 항으로 이루어 진다.
엔트로피는 정보량의 평균이다.
정보량은 뉴스(확률사건)의 가치를 계산하는 식
KL divergence 식을 손실함수로 사용하면 된다!
18. 선수지식
𝑝 𝑥, 𝑦 = 𝑝 𝑥 𝑝 𝑦|𝑥 = 𝑝 𝑦 𝑝(𝑥|𝑦)
𝑝 𝑥 =
𝑦
𝑝 𝑥, 𝑦
𝐸 𝑋 =
𝑥
𝑝 𝑥 𝑥 𝐸 𝑓 𝑋 =
𝑥
𝑝 𝑥 𝑓 𝑥
18
𝐸𝑝(𝑥)[𝑋]
joint pdf, marginal pdf, conditional pdf
random variable, 𝑋
𝑝 𝑋 = 𝑥 , 𝑝𝑋 𝑥 , 𝑝(𝑥)
19. Bayes’ Rule
𝑝 𝑧|𝑥 =
𝑝 𝑥, 𝑧
𝑝 𝑥
=
𝑝 𝑥|𝑧 𝑝 𝑧
𝑝 𝑥
=
𝑝 𝑥|𝑧 𝑝 𝑧
σ𝑧 𝑝 𝑥, 𝑧
=
𝑝 𝑥|𝑧 𝑝 𝑧
σ𝑧 𝑝 𝑥|𝑧 𝑝 𝑧
19
𝑝 𝑥, 𝑧 = 𝑝 𝑥 𝑝 𝑧|𝑥
20. Bayesian Inference
𝑝 𝒛|𝑥 =
𝑝 𝑥|𝒛 𝑝 𝒛
𝑝 𝑥
posterior
likelihood prior
Posterior(사후확률) 구하기
20
관찰 값
다루기 쉬운 분포로 가정 ⋯ 𝑝 𝑥|𝒛 𝑝 𝒛
계산량이 너무 많다.
( 𝑚𝑛 )
𝑛 = 𝒛
𝑚
𝑝 𝑥 =
𝒛
𝑝 𝑥|𝒛 𝑝 𝒛
=
c. f) classification 𝑝 𝒛|𝑥 ∝ 𝑝 𝑥|𝒛 𝑝 𝒛
관찰 데이터에 대한 분포 구할 수 있나?
intractable
22. 𝐾𝐿(𝑝| 𝑞 = − න 𝑝 𝑥 𝑙𝑜𝑔𝑞(𝑥)
𝑑𝑥 − − න 𝑝 𝑥 𝑙𝑜𝑔𝑝(𝑥)
𝑑𝑥 = − න 𝑝 𝑥 log
𝑞 𝑥
𝑝 𝑥
𝑑𝑥
𝑝(𝑥)에 대한
𝑝(𝑥)의 엔트로피
𝑝(𝑥)에 대한
𝑞(𝑥)의 엔트로피
22
𝑤𝑖𝑡ℎ 𝑟𝑒𝑠𝑝𝑒𝑐𝑡 𝑡𝑜
𝐾𝐿(𝑝| 𝑞 ≥ 0
𝐾𝐿(𝑝| 𝑞 ≠ 𝐾𝐿(𝑞| 𝑝
> 0
𝑝 𝑥 − 𝑞 𝑥 ≈
𝑞(𝑥)
𝑝(𝑥)
가중평균 구한 것
두 분포의 엔트로피가,
한 분포의 엔트로피 보다는 크겠지
엔트로피를 활용해 보자
23. KL-divergence
23
두 확률 분포의 어떤 차이
두 분포의 차이를 어떤 식으로 계산하면 좋을까?
credit: https://wiseodd.github.io/techblog/2016/12/21/forward-reverse-kl/
24. Variational Inference
𝑝 𝑧|𝑥
𝑞 𝑧|𝑥
구하기 어렵다.
꿩 대신 닭
변이
우리가 알고 있는 쉬운 분포; 정규분포로 대치하자.
𝑝 𝑧|𝑥 ≈ 𝑞 𝑧|𝑥
조건:
KL 최소화
min KL 𝑞 𝑧|𝑥 ||𝑝 𝑧|𝑥
24
Posterior 구하기
대체(변이) 사후확률 구함
𝑞 𝑧|𝑥
Reverse KL을 선호
VI : biased, low variance
MC: unbiased, high variance
25. 𝐾𝐿 𝑞 𝑧|𝑥 ||𝑝 𝑧|𝑥 = − 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑧|𝑥
𝑞 𝑧|𝑥
= − 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑝 𝑥
𝑞 𝑧|𝑥
1
= − 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
1
𝑝 𝑥
= − 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
+ 𝑙𝑜𝑔
1
𝑝 𝑥
= − 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
+
𝑧
𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥
= − 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
+ 𝑙𝑜𝑔 𝑝 𝑥
𝑧
𝑞 𝑧|𝑥
= − 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
+ 𝑙𝑜𝑔 𝑝 𝑥
1
𝑙𝑜𝑔 𝑝 𝑥 = 𝐾𝐿 𝑞 𝑧|𝑥 ||𝑝 𝑧|𝑥 + 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
𝑥 is given, then it is fixed
25
https://www.youtube.com/watch?v=uaaqyVS9-rM
𝑙𝑜𝑔 𝑝 𝑥 ≥
최소화
해야함
최대화
하면 된다.
꿩 대신 닭
≥ 0
𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
𝑥 in black: a random variable
𝑥 in gray: a fixed value of the random variable 𝑥
26. 𝐾𝐿 𝑞 𝑧|𝑥 ||𝑝 𝑧|𝑥 = − 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑧|𝑥
𝑞 𝑧|𝑥
= − 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑝 𝑥
𝑞 𝑧|𝑥
1
= − 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
1
𝑝 𝑥
= − 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
+ 𝑙𝑜𝑔
1
𝑝 𝑥
= − 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
+
𝑧
𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥
= − 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
+ 𝑙𝑜𝑔 𝑝 𝑥
𝑧
𝑞 𝑧|𝑥
= − 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
+ 𝑙𝑜𝑔 𝑝 𝑥
1
𝑙𝑜𝑔 𝑝 𝑥 = 𝐾𝐿 𝑞 𝑧|𝑥 ||𝑝 𝑧|𝑥 + 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
𝑥 is given, then it is fixed
26
https://www.youtube.com/watch?v=uaaqyVS9-rM
≥ 0
lower bound
𝑙𝑜𝑔 𝑝 𝑥 ≥
variational
최소화
해야함
최대화
하면 된다.
꿩 대신 닭
Log-Likelihood
크게 하는 것
𝑥 in black: a random variable
𝑥 in gray: a fixed value of the random variable 𝑥
27. 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
= 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥|𝑧 𝑝 𝑧
𝑞 𝑧|𝑥
= 𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 + 𝑙𝑜𝑔
𝑝 𝑧
𝑞 𝑧|𝑥
= 𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 + 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑧
𝑞 𝑧|𝑥
= 𝐸𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 − 𝐾𝐿 𝑞 𝑧|𝑥 ||𝑝 𝑧
27
Evidence Lower BOund (ELBO)
lower bound
𝑝 𝑧|𝑥 𝑝 𝑥
when 𝑥 is given
𝑙𝑜𝑔 𝑝 𝑥 ≥
Log-Likelihood
크게 하는 것
28. 28
Z
X
𝑝(𝑥|𝑧) 𝑞(𝑧|𝑥)
𝑞 ∶ 𝑥 → 𝑧
𝑝 ∶ 𝑧 → 𝑥
𝑞(𝑧|𝑥)
𝑥
𝑧
𝑝(𝑥|𝑧) ො
𝑥
−𝐸𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 + 𝐾𝐿 𝑞 𝑧|𝑥 ||𝑝 𝑧
deterministic
function
= neural network
을 도입
그냥 신경망;
일반적인 복원 에러를 로스로 사용
Cross Entropy Loss
Loss for a given 𝑥:
≈ 𝑝(𝑧|𝑥)
30. Loss Function 계산
−𝐸𝑞 𝑧|𝑥𝑖
𝑙𝑜𝑔 𝑝 𝑥𝑖|𝑧 + 𝐾𝐿 𝑞 𝑧|𝑥𝑖 ||𝑝 𝑧
30
두 분포 모두 가우시안 가정
reconstruction term
regularizer term
31. 베르누이 분포로 간주
−𝐸𝑞 𝑧|𝑥𝑖
𝑙𝑜𝑔 𝑝 𝑥𝑖|𝑧 + 𝐾𝐿 𝑞 𝑧|𝑥𝑖 ||𝑝 𝑧
≈
1
𝐿
𝑙𝑜𝑔 𝑝 𝑥𝑖|𝑧𝑙
≈ 𝑙𝑜𝑔 𝑝 𝑥𝑖|𝑧1
= 𝑙𝑜𝑔 ෑ
𝑗=1
𝑁
𝑝 𝑥𝑖,𝑗|𝑧1
=
𝑗=1
𝑁
𝑙𝑜𝑔 𝑝 𝑥𝑖,𝑗|𝑧1
=
𝑗=1
𝑁
𝑙𝑜𝑔 𝑝𝑗
𝑥𝑖,𝑗
∙ 1 − 𝑝𝑗
1−𝑥𝑖,𝑗
=
𝑗=1
𝑁
𝑥𝑖,𝑗𝑙𝑜𝑔 𝑝𝑗 + 1 − 𝑥𝑖,𝑗 𝑙𝑜𝑔 1 − 𝑝𝑗
Monte Carlo Sampling
경험적
31
network output
cross-entropy
network input (target)
N
𝑝𝑗
j번째 노드 출력이 1일 확률
32. 가우시안 분포로 간주
−𝐸𝑞 𝑧|𝑥𝑖
𝑙𝑜𝑔 𝑝 𝑥𝑖|𝑧 + 𝐾𝐿 𝑞 𝑧|𝑥𝑖 ||𝑝 𝑧
≈
1
𝐿
𝑙𝑜𝑔 𝑝 𝑥𝑖|𝑧𝑙
≈ 𝑙𝑜𝑔 𝑝 𝑥𝑖|𝑧1
= 𝑙𝑜𝑔 𝑁 𝜇𝑖, 𝜎𝑖
2
𝐼
= −
𝑗=1
𝑁
1
2
𝑙𝑜𝑔 𝜎𝑖,𝑗
2
+
𝑥𝑖,𝑗 − 𝜇𝑖,𝑗
2
2𝜎𝑖,𝑗
2
Monte Carlo Sampling
32
𝑙𝑜𝑔 𝑁 𝜇𝑖, 𝜎2
𝐼
∝ −
𝑗=1
𝑁
𝑥𝑖,𝑗 − 𝜇𝑖,𝑗
2
경험적
분산이 모두 같다고 가정
mean squared loss
N
𝜇𝑗
2N
𝜇𝑗
𝜎𝑗
?
33. KL regularizer term
33
𝐾𝐿 𝑁 𝑢𝑖, 𝜎𝑖
2
𝐼 ||𝑁 0, 𝐼
=
1
2
𝑡𝑟 𝜎𝑖
2
𝐼 + 𝜇𝑖
𝑇
𝜇𝑖 − 𝐾 − 𝑙𝑜𝑔 ෑ
𝑘=1
𝐾
𝜎𝑖,𝑘
2
=
1
2
𝑘=1
𝐾
𝜎𝑖,𝑘
2
+
𝑘=1
𝐾
𝜇𝑖,𝑘
2
−
𝑘=1
𝐾
1 −
𝑘=1
𝐾
𝑙𝑜𝑔 𝜎𝑖,𝑘
2
=
1
2
𝑘=1
𝐾
𝜎𝑖,𝑘
2
+ 𝜇𝑖,𝑘
2
− 𝑙𝑜𝑔 𝜎𝑖,𝑘
2
− 1
𝑥𝑖에 따라 달라지는 분포
초간단 분포
𝐾개
𝐾개
𝑞 𝑧|𝑥𝑖
covariance 0 가정,
𝑢𝑖 K개, 𝜎𝑖
2
K개
−𝐸𝑞 𝑧|𝑥𝑖
𝑙𝑜𝑔 𝑝 𝑥𝑖|𝑧 + 𝐾𝐿 𝑞 𝑧|𝑥𝑖 ||𝑝 𝑧
=
1
2
𝑘=1
𝐾
exp(log _𝜎𝑖,𝑘
2
) + 𝜇𝑖,𝑘
2
− log _𝜎𝑖,𝑘
2
− 1
구현에서는…
34. Loss for a given 𝑥𝑖
34
𝐿𝑖 𝜙, 𝜃, 𝑥𝑖 = −
𝑗=1
𝑁
𝑥𝑖,𝑗𝑙𝑜𝑔 𝑥′𝑗 + 1 − 𝑥𝑖,𝑗 𝑙𝑜𝑔 1 − 𝑥′𝑗 +
1
2
𝑘=1
𝐾
𝜎𝑖,𝑘
2
+ 𝜇𝑖,𝑘
2
− 𝑙𝑜𝑔 𝜎𝑖,𝑘
2
− 1
𝐿𝑖 𝜙, 𝜃, 𝑥𝑖 =
𝑗=1
𝑁
1
2
𝑙𝑜𝑔 𝜎𝑖,𝑗
2
+
𝑥𝑖,𝑗 − 𝜇𝑖,𝑗
2
2𝜎𝑖,𝑗
2 +
1
2
𝑘=1
𝐾
𝜎𝑖,𝑘
2
+ 𝜇𝑖,𝑘
2
− 𝑙𝑜𝑔 𝜎𝑖,𝑘
2
− 1
𝐿𝑖 𝜙, 𝜃, 𝑥𝑖 =
𝑗=1
𝑁
𝑥𝑖,𝑗 − 𝜇𝑖,𝑗
2
+
1
2
𝑘=1
𝐾
𝜎𝑖,𝑘
2
+ 𝜇𝑖,𝑘
2
− 𝑙𝑜𝑔 𝜎𝑖,𝑘
2
− 1
분산이 모두 같다고 가정
59. 추가 학습
59
hidden code learns
to represent the style of the image
• Conditional VAE
• 𝛽 −VAE
• Adversarial Autoencoder
• VQ-VAE
https://arxiv.org/pdf/1511.05644.pdf
61. 추가 학습
61
• Conditional VAE
• 𝛽 −VAE
• Adversarial Autoencoder
• VQ-VAE
https://proceedings.neurips.cc/paper/2017/file/7a98af17e63a0ac09ce2e96d03992fbc-Paper.pdf
62. 참고문헌
62
• Tutorial on Autoencoder, https://arxiv.org/pdf/1606.05908.pdf (2016)
• https://www.youtube.com/watch?v=uaaqyVS9-rM
• https://wiseodd.github.io/techblog/2016/12/10/variational-autoencoder/
• https://www.slideshare.net/NaverEngineering/ss-96581209