이 글에서는 p(x),p(z∣x),qϕ(z∣x) 사이의 관계를 전개하고
Regularization Error 수식 도출을 하고자 한다.
- p(x)의 가능도를 최대로 올리는 것이 목표이다.
- x 데이터는 여러 개 이므로 아래 수식을 곱이 아닌 합으로 변환하기 위해 log를 사용한다.
VAE 탐구 - 3 에서...
L(θ;x1,x2,⋯xN)=p(x1,x2,⋯xN;θ)=∏i=1Np(xi;θ)
logp(x) 전개
- logp(x)를 전개하면 다음과 같다.
logp(x)=∫qϕ(z∣x)logp(x)dz←∵∫qϕ(z∣x)dz=1=∫qϕ(z∣x)logp(z∣x)p(x∣z)p(z)dz=∫qϕ(z∣x)log(qϕ(z∣x)p(x∣z)p(z)⋅p(z∣x)qϕ(z∣x))dz=∫qϕ(z∣x)logqϕ(z∣x)p(x∣z)p(z)dz+∫qϕ(z∣x)logp(z∣x)qϕ(z∣x)dz=ELBO(ϕ)+DKL(qϕ(z∣x)∣∣p(z∣x))
- 여기서 첫번째 항은 ELBO인데 다시 정리하면 다음과 같다.
ELBO(ϕ)=∫logqϕ(z∣x)p(x∣z)p(z)qϕ(z∣x)dz=∫log(p(x∣z))qϕ(z∣x)dz−∫log(p(z)qϕ(z∣x))qϕ(z∣x)dz=Eqϕ(z∣x)[log(p(x∣z))]−DKL(qϕ(z∣x)∣∣p(z))
∴logp(x)=Eqϕ(z∣x)[log(p(x∣z))]−DKL(qϕ(z∣x)∣∣p(z))+DKL(qϕ(z∣x)∣∣p(z∣x))
VAE 탐구 - 1에서 p(z∣x)를 알 수 없어 세번째 항을 구하지 못한다고 하였다.
logp(x)를 최대화 하는 것이 목표이고
VAE 탐구 - 3에서 DKL≥0 이라 하였으므로 대신 ELBO를 최대화 하면 된다.

Loss Function 유도

- logp(x)≥ELBO(ϕ)라 하였다.
logp(x)≥Eqϕ(z∣x)[log(p(x∣z))]−DKL(qϕ(z∣x)∣∣p(z))=ELBO(ϕ)∵DKL≥0
−i∑logp(xi)≤−i∑{Eqϕ(z∣xi)[logp(xi∣gθ(z))]−DKL(qϕ(z∣xi)∣∣p(z))}
ϕ,θargmini∑−Eqϕ(z∣xi)[logp(xi∣gθ(z))]+DKL(qϕ(z∣xi)∣∣p(z))


- 가정에 따르면 인코더에서 나오는 z 분포가 표준정규분포로 변하길 원한다.
- 따라서, VAE 탐구 - 4에서 보았던 DKL 수식에 그대로 대입해본다.
DKL(p∣∣q)DKL(N(μ,σ2)∣∣N(0,1))RegularizationError=−21(logσ22σ12−σ22σ12+(μ1−μ2)2+1)=−21(logσ2−σ2−μ2+1)=−21i∑(logσi2−σi2−μi2+1)
Regularization Error 수식은 유도하였고, Reconstruction Error는 생략

Reference
https://process-mining.tistory.com/161