文章目录
禁止转载
自动编码器 AutoEncoder
-
组成 Components:
- 编码器 Encoder: X → Z X \rightarrow Z X→Z
- 解码器 Decoder: Z → X ^ Z \rightarrow \hat X Z→X^
- 其中, X X X为训练集输入; Z Z Z为隐变量 latent variable
-
应用场景 Applications:
-
自动编码器:输入和输出尽可能相似
-
去噪模型 Denoising: 去除图像噪声(去水印也可)
-
压缩模型 Compression:将图像使用低维隐变量表示,结果传输后在接收端使用解压缩恢复图像
-
异常检测 Anomaly detector:根据损失大小检测图像是否和训练集同分布
-
生成器 Generator:将随机向量映射成有意义的数据
-
-
注意 Note: 编码器的降维过程如果使用无非线性激活函数的单层CNN,那么它将等效于PCA
变分推断 Variational Inference
- 引入 Introduction
- 动机 Motivation: 作为一个生成器来说,随机采样生成的向量 Z Z Z很难通过解码器Decoder对应到有意义的数据,导致生成器模型失败。
- 解决方案 Solution:假定 Z Z Z服从某分布,通过前半部分预测分布参数,随后从分布中采样得到可能对应有意义数据的 Z Z Z。
- 一些事实 Some Facts:
d
d
d维的任意分布可以被一系列
d
d
d维的正态分布和一个将它们映射的一个足够复杂的函数来表示。
- 方法和讨论 Methods&Discussion:
-
数学说明:对于编码器这个过程,条件概率公式可由贝叶斯公式表达,其中 P ( X ) P(X) P(X) 一般是高维数据,计算复杂intractable。
-
对于上述问题,有两种解决方案:Monte Carlo方法(基于采样的方法?),变分推断方法。变分推断使用另一个分布来近似不可求解的分布,这一过程是通过最小化两个分布之间的KL散度实现的。
-
KL散度 divergence:
- K L ≥ 0 KL \geq 0 KL≥0
- KL散度不是对称的, q q q对 p p p的KL散度和 p p p对 q q q的KL散度不同
-
综上可得下式,对于给定的 X X X,左式是固定的,对于右式来说,最小化第一项等同于最大化第二项,并且由于第二项+第一项(KL散度),所以左式恨大于等于第二项,第二项故又称为变分下限variational lower bound,它也是我们需要优化的项。
-
关于上式为什么选择 K L ( q ∣ ∣ p ) KL(q||p) KL(q∣∣p):假定 p p p是一个多峰的真实分布, q q q是期待用来近似 p p p的可求解分布,则从下图结合KL散度的计算公式可得到解答。
-
对第二项进行变换得到两项,第一项实际上维感知损失,常见的有交叉熵误差、均方误差等,第二项表示 q q q和 p p p的散度。
-
模型的结构如下所示,编码器估计隐变量分布的参数,隐变量的分布一般假定为正态分布,采样得到的隐变量输入给解码器得到输出,但是此时存在一些问题:基于梯度下降的算法无法更新网络参数,因为采样操作在模型中引入了不确定节点,导致无法求解梯度。可以通过重参数的化的方法进行解决,即 Z = Σ ∗ θ + μ Z=\Sigma * \theta + \mu Z=Σ∗θ+μ,其中 θ \theta θ是服从标准正太分布,通过采样得到,这样就把随机节点移除了。
-
变分自动编码器 Variational AutoEncoder
- 未重参数化的VAE结构(左)和重参数化之后的VAE结构(右)
- 总结
条件变分自动编码器 Conditional Variational AutoEncoder
- 在编码器和解码器都引入输入
实验 Experiments
- 实验结果
声明
- 第一节中的图片来源于李宏毅老师的课件
- Tutorial on Variational Autoencoders
- https://www.youtube.com/watch?v=uaaqyVS9-rM