花书+吴恩达深度学习(二二)自编码器(欠完备,DAE,CAE,PSD)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhq9695/article/details/86558266

如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~

花书+吴恩达深度学习(二一)线性因子模型(概率PCA,ICA,SFA,稀疏编码)
花书+吴恩达深度学习(二二)自编码器(欠完备,DAE,CAE,PSD)

0. 前言

自编码器(autoencoder)是神经网络的一种,尝试将输入复制到输出

我们不应该将自编码器设计成输入到输出完全相等,通常需要强加约束,使得它们只能近似的复制,并只能复制与训练数据相似的输入

该网络由h=f(x)h=f(x)编码器r=g(h)r=g(h)解码器组成,如下图所示(图源:深度学习):

所有自编码器的训练过程涉及两种推动力的折中:

  1. 学习训练样本xx的表示hh使得xx能通过解码器近似的从hh中恢复
  2. 满足约束或正则惩罚

深度自编码器能比相应的浅层或线性编码器产生更好的压缩效率。训练深度自编码器的普遍策略是训练一堆浅层自编码器来贪心预训练相应的深度架构

1. 欠完备自编码器

欠完备(undercomplete)自编码器为获得有用特征,限制hh的维度比xx

学习欠完备的表示将强制自编码器捕捉训练数据中最显著的特征

学习过程可描述为最小化一个损失函数,如均方误差:
L(x,g(f(x))) L(x,g(f(x)))

如果编码器和解码器被赋予过大的容量,自编码器会执行复制任务而捕捉不到任何有用信息。

2. 去噪自编码器 DAE

去噪自编码器(denoising autoencoder)是一类接受损坏数据作为输入,并训练来预测原始未被损坏数据作为输出的自编码器。

DAE计算图如下所示(图源:深度学习):

DAE的计算过程:

  1. 从训练数据中采一个训练样本xx
  2. C(x~x)C(\tilde{x}\mid x)采一个损坏样本x~\tilde{x}
  3. (x,x~)(x,\tilde{x})作为训练样本来估计自编码器的重构分布preconstruct(xx~)=pdecoder(xh)p_{reconstruct}(x\mid \tilde{x})=p_{decoder}(x\mid h),其中hh是编码器f(x~)f(\tilde{x})的输出,pdecoderp_{decoder}根据解码函数g(h)g(h)定义

DAE最小化下式:
L(x,g(f(x~))) L(x,g(f(\tilde{x})))

因此,去噪自编码器必须撤销这些损坏,而不是简单的复制输入。

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

3. 收缩自编码器 CAE

收缩自编码器(contractive autoencoder)使用一个惩罚项Ω\Omega
L(x,g(f(x)))+Ω(h,x)Ω(h,x)=λf(x)xF2 L(x,g(f(x)))+\Omega(h,x)\\ \Omega(h,x)=\lambda \left\| \frac{\partial{f(x)}}{\partial x} \right\|^2_F

迫使模型学习一个在xx变化小时,目标也没有太大变化的函数。

DAE能抵抗小且有限的输入扰动,CAE使特征提取函数能抵抗极小的输入扰动

CAE鼓励将输入点领域映射到输出点处更小的领域

两种训练自编码器的推动力产生导数大多是微小的自编码器。

4. 稀疏自编码器

稀疏自编码器结合稀疏惩罚Ω(h)\Omega(h)
L(x,g(f(x)))+Ω(h)Ω(h)=λihi L(x,g(f(x)))+\Omega(h)\\ \Omega(h)=\lambda\sum_i\left|h_i\right|

5. 预测稀疏分解 PSD

预测稀疏分解(predictive sparse decomposition)是稀疏编码和参数化自编码器的混合模型。

训练算法交替的相对hh和模型的参数最小化如下式子:
xg(h)2+λh1+γhf(x)2 \left\|x-g(h) \right\|^2+\lambda\left|h\right|_1+\gamma\left\|h-f(x) \right\|^2

预测稀疏分解是学习近似推断的一个例子。


如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~

没有更多推荐了,返回首页