如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~
花书+吴恩达深度学习(二一)线性因子模型(概率PCA,ICA,SFA,稀疏编码)
花书+吴恩达深度学习(二二)自编码器(欠完备,DAE,CAE,PSD)
0. 前言
自编码器(autoencoder)是神经网络的一种,尝试将输入复制到输出。
我们不应该将自编码器设计成输入到输出完全相等,通常需要强加约束,使得它们只能近似的复制,并只能复制与训练数据相似的输入。
该网络由 h = f ( x ) h=f(x) h=f(x)的编码器和 r = g ( h ) r=g(h) r=g(h)的解码器组成,如下图所示(图源:深度学习):
所有自编码器的训练过程涉及两种推动力的折中:
- 学习训练样本 x x x的表示 h h h使得 x x x能通过解码器近似的从 h h h中恢复
- 满足约束或正则惩罚
深度自编码器能比相应的浅层或线性编码器产生更好的压缩效率。训练深度自编码器的普遍策略是训练一堆浅层自编码器来贪心预训练相应的深度架构。
1. 欠完备自编码器
欠完备(undercomplete)自编码器为获得有用特征,限制 h h h的维度比 x x x小。
学习欠完备的表示将强制自编码器捕捉训练数据中最显著的特征。
学习过程可描述为最小化一个损失函数,如均方误差:
L ( x , g ( f ( x ) ) ) L(x,g(f(x))) L(x,g(f(x)))
如果编码器和解码器被赋予过大的容量,自编码器会执行复制任务而捕捉不到任何有用信息。
2. 去噪自编码器 DAE
去噪自编码器(denoising autoencoder)是一类接受损坏数据作为输入,并训练来预测原始未被损坏数据作为输出的自编码器。
DAE计算图如下所示(图源:深度学习):
DAE的计算过程:
- 从训练数据中采一个训练样本 x x x
- 从 C ( x ~ ∣ x ) C(\tilde{x}\mid x) C(