自编码器使神经网络的一种,经过训练后能尝试将输入复制到输出。其内部有一个隐藏层 h h h,可以产生编码来表示输入。该网络可以看作由两部分组成:一个由函数 h = f ( x ) h=f(x) h=f(x)表示的编码器和一个生成重构的解码器 r = g ( h ) r=g(h) r=g(h)。一个简单地将输入完全复制到输出的编码器往往没什么用,应该向自编码器中强加一些约束,使它只能近似地被复制,并只能复制与训练数据相似的输入。
欠完备自编码器
自编码器的一般结构为
对于自编码器,我们不关注解码器g的输出,相反,我们关心经过训练后的h是否有有用的特性。
从自编码器获得有用特征的一种方法是限制h的维度比x小,这种编码维度小于输入维度的自编码器是欠完备的自编码器。学习欠完备的表示将强制自编码器捕捉训练数据中最显著的特征。
学习过程可以简单地描述成最小化一个损失函数
L
(
x
,
g
(
f
(
x
)
)
L(x,g(f(x))
L(x,g(f(x)),其中
L
L
L是一个损失函数,惩罚g(f(x))与
x
x
x的差异,如均方误差。
当解码器是线性的且
L
L
L是均方误差时,欠完备的自编码器会学习出与PCA相同的生成子空间。可想而知,拥有非线性编解码函数的自编码器将比PCA更加强大。
同时,如果编码器和解码器的容量过大,自编码器会退化成复制器,而捕获不到有关的数据分布信息,这种情况下的自编码器称为过完备自编码器。
正则自编码器
为了防止过完备的情况产生,可以使用正则自动编码器。正则自编码器所使用的损失函数可以鼓励模型学习各种特征(如稀疏表示、表示的小导数、对噪声或输入缺失的鲁棒性等),无需限制编码器的容量来防止过完备。
稀疏自编码器
稀疏自编码器简单地在训练时结合编码层的稀疏惩罚
Ω
(
h
)
\Omega(h)
Ω(h)和重构误差:
L
(
x
,
g
(
f
(
x
)
)
)
+
Ω
(
h
)
L(x,g(f(x)))+\Omega(h)
L(x,g(f(x)))+Ω(h)
去噪自编码器
去噪自编码器(DAE)的目标是最小化 L ( x , g ( f ( x ′ ) ) ) L(x,g(f(x'))) L(x,g(f(x′))),其中 x ′ x' x′是被某种噪声损坏的x的副本。因此DAE必须撤销这些损坏,而不是简单地复制输入。
惩罚导数作为正则
另一正则自编码器的策略是使用一个类似稀疏自编码器中的惩罚项
Ω
\Omega
Ω,损失函数如下
L
(
x
,
g
(
f
(
x
)
)
)
+
Ω
(
h
,
x
)
L(x,g(f(x)))+\Omega(h,x)
L(x,g(f(x)))+Ω(h,x)
其中,
Ω
(
h
,
x
)
=
λ
∑
i
∣
∣
∇
x
h
i
∣
∣
2
\Omega(h,x)=\lambda\sum_i||\nabla_xh_i||^2
Ω(h,x)=λi∑∣∣∇xhi∣∣2
这迫使模型学习一个在
x
x
x变化小时目标也没有太大变化的函数。因为这个惩罚只对训练数据适用,它迫使自编码器学习可以反映训练数据分布信息的特征。
这种自编码器又被称为收缩自编码器。
表示能力、层的大小和深度
万能近似定理保证了至少有一层隐藏层且隐藏单元足够多的前馈神经网络能以任意精度近似任意函数。同样的,深度自编码器在给定足够多的隐藏单元的情况下,能以任意精度近似任意从输入到编码的映射。
预测稀疏分解
**预测系数分解(PSD)**是稀疏编码和参数化自编码器的混合模型。参数化编码器被训练为能预测迭代推断的输出。PSD被应用于图片和视频中对象识别的无监督特征学习,在音频中也有所应用。