变分自编码器(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
注意!!
- KL散度的计算不具有对称性,KL散度描述的是两个分布之间的相似度,而不是距离
- 分布 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πσ121e−(x−μ1)2/2σ12
log2πσ2212πσ121e−(x−μ1)2/2σ12e−(x−μ2)2/2σ22
dx∫2πσ121e−(x−μ1)2/2σ12log{σ12σ22exp{21[σ22(x−μ2)2−σ12(x−μ1)2]}}dx21∫2πσ121e−(x−μ1)2/2σ12[logσ22−logσ12+σ22(x−μ2)2−σ12(x−μ1)2]dx21∫p(x)[logσ22−logσ12+σ22(x−μ2)2−σ12(x−μ1)2]dx=
21(logσ22−logσ12+σ22σ12+(μ1−μ2)2−1)
当分布
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+μ12−1)
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(z∣x)=p(x)p(z,x)=p(x)p(x∣z)p(z)p(z∣x)p(x)=p(z,x)=p(x,z)=p(x∣z)p(z)
个人理解
-
若现在可观测的是原始样本x,其分布为p(x),可知;隐层特征为z,其分布为p(z),未知
-
则有:
- 后验概率分布
p ( z ∣ x ) p(z\mid x) p(z∣x)
- 条件概率分布
p ( x ∣ z ) p(x\mid z) p(x∣z)
变分自编码器引入
AE模型的不足
- 编码得到的是原始数据的隐层特征,而不是隐层特征分布
- 只能重构数据,不能生成数据
VAE模型的改进
- 编码部分得到原始数据的隐层特征分布
- 通过采样,解码,即可生成与原始数据相似的数据
问题背景
- 假设有N个独立同分布的数据点组成的数据集:
X = { x i } i = 1 M X=\left\{ x_i \right\} _{i=1}^{M} X={xi}i=1M
-
若要通过VAE生成近似数据,则每个数据点的生成,遵从如下生成式过程:
-
从某个先验分布 p θ ( z ) p_{\theta}\left( z \right) pθ(z)中采样得到隐层变量 z i z_i zi
-
从条件分布 p θ ( x ∣ z = z i ) p_{\theta}\left( x|z=z_i \right) pθ(x∣z=zi)中采样得到数据点 x i x_i xi
-
-
在上述假设下,可知:
- 隐变量 z i z_i zi不可观测,仅数据点 x i x_i xi可观测
- 先验分布 p θ ( z ) p_{\theta}\left(z\right) pθ(z)和条件似然函数 p θ ( x ∣ z = z i ) p_{\theta}\left(x|z=z_i \right) pθ(x∣z=zi)都是 θ \theta θ的函数(这个函数表示形式可以是神经网络,也可以是其他数学模型)
待解决问题
-
θ的参数估计问题:仅知道数据集 X = { x i } i = 1 M X=\left\{ x_i \right\} _{i=1}^{M} X={xi}i=1M,如何对生成模型 θ \theta θ
解决该问题,可以公式化描述数据的生成过程,实现数据生成
-
后验推断问题:即给定参数 θ \theta θ,在给定数据点 x i x_i xi后,得出这个数据点隐层变量的后验概率分布 p θ ( z ∣ x ) p_{\theta}\left( z|x \right) pθ(z∣x)
解决该问题,可以对数据点x做表征学习,或者维度压缩、特征提取
-
边际分布推断问题:给定一组 θ \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θ(z∣xi)展开
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θ(z∣xi)=pθ(xi)pθ(z,xi)=(边缘概率计算贝叶斯公式)=∫zpθ(xi,z)dzpθ(xi∣z)pθ(z)=∫zpθ(xi∣z)pθ(z)dzpθ(xi∣z)pθ(z)
- 如果θ已知,则上述分子已知(条件似然函数和先验分布)
- 求出分母积分,即可解决后验推断问题。但不太可能,先验分布和条件似然函数没有做任何假设,积分没有解析解
- 虽然可用MCMC方法实现积分项的估计,但是该方法精确却耗时,难以适用于大数据场景
- 一般采用”变分“方法,将积分求解问题转化为参数优化问题
变分推断
- 引入新的参数化分布:
q φ ( z ∣ x i ) , φ 为参数 q_{\varphi}\left( z\mid x_i \right) , \varphi \text{为参数} qφ(z∣xi),φ为参数
- 核心思想:让引入的参数化分布,去拟合后验分布,只要拟合精度足够,就可以用引入的参数化分布代替后验分布
- 近似方法::最小化两者之间的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φ(z∣xi)∥pθ(z∣xi))=∫zqφ(z∣xi)logpθ(z∣xi)qφ(z∣xi)dz=∫zqφ(z∣xi)logqφ(z∣xi)dz−∫zqφ(z∣xi)logpθ(z∣xi)dz=∫zqφ(z∣xi)logqφ(z∣xi)dz−∫zqφ(z∣xi)logp(xi)pθ(z,xi)dz=∫zqφ(z∣xi)logqφ(z∣xi)dz−∫zqφ(z∣xi)logpθ(z,xi)dz+∫zqφ(z∣xi)logp(xi)dz=Eqφ(z∣xi)[logqφ(z∣xi)]−Eqφ(z∣xi)[logpθ(z,xi)]+Eqφ(z∣xi)[logp(xi)]= Eq[logq(z∣xi)]−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φ(z∣xi)logp(xi)dz=logp(xi)∫zqφ(xi)qφ(z,xi)dz=logp(xi)∗1=logp(xi)
参数优化等价:
- 等价变化:
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φ(z∣xi)∥pθ(z∣xi))⇔argθ,φmin−ELBO
- 继续分析:
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φ(z∣xi)∥pθ(z∣xi))=Eq[logq(z∣xi)]−Eq[logp(z,xi)]=Eq[logq(z∣xi)]−Eq[logp(xi∣z)]−Eq[logp(z)]= Eq[logq(z∣xi)]−Eq[logp(z)]−Eq[logp(xi∣z)]=KL(q(z∣xi)∣p(z))−Eq[logp(xi∣z)]
-
结果分析:
- 最小化上述结果,即最小化第一项,最大化第二项
- 最小化第一项: q φ ( z ∣ x i ) q_{\varphi}\left( z\mid x_i \right) qφ(z∣xi)分布要尽可能近似于 p θ ( z ∣ x i ) p_{\theta}\left( z\mid x_i \right) pθ(z∣xi)分布
- 最大化第二项:不断地在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(xi∣z)]=L1∑l=1L[logpθ(xi∣z(i,l))]
样本 z i , l z_{i,l} zi,l采样自分布 q φ ( z ∣ x i ) q_{\varphi}\left( z\mid x_i \right) qφ(z∣xi),通过样本平均来代替期望
reparameterization trick
在实际过程中,一般不对 q φ ( z ∣ x i ) q_{\varphi}\left( z\mid x_i \right) qφ(z∣xi)直接采样,原因如下:
- q φ ( z ∣ x i ) q_{\varphi}\left( z\mid x_i \right) qφ(z∣xi)分布复杂,采样难度增大
- 若直接采样,上述MCMC近似的期望项无法求导,不能进行梯度更新
trick操作:
- 有如下假设:
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实现
结构图对比
VS
- 识别模型: q φ ( z ∣ x i ) q_{\varphi}\left( z\mid x_i \right) qφ(z∣xi),就是以x为输入z为输出的Encoder,对比AE的Encoder,他输出的不是确定的值,而是所有z可能取值的分布
- 生成模型: p θ ( x i ∣ z ) p_{\theta}\left( x_i|z\right) pθ(xi∣z),就是以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+μ12−1)
-
现有结果已经很方便求导,但是含有对数项,若求导更新参数的时候,对数函数会压缩误差
-
所以我们不对 σ 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+μ12−1)
期望项
本质是负对数似然(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} RecontructionLoss⇔−Eq[logp(xi∣z)]=−L1∑l=1L[logpθ(xi∣z(i,l))]=i=1∑N∥x^i−xi∥2