深度学习(花书)第十四章

ZhuYuanxiang 2021-11-18 00:00:00
Categories: Tags:

C14. AutoEncoders

自编码器(autoencoder)是一种深度神经网络,能够经过训练后将输入复制到输出。

14.1 Undercomplete Autoencoders

欠完备(Undercomplete)自编码器:编码维度小于输入维度,强制自编码器捕捉训练数据中最显著的特征

14.2 Regularized Autoencoders

过完备(Overcomplete)自编码器:编码维度大于输入维度。

为了避免模型只学会简单的输入复制到输出,可以采用的方法

注:任何带有隐变量并且配有一个推断过程(计算给定输入的潜在表示)的生成模型,都可以看作自编码器的一个特殊形式。

14.2.1 Sparse Autoencoders

稀疏(Sparse)自编码器:损失函数增加与编码层相关的稀疏惩罚$\Omega(\pmb{h})$

14.2.2 Denoising AutoEncoders

去噪自编码器(Denoising AutoEncoder,DAE):去除输入数据中存在的噪声

14.2.3 Regularizing the Penalizing Derivatives

惩罚导数(Penzlizing Derivatives)的正则自编码器:学习在 $\pmb{x}$变化很小时,目标变化也不大的函数,也称为收缩自编码器(Contractive AutoEncoder,CAE),与去噪自编码器、流形学习和概率模型存在一定的理论联系([Sec 14.7](#14.7 Contractive Autoencoders))

注:与稀疏自编码器的形式相同,但是惩罚项 $\Omega$ 不同。

14.3 Representational Power, Layer Size and Depth

自编码器通常只有单层的编码器和解码器。

深度编码器和解码器:

训练深度自编码器的普遍策略:训练一堆浅层的自编码器,然后再贪心地预训练相应的深度架构

14.4 Stochastic Encoders and Decoders

自编码器本质是一个前馈网络,可以使用与传统前馈网络相同的损失函数和输出单元。

14.5 Denoising AutoEncoders

去噪自编码器(Denoising AutoEncoder,DAE):训练的输入为受损失的数据,然后预测的输出为原始的未被损失的数据。

$$
-\mathbb{E}{\mathbf{x}\sim\tilde{p}{\text{data}}(\mathbf{x})}
\mathbb{E}{\mathbf{x}\sim C(\mathbf{\tilde{x}|x})}
\log p
{\text{decoder}}(\pmb{x|h}=f(\tilde{\pmb{x}}))
$$

14.5.1 Estimating the Score

得分匹配(Sec 18.4)是最大似然的代替方法,提供了对概率分布的一致估计,促使模型在各个数据点上获得与数据分布相同的得分。

DAE的训练准则能够让自编码器学到能够估计数据分布得分的向量场$(g(f(\pmb{x}))-\pmb{x})$

DAE与RBM的联系

本节讨论的是去噪自编码器如何学习表示一个概率分布

14.5.2 Historical Perspective

去噪自编码器可以学到一个好的内部表示,学到的表示可以被用来预训练更深的无监督网络或者监督网络,允许学习容量很高的编码器,同时防止在编码器和解码器之间学习得到一个无用的恒等函数。

14.6 Learning Manifolds with Autoencoders

自编码器基于的思想是:数据是集中在一个低维流形或者一小组这样的流形上,自编码器试图学习流形的结构

流形的重要特征:切平面(Tangent Plane)的集合。

自编码器的训练过程涉及到两种推动力的折衷

两种推动力的结合驱使隐藏的表示去捕获有关数据分布结构的信息。

嵌入表示:学习流形上(或者附近)的数据点的表示(representation),通常使用低维向量给出

14.7 Contractive Autoencoders