【模型学习-VAE】VAE、变分自编码器、Variational AutoEncoder

变分自编码器(Variational AutoEncoder, VAE)

预备知识

K-L散度(Kullback-Leibler divergence)

K-L散度又被称为相对熵(relative entropy),是对两个概率分布间差异的非对称性度量

计算公式

假定 p ( x ) p(x) p(x) q ( x ) q(x) q(x)是随机变量上的两个概率分布,则 p ( x ) p(x) p(x)分布跟 q ( x ) q(x) q(x)分布的相似性,可以描述如下:

  • 在离散情况下:

K L ( p ( x ) ∥ q ( x ) ) = ∑ p ( x ) log ⁡ p ( x ) q ( x ) \begin{aligned} & K L(p(x) \| q(x))=\sum p(x) \log \frac{p(x)}{q(x)} \end{aligned} KL(p(x)q(x))=p(x)logq(x)p(x)

  • 在连续情况下:

K L ( p ( x ) ∥ q ( x ) ) = ∫ p ( x ) log ⁡ p ( x ) q ( x ) d x \begin{aligned} & K L(p(x) \| q(x))=\int p(x) \log \frac{p(x)}{q(x)} d x \end{aligned} KL(p(x)q(x))=p(x)logq(x)p(x)dx

注意!!

  1. KL散度的计算不具有对称性,KL散度描述的是两个分布之间的相似度,而不是距离
  2. 分布 p ( x ) p(x) p(x)对分布 q ( x ) q(x) q(x)的相似度 ≠ \ne = 分布 q ( x ) q(x) q(x)对分布 p ( x ) p(x) p(x)的相似度

正态分布间的KL散度计算

假设 p ( x ) p(x) p(x)遵从分布: N ( μ 1 , σ 1 2 ) N\left( \mu _1, {\sigma _1}^2 \right) N(μ1,σ12); q ( x ) q(x) q(x)遵从分布: N ( μ 2 , σ 2 2 ) N\left( \mu _2, {\sigma _2}^2 \right) N(μ2,σ22)
K L ( p ( x )    ∣ q ( x ) ) = K L ( N ( μ 1 , σ 1 2 ) ∥ N ( μ 2 , σ 2 2 ) ) = ∑ p ( x ) log ⁡ p ( x ) q ( x ) = ∫ 1 2 π σ 1 2 e − ( x − μ 1 ) 2 / 2 σ 1 2 ( log ⁡ 1 2 π σ 1 2 e − ( x − μ 1 ) 2 / 2 σ 1 2 1 2 π σ 2 2 e − ( x − μ 2 ) 2 / 2 σ 2 2 ) d x = ∫ 1 2 π σ 1 2 e − ( x − μ 1 ) 2 / 2 σ 1 2 log ⁡ { σ 2 2 σ 1 2 exp ⁡ { 1 2 [ ( x − μ 2 ) 2 σ 2 2 − ( x − μ 1 ) 2 σ 1 2 ] } } d x = 1 2 ∫ 1 2 π σ 1 2 e − ( x − μ 1 ) 2 / 2 σ 1 2 [ log ⁡ σ 2 2 − log ⁡ σ 1 2 + ( x − μ 2 ) 2 σ 2 2 − ( x − μ 1 ) 2 σ 1 2 ] d x = 1 2 ∫ p ( x ) [ log ⁡ σ 2 2 − log ⁡ σ 1 2 + ( x − μ 2 ) 2 σ 2 2 − ( x − μ 1 ) 2 σ 1 2 ] d x = 1 2 ( log ⁡ σ 2 2 − log ⁡ σ 1 2 + σ 1 2 + ( μ 1 − μ 2 ) 2 σ 2 2 − 1 ) ⏟ \begin{aligned} KL\left( p\left( x \right) \,\,|q\left( x \right) \right) =&KL\left( N\left( \mu _1,\sigma _{1}^{2} \right) \parallel N\left( \mu _2,\sigma _{2}^{2} \right) \right)\\ =&\sum{p}(x)\log \frac{p(x)}{q(x)}\\ =&\int{\frac{1}{\sqrt{2\pi \sigma _{1}^{2}}}}e^{-\left( x-\mu _1 \right) ^2/2\sigma _{1}^{2}}\left( \log \frac{\sqrt{\frac{1}{2\pi \sigma _{1}^{2}}}e^{-\left( x-\mu _1 \right) ^2/2\sigma _{1}^{2}}}{\frac{1}{2\pi \sigma _{2}^{2}}}e^{-\left( x-\mu _2 \right) ^2/2\sigma _{2}^{2}} \right) dx\\ =&\int{\frac{1}{\sqrt{2\pi \sigma _{1}^{2}}}}e^{-\left( x-\mu _1 \right) ^2/2\sigma _{1}^{2}}\log \left\{ \frac{\sqrt{\sigma _{2}^{2}}}{\sqrt{\sigma _{1}^{2}}}\exp \left\{ \frac{1}{2}\left[ \frac{\left( x-\mu _2 \right) ^2}{\sigma _{2}^{2}}-\frac{\left( x-\mu _1 \right) ^2}{\sigma _{1}^{2}} \right] \right\} \right\} dx\\ =&\frac{1}{2}\int{\frac{1}{\sqrt{2\pi \sigma _{1}^{2}}}}e^{-\left( x-\mu _1 \right) ^2/2\sigma _{1}^{2}}\left[ \log \sigma _{2}^{2}-\log \sigma _{1}^{2}+\frac{\left( x-\mu _2 \right) ^2}{\sigma _{2}^{2}}-\frac{\left( x-\mu _1 \right) ^2}{\sigma _{1}^{2}} \right] dx\\ =&\frac{1}{2}\int{p}(x)\left[ \log \sigma _{2}^{2}-\log \sigma _{1}^{2}+\frac{\left( x-\mu _2 \right) ^2}{\sigma _{2}^{2}}-\frac{\left( x-\mu _1 \right) ^2}{\sigma _{1}^{2}} \right] dx\\ &=\underbrace{\frac{1}{2}\left( \log \sigma _{2}^{2}-\log \sigma _{1}^{2}+\frac{\sigma _{1}^{2}+\left( \mu _1-\mu _2 \right) ^2}{\sigma _{2}^{2}}-1 \right) }\\ \end{aligned} KL(p(x)q(x))======KL(N(μ1,σ12)N(μ2,σ22))p(x)logq(x)p(x)2πσ12 1e(xμ1)2/2σ12 log2πσ2212πσ121 e(xμ1)2/2σ12e(xμ2)2/2σ22 dx2πσ12 1e(xμ1)2/2σ12log{σ12 σ22 exp{21[σ22(xμ2)2σ12(xμ1)2]}}dx212πσ12 1e(xμ1)2/2σ12[logσ22logσ12+σ22(xμ2)2σ12(xμ1)2]dx21p(x)[logσ22logσ12+σ22(xμ2)2σ12(xμ1)2]dx= 21(logσ22logσ12+σ22σ12+(μ1μ2)21)

当分布 q ( x ) q(x) q(x)有: μ = 0 , σ = 1 \mu =0, \sigma =1 μ=0,σ=1,即 N ( 0 , 1 ) N\left( 0, 1 \right) N(0,1)
K L ( p ( x )    ∣ q ( x ) ) = K L ( N ( μ 1 , σ 1 2 ) ∥ N ( 0 , 1 2 ) ) = 1 2 ( − log ⁡ σ 1 2 + σ 1 2 + μ 1 2 − 1 ) ⏟ \begin{aligned} KL\left( p\left( x \right) \,\,|q\left( x \right) \right) =KL\left( N\left( \mu _1,\sigma _{1}^{2} \right) \parallel N\left( 0,1^2 \right) \right) \\ =\underbrace{\frac{1}{2}\left( -\log \sigma _{1}^{2}+\sigma _{1}^{2}+{\mu _1}^2-1 \right) } \end{aligned} KL(p(x)q(x))=KL(N(μ1,σ12)N(0,12))= 21(logσ12+σ12+μ121)

KL散度的值越小,说明两个分布之间的差异越小。

贝叶斯公式

p ( z ∣ x ) = p ( z , x ) p ( x ) = p ( x ∣ z ) p ( z ) p ( x ) p ( z ∣ x ) p ( x ) =    p ( z , x ) =    p ( x , z ) =    p ( x ∣ z ) p ( z ) p(z \mid x)=\frac{p(z, x)}{p(x)}=\frac{p(x \mid z) p(z)}{p(x)}\\ p(z\mid x)p(x)=\,\,p(z,x) =\,\,p(x,z) =\,\,p(x\mid z)p(z) p(zx)=p(x)p(z,x)=p(x)p(xz)p(z)p(zx)p(x)=p(z,x)=p(x,z)=p(xz)p(z)

个人理解

  1. 若现在可观测的是原始样本x,其分布为p(x),可知;隐层特征为z,其分布为p(z),未知

  2. 则有:

    • 后验概率分布

    p ( z ∣ x ) p(z\mid x) p(zx)

    • 条件概率分布

    p ( x ∣ z ) p(x\mid z) p(xz)

变分自编码器引入

AE模型的不足

  1. 编码得到的是原始数据的隐层特征,而不是隐层特征分布
  2. 只能重构数据,不能生成数据

【模型学习-AE】自编码器、AE、AutoEncoder

VAE模型的改进

  1. 编码部分得到原始数据的隐层特征分布
  2. 通过采样,解码,即可生成与原始数据相似的数据

问题背景

  1. 假设有N个独立同分布的数据点组成的数据集:

X = { x i } i = 1 M X=\left\{ x_i \right\} _{i=1}^{M} X={xi}i=1M

  1. 若要通过VAE生成近似数据,则每个数据点的生成,遵从如下生成式过程:

    1. 从某个先验分布 p θ ( z ) p_{\theta}\left( z \right) pθ(z)中采样得到隐层变量 z i z_i zi

    2. 从条件分布 p θ ( x ∣ z = z i ) p_{\theta}\left( x|z=z_i \right) pθ(xz=zi)中采样得到数据点 x i x_i xi

  2. 在上述假设下,可知:

    1. 隐变量 z i z_i zi不可观测,仅数据点 x i x_i xi可观测
    2. 先验分布 p θ ( z ) p_{\theta}\left(z\right) pθ(z)和条件似然函数 p θ ( x ∣ z = z i ) p_{\theta}\left(x|z=z_i \right) pθ(xz=zi)都是 θ \theta θ的函数(这个函数表示形式可以是神经网络,也可以是其他数学模型)

待解决问题

  1. θ的参数估计问题:仅知道数据集 X = { x i } i = 1 M X=\left\{ x_i \right\} _{i=1}^{M} X={xi}i=1M,如何对生成模型 θ \theta θ

    解决该问题,可以公式化描述数据的生成过程,实现数据生成

  2. 后验推断问题:即给定参数 θ \theta θ,在给定数据点 x i x_i xi后,得出这个数据点隐层变量的后验概率分布 p θ ( z ∣ x ) p_{\theta}\left( z|x \right) pθ(zx)

    解决该问题,可以对数据点x做表征学习,或者维度压缩、特征提取

  3. 边际分布推断问题:给定一组 θ \theta θ后,计算给出边际分布 p θ ( x i ) p_{\theta}\left( x_i \right) pθ(xi)

    解决该问题,可以适用于任何需要对数据x做先验假设的场景

变分方法引入

上述三个问题,以”后验推断“为切入点,这是引入变分问题的关键,而变分的引入是推导VAE的关键

后验概率分布 p θ ( z ∣ x i ) p_{\theta}\left( z\mid x_i \right) pθ(zxi)展开

p θ ( z ∣ x i ) = p θ ( z , x i ) p θ ( x i ) = ( 贝叶斯公式 边缘概率计算 ) = p θ ( x i ∣ z ) p θ ( z ) ∫ z p θ ( x i , z ) d z = p θ ( x i ∣ z ) p θ ( z ) ∫ z p θ ( x i ∣ z ) p θ ( z ) d z \begin{aligned} p_{\theta}\left( z\mid x_i \right) &=\frac{\begin{array}{c} p_{\theta}\left( z,x_i \right)\\ \end{array}}{p_{\theta}\left( x_i \right)}=\left( \frac{\text{贝叶斯公式}}{\text{边缘概率计算}} \right)\\ &=\frac{p_{\theta}\left( x_i\mid z \right) p_{\theta}\left( z \right)}{\int_z{p_{\theta}}\left( x_i,z \right) dz}\\ &=\frac{p_{\theta}\left( x_i\mid z \right) p_{\theta}\left( z \right)}{\int_z{p_{\theta}}\left( x_i\mid z \right) p_{\theta}\left( z \right) dz}\\ \end{aligned} pθ(zxi)=pθ(xi)pθ(z,xi)=(边缘概率计算贝叶斯公式)=zpθ(xi,z)dzpθ(xiz)pθ(z)=zpθ(xiz)pθ(z)dzpθ(xiz)pθ(z)

  1. 如果θ已知,则上述分子已知(条件似然函数和先验分布)
  2. 求出分母积分,即可解决后验推断问题。但不太可能,先验分布和条件似然函数没有做任何假设,积分没有解析解
    1. 虽然可用MCMC方法实现积分项的估计,但是该方法精确却耗时,难以适用于大数据场景
    2. 一般采用”变分“方法,将积分求解问题转化为参数优化问题

变分推断

  1. 引入新的参数化分布:

q φ ( z ∣ x i ) , φ 为参数 q_{\varphi}\left( z\mid x_i \right) , \varphi \text{为参数} qφ(zxi),φ为参数

  1. 核心思想:让引入的参数化分布,去拟合后验分布,只要拟合精度足够,就可以用引入的参数化分布代替后验分布
  2. 近似方法::最小化两者之间的KL散度

a r g min ⁡ θ , φ    K L ( q φ ( z ∣ x i ) ∥ p θ ( z ∣ x i ) ) = ∫ z q φ ( z ∣ x i ) log ⁡ q φ ( z ∣ x i ) p θ ( z ∣ x i ) d z = ∫ z q φ ( z ∣ x i ) log ⁡ q φ ( z ∣ x i ) d z − ∫ z q φ ( z ∣ x i ) log ⁡ p θ ( z ∣ x i ) d z = ∫ z q φ ( z ∣ x i ) log ⁡ q φ ( z ∣ x i ) d z − ∫ z q φ ( z ∣ x i ) log ⁡ p θ ( z , x i ) p ( x i ) d z = ∫ z q φ ( z ∣ x i ) log ⁡ q φ ( z ∣ x i ) d z − ∫ z q φ ( z ∣ x i ) log ⁡ p θ ( z , x i ) d z + ∫ z q φ ( z ∣ x i ) log ⁡ p ( x i ) d z = E q φ ( z ∣ x i ) [ log ⁡ q φ ( z ∣ x i ) ] − E q φ ( z ∣ x i ) [ log ⁡ p θ ( z , x i ) ] + E q φ ( z ∣ x i ) [ log ⁡ p ( x i ) ] = E q [ log ⁡ q ( z ∣ x i ) ] − E q [ log ⁡ p ( z , x i ) ] ⏟ + E q [ log ⁡ p ( x i ) ] ⏟ = − E L B O + E q [ log ⁡ p ( x i ) ] \begin{aligned} arg\min _{\theta ,\varphi}\,\,KL\left( q_{\varphi}\left( z\mid x_i \right) \parallel p_{\theta}\left( z\mid x_i \right) \right) &=\int_{\mathbf{z}}{q_{\varphi}\left( z\mid x_i \right) \log \frac{q_{\varphi}\left( z\mid x_i \right)}{p_{\theta}\left( z\mid x_i \right)}dz}\\ &=\int_{\mathbf{z}}{q_{\varphi}\left( z\mid x_i \right) \log q_{\varphi}\left( z\mid x_i \right) dz}-\int_{\mathbf{z}}{q_{\varphi}\left( z\mid x_i \right) \log p_{\theta}\left( z\mid x_i \right) dz}\\ &=\int_{\mathbf{z}}{q_{\varphi}\left( z\mid x_i \right) \log q_{\varphi}\left( z\mid x_i \right) dz}-\int_{\mathbf{z}}{q_{\varphi}\left( z\mid x_i \right) \log \frac{p_{\theta}\left( z,x_i \right)}{p\left( x_i \right)}dz}\\ &=\int_{\mathbf{z}}{q_{\varphi}\left( z\mid x_i \right) \log q_{\varphi}\left( z\mid x_i \right) dz}-\int_{\mathbf{z}}{q_{\varphi}\left( z\mid x_i \right) \log p_{\theta}\left( z,x_i \right) dz}+\int_{\mathbf{z}}{q_{\varphi}\left( z\mid x_i \right) \log p\left( x_i \right) dz}\\ &=E_{q_{\varphi}\left( z\mid x_i \right)}\left[ \log q_{\varphi}\left( z\mid x_i \right) \right] -E_{q_{\varphi}\left( z\mid x_i \right)}\left[ \log p_{\theta}\left( z,x_i \right) \right] +E_{q_{\varphi}\left( z\mid x_i \right)}\left[ \log p\left( x_i \right) \right]\\ &=\underbrace{E_q\left[ \log q\left( z\mid x_i \right) \right] -E_q\left[ \log p\left( z,x_i \right) \right] }+\underbrace{E_q\left[ \log p\left( x_i \right) \right] }\\ &=-\mathrm{ELBO}+E_q\left[ \log p\left( x_i \right) \right]\\ \end{aligned} argθ,φminKL(qφ(zxi)pθ(zxi))=zqφ(zxi)logpθ(zxi)qφ(zxi)dz=zqφ(zxi)logqφ(zxi)dzzqφ(zxi)logpθ(zxi)dz=zqφ(zxi)logqφ(zxi)dzzqφ(zxi)logp(xi)pθ(z,xi)dz=zqφ(zxi)logqφ(zxi)dzzqφ(zxi)logpθ(z,xi)dz+zqφ(zxi)logp(xi)dz=Eqφ(zxi)[logqφ(zxi)]Eqφ(zxi)[logpθ(z,xi)]+Eqφ(zxi)[logp(xi)]= Eq[logq(zxi)]Eq[logp(z,xi)]+ Eq[logp(xi)]=ELBO+Eq[logp(xi)]

上述公式最后一项解释:即最后一项是常数项,可以在寻优的过程中忽略

E q [ log ⁡ p ( x i ) ] = ∫ z q φ ( z ∣ x i ) log ⁡ p ( x i ) d z = log ⁡ p ( x i ) ∫ z q φ ( z , x i ) q φ ( x i ) d z = log ⁡ p ( x i ) ∗ 1 = log ⁡ p ( x i ) \begin{aligned} E_q\left[ \log p\left( x_i \right) \right] & = \int_{\mathbf{z}}{q_{\varphi}\left( z\mid x_i \right) \log p\left( x_i \right) dz} \\ &=\log p\left( x_i \right) \int_{\mathbf{z}}{\frac{q_{\varphi}\left( z,x_i \right)}{q_{\varphi}\left( x_i \right)}dz} \\ &=\log p\left( x_i \right) *1 \\ &=\log p\left( x_i \right) \end{aligned} Eq[logp(xi)]=zqφ(zxi)logp(xi)dz=logp(xi)zqφ(xi)qφ(z,xi)dz=logp(xi)1=logp(xi)

参数优化等价:

  1. 等价变化:

a r g min ⁡ θ , φ    K L ( q φ ( z ∣ x i ) ∥ p θ ( z ∣ x i ) ) ⇔ a r g min ⁡ θ , φ − E L B O arg\min_{\theta ,\varphi} \,\,KL\left( q_{\varphi}\left( z\mid x_i \right) \parallel p_{\theta}\left( z\mid x_i \right) \right) \Leftrightarrow arg\min_{\theta ,\varphi} -\mathrm{ELBO}\\ argθ,φminKL(qφ(zxi)pθ(zxi))argθ,φminELBO

  1. 继续分析:

a r g min ⁡ θ , φ    K L ( q φ ( z ∣ x i ) ∥ p θ ( z ∣ x i ) ) = E q [ log ⁡ q ( z ∣ x i ) ] − E q [ log ⁡ p ( z , x i ) ] =    E q [ log ⁡ q ( z ∣ x i ) ] − E q [ log ⁡ p ( x i ∣ z ) ] − E q [ log ⁡ p ( z ) ] =    E q [ log ⁡ q ( z ∣ x i ) ] − E q [ log ⁡ p ( z ) ] ⏟ − E q [ log ⁡ p ( x i ∣ z ) ] = K L ( q ( z ∣ x i )    ∣ p ( z ) ) − E q [ log ⁡ p ( x i ∣ z ) ] \begin{aligned} arg\min_{\theta ,\varphi} \,\,KL\left( q_{\varphi}\left( z\mid x_i \right) \parallel p_{\theta}\left( z\mid x_i \right) \right) &=E_q\left[ \log q\left( z\mid x_i \right) \right] -E_q\left[ \log p\left( z,x_i \right) \right]\\ &=\,\,E_q\left[ \log q\left( z\mid x_i \right) \right] -E_q\left[ \log p\left( x_i|z \right) \right] -E_q\left[ \log p\left( z \right) \right]\\ &=\,\,\underbrace{E_q\left[ \log q\left( z\mid x_i \right) \right] -E_q\left[ \log p\left( z \right) \right] }-E_q\left[ \log p\left( x_i|z \right) \right]\\ &=KL\left( q\left( z\mid x_i \right) \,\,|p\left( z \right) \right) -E_q\left[ \log p\left( x_i|z \right) \right]\\ \end{aligned} argθ,φminKL(qφ(zxi)pθ(zxi))=Eq[logq(zxi)]Eq[logp(z,xi)]=Eq[logq(zxi)]Eq[logp(xiz)]Eq[logp(z)]= Eq[logq(zxi)]Eq[logp(z)]Eq[logp(xiz)]=KL(q(zxi)p(z))Eq[logp(xiz)]

  1. 结果分析:

    1. 最小化上述结果,即最小化第一项,最大化第二项
    2. 最小化第一项: q φ ( z ∣ x i ) q_{\varphi}\left( z\mid x_i \right) qφ(zxi)分布要尽可能近似于 p θ ( z ∣ x i ) p_{\theta}\left( z\mid x_i \right) pθ(zxi)分布
    3. 最大化第二项:不断地在z上采样,使得重构地样本结果中重构x的期望最大,即使得重构的x’与原始数据x的MSE尽可能小(这点还有待明确!)

MCMC近似处理期望

E q [ log ⁡ p ( x i ∣ z ) ] = 1 L ∑ l = 1 L [ log ⁡ p θ ( x i ∣ z ( i , l ) ) ] E_q\left[ \log p\left( x_i|z \right) \right] =\frac{1}{L}\sum\nolimits_{l=1}^L{\left[ \log p_{\theta}\left( x_i|z_{\left( i,l \right)} \right) \right]} Eq[logp(xiz)]=L1l=1L[logpθ(xiz(i,l))]

样本 z i , l z_{i,l} zi,l采样自分布 q φ ( z ∣ x i ) q_{\varphi}\left( z\mid x_i \right) qφ(zxi),通过样本平均来代替期望

reparameterization trick

在实际过程中,一般不对 q φ ( z ∣ x i ) q_{\varphi}\left( z\mid x_i \right) qφ(zxi)直接采样,原因如下:

  1. q φ ( z ∣ x i ) q_{\varphi}\left( z\mid x_i \right) qφ(zxi)分布复杂,采样难度增大
  2. 若直接采样,上述MCMC近似的期望项无法求导,不能进行梯度更新

trick操作:

  1. 有如下假设:

z i , l = g ϕ ( ϵ i , l ; x i ) z_{i,l}=g_{\phi}\left( \epsilon _{i,l};x_i \right) zi,l=gϕ(ϵi,l;xi)

其中 g ϕ g_\phi gϕ是一个拟合函数(可以是神经网络), ϵ i , l \epsilon _{i,l} ϵi,l通过采样得到,一般直接采样自简单的标准正态分布

VAE实现

结构图对比

image-20230327104617910

VS

image-20230327173410682

  1. 识别模型: q φ ( z ∣ x i ) q_{\varphi}\left( z\mid x_i \right) qφ(zxi),就是以x为输入z为输出的Encoder,对比AE的Encoder,他输出的不是确定的值,而是所有z可能取值的分布
  2. 生成模型: p θ ( x i ∣ z ) p_{\theta}\left( x_i|z\right) pθ(xiz),就是以z为输入x为输出的Dencoder,对比AE的Encoder,他输出的不是确定的值,而是所有x可能取值的分布(有点理解不动了)

损失函数细节

KL散度项

K L ( p ( x )    ∣ q ( x ) ) = K L ( N ( μ 1 , σ 1 2 ) ∥ N ( 0 , 1 2 ) ) = 1 2 ( − log ⁡ σ 1 2 + σ 1 2 + μ 1 2 − 1 ) ⏟ KL\left( p\left( x \right) \,\,| q\left( x \right) \right) =KL\left( N\left( \mu _1,\sigma _{1}^{2} \right) \parallel N\left( 0,1^2 \right) \right) \\ =\underbrace{\frac{1}{2}\left( -\log \sigma _{1}^{2}+\sigma _{1}^{2}+{\mu _1}^2-1 \right) } KL(p(x)q(x))=KL(N(μ1,σ12)N(0,12))= 21(logσ12+σ12+μ121)

  • 现有结果已经很方便求导,但是含有对数项,若求导更新参数的时候,对数函数会压缩误差

  • 所以我们不对 σ 1 \sigma_1 σ1本身建模,对其对数 l o g σ 1 log \sigma_1 logσ1建模,我们假设VAE生成的是 l o g v a r = l o g σ 1 2 logvar = log \sigma_1^2 logvar=logσ12,则KL散度公式变为:

K L ( p ( x )    ∣ q ( x ) ) = 1 2 ( − log ⁡ v a r + e log ⁡ v a r + μ 1 2 − 1 ) ⏟ KL\left( p\left( x \right) \,\,| q\left( x \right) \right) =\underbrace{\frac{1}{2}\left( -\log var+e^{\log var}+{\mu _1}^2-1 \right) } KL(p(x)q(x))= 21(logvar+elogvar+μ121)

期望项

本质是负对数似然(Negative Log Likelihood),可以用AE里面的重构损失代替该项

R e c o n t r u c t i o n    L o s s ⇔ − E q [ log ⁡ p ( x i ∣ z ) ] = − 1 L ∑ l = 1 L [ log ⁡ p θ ( x i ∣ z ( i , l ) ) ] =    ∑ i = 1 N ∥ x ^ i − x i ∥ 2 \begin{aligned} \mathrm{Re}contruction\,\,Loss\Leftrightarrow -E_q\left[ \log p\left( x_i|z \right) \right] &=-\frac{1}{L}\sum\nolimits_{l=1}^L{\left[ \log p_{\theta}\left( x_i|z_{\left( i,l \right)} \right) \right]} \\ &=\,\,\sum_{i=1}^N{\left\| \hat{x}_i-x_i \right\| ^2} \end{aligned} RecontructionLossEq[logp(xiz)]=L1l=1L[logpθ(xiz(i,l))]=i=1Nx^ixi2

参考文献

大神!

二神!

三神!

Tutorial on Variational Autoencoders

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值