自编码器变种
1、Denoising Auto-Encoder:加随机噪声
2、Dropout Auto-Encoder:防止过拟合
3、Adversarial Auto-Encoder:利用额外的判别器网络来判定降维的隐藏变量𝒛是否采样先验分布𝑝(𝒛),对抗自编码器是从下一章要介绍的生成对抗网络算法衍生而 来,在学习完对抗生成网络后可以加深对对抗自编码器的理解。
4、VAE:我从概率的角度,我们假设任何数据集都采样自某个分布𝑝(x|z),z 是隐藏的变量,代表了某种内部特征,比如手写数字的图片x,z 可以表示字体的大小,书写风格,加粗、斜体等设定,它符合某个先验分布𝑝(z),在给定具体隐藏变量z 的情况下,我们可以从学到了分布𝑝(x|z)中采样一系列的生成样本,这些样本都具有z 所表示的共性。
推导过程可以参考最大似然估计值link
编码器参数为𝑞𝜙(z|x),中间量为z,即先验概率为p(z),解码器参数为𝑝𝜃(x|z),最后得出式子:
maxℒ(𝜃, 𝜙) = −𝔻𝐾𝐿 (𝑞𝜙(z|x)|𝑝(z)) + 𝔼𝑧~𝑞 [𝑙𝑜𝑔 𝑝𝜃(x|z)](∫𝑞 (z|x) 𝑙𝑜𝑔 𝑝𝜃(x|z))
因此可以用编码器网络参数化𝑞 (z|x)函数,解码器网络参数化
𝑝𝜃(x|z)函数,通过计算解码器的输出分布𝑞𝜙(z|x)与先验分布𝑝(z)之间的KL 散度,以及解码器的似然概率𝑙𝑜𝑔 𝑝𝜃(x|z)构成的损失函数,即可优化ℒ(𝜃, 𝜙)目标。
式子第一项求最小值,一般p(z)为正态分布,q一般也为正态分布;
式子第二项与𝑝 (x) = ∫ 𝑝(x|z)𝑝(z)𝑑z相似,即输出与输入的最小差值。
编码器输出先验分布的均值𝜇和方差𝜎2,由于采样操作的存在,导致梯度传播是不连续的,无法通过梯度下降算法端到端式训练VAE 网络。
reparameterization trick:它通过 z= 𝜇 + 𝜎 ⊙ 𝜀方式采样隐变量z,其中𝜕𝑧,𝜕𝜇和𝜕𝑧𝜕𝜎均是连续可导,从而将梯度传播连接起来。𝜀变量采样自标准正态分布𝒩(0, 𝐼),𝜇和𝜎由编码器网络产生,通过 = 𝜇 + 𝜎 ⊙ 𝜀即可获得采样后的隐变量。