VAE 탐구 - 5/6

Tetrapod·2024년 5월 22일

VAE 탐구

목록 보기
5/6

이 글에서는 p(x),p(zx),qϕ(zx)p(x), p(z|x), q_\phi(z|x) 사이의 관계를 전개하고
Regularization Error 수식 도출을 하고자 한다.

  • p(x)p(x)의 가능도를 최대로 올리는 것이 목표이다.
  • xx 데이터는 여러 개 이므로 아래 수식을 곱이 아닌 합으로 변환하기 위해 loglog를 사용한다.
    VAE 탐구 - 3 에서...
    L(θ;x1,x2,xN)=p(x1,x2,xN;θ)=i=1Np(xi;θ)L(\theta;x_1,x_2,\cdots x_N)=p(x_1,x_2,\cdots x_N;\theta)=\prod_{i=1}^Np(x_i;\theta)

log  p(x)log\;p(x) 전개

  • log  p(x)log\;p(x)를 전개하면 다음과 같다.
log  p(x)=qϕ(zx)  log  p(x)  dz            qϕ(zx)  dz=1=qϕ(zx)  logp(xz)p(z)p(zx)dz=qϕ(zx)  log(p(xz)p(z)qϕ(zx)qϕ(zx)p(zx))dz=qϕ(zx)  logp(xz)p(z)qϕ(zx)dz+qϕ(zx)  logqϕ(zx)p(zx)dz=ELBO(ϕ)+DKL(qϕ(zx)    p(zx))\begin{aligned} log\;p(x) &= \int q_\phi(z|x)\;log\;p(x)\;dz\;\;\;\;\leftarrow\;\because\;\int q_\phi(z|x)\;dz=1 \\ &=\int q_\phi(z|x)\;log\frac{p(x|z)p(z)}{p(z|x)}dz \\ &=\int q_\phi(z|x)\;log\left(\frac{p(x|z)p(z)}{q_\phi(z|x)}\cdot\frac{q_\phi(z|x)}{p(z|x)}\right)dz \\ &=\int q_\phi(z|x)\;log\frac{p(x|z)p(z)}{q_\phi(z|x)}dz+\int q_\phi(z|x)\;log\frac{q_\phi(z|x)}{p(z|x)}dz \\ &=ELBO(\phi) + D_{KL}\left(q_\phi(z|x)\;||\;p(z|x)\right) \end{aligned}
  • 여기서 첫번째 항은 ELBOELBO인데 다시 정리하면 다음과 같다.
ELBO(ϕ)=logp(xz)p(z)qϕ(zx)  qϕ(zx)dz=log(p(xz))  qϕ(zx)dz    log(qϕ(zx)p(z))qϕ(zx)dz=Eqϕ(zx)[log(p(xz))]    DKL(qϕ(zx)    p(z))\begin{aligned} ELBO(\phi)&=\int log\frac{p(x|z)p(z)}{q_\phi(z|x)}\;q_\phi(z|x)dz \\ &=\int log(p(x|z))\;q_\phi(z|x)dz\;-\;\int log\left(\frac{q_\phi(z|x)}{p(z)}\right)q_\phi(z|x)dz \\ &=E_{q_\phi(z|x)}[log(p(x|z))]\;-\;D_{KL}(q_\phi(z|x)\;||\;p(z)) \end{aligned}
log  p(x)=Eqϕ(zx)[log(p(xz))]    DKL(qϕ(zx)    p(z))  +  DKL(qϕ(zx)    p(zx))\therefore log\;p(x)=E_{q_\phi(z|x)}[log(p(x|z))]\;-\;D_{KL}(q_\phi(z|x)\;||\;p(z))\;+\;D_{KL}\left(q_\phi(z|x)\;||\;p(z|x)\right)

VAE 탐구 - 1에서 p(zx)p(z|x)를 알 수 없어 세번째 항을 구하지 못한다고 하였다.
log  p(x)log\;p(x)를 최대화 하는 것이 목표이고
VAE 탐구 - 3에서 DKL0D_{KL} \ge 0 이라 하였으므로 대신 ELBOELBO를 최대화 하면 된다.


Loss Function 유도

  • log  p(x)ELBO(ϕ)log\;p(x) \geq ELBO(\phi)라 하였다.
log  p(x)Eqϕ(zx)[log(p(xz))]    DKL(qϕ(zx)    p(z))=ELBO(ϕ)    DKL0\begin{aligned} log\;p(x)&\geq E_{q_\phi(z|x)}[log(p(x|z))]\;-\;D_{KL}(q_\phi(z|x)\;||\;p(z)) \\&=ELBO(\phi)\;\;\because D_{KL}\geq 0 \end{aligned}
  • 아래 수식이 최소화해야하는 수식이다.
ilog  p(xi)i{Eqϕ(zxi)[log  p(xigθ(z))]    DKL(qϕ(zxi)    p(z))}-\sum_ilog\;p(x_i) \leq-\sum_i\{E_{q_\phi(z|x_i)}[log\;p(x_i|g_\theta(z))]\;-\;D_{KL}(q_\phi(z|x_i)\;||\;p(z))\}
argminϕ,θiEqϕ(zxi)[log  p(xigθ(z))]  +  DKL(qϕ(zxi)    p(z))\underset{\phi,\theta}{argmin}\sum_i-E_{q_\phi(z|x_i)}[log\;p(x_i|g_\theta(z))]\;+\;D_{KL}(q_\phi(z|x_i)\;||\;p(z))

  • 여기서 아래와 같은 가정이 추가된다.

  • 가정에 따르면 인코더에서 나오는 zz 분포가 표준정규분포로 변하길 원한다.
  • 따라서, VAE 탐구 - 4에서 보았던 DKLD_{KL} 수식에 그대로 대입해본다.
DKL(pq)=12(logσ12σ22    σ12+(μ1μ2)2σ22+1)DKL(N(μ,σ2)    N(0,1))=12(log  σ2σ2μ2+1)RegularizationError=12i(log  σi2σi2μi2+1)\begin{aligned} D_{KL}(p||q)&=-\frac{1}{2}\left(log\frac{\sigma_1^2}{\sigma_2^2}\;-\;\frac{\sigma_1^2+(\mu_1-\mu_2)^2}{\sigma_2^2} +1\right) \\ D_{KL}(N(\mu,\sigma^2)\;||\;N(0,1))&=-\frac{1}{2}\left(log\;\sigma^2-\sigma^2-\mu^2+1\right) \\ Regularization Error&=-\frac{1}{2}\sum_i\left(log\;\sigma_i^2-\sigma_i^2-\mu_i^2+1\right) \end{aligned}

Regularization Error 수식은 유도하였고, Reconstruction Error는 생략


Reference

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

0개의 댓글