乐趣区

关于算法:堆叠降噪自动编码器-Stacked-Denoising-Auto-EncoderSDAE

原文链接

主动编码器(Auto-Encoder,AE)

自编码器(autoencoder)是神经网络的一种,经过训练后能尝试将输出复制到输入。自编码器外部有一个暗藏层 h,能够产生编码(code)示意输出。该网络能够看作由两局部组成:一个由函数 h = f(x) 示意的编码器和一个生成重构的解码器 r = g(h)。咱们不应该将自编码器设计成输出到输入齐全相等。这通常须要向自编码器强加一些束缚,使它只能近似地复制,并只能复制与训练数据类似的输出。

自动编码机由三层网络组成,其中输出层神经元数量与输入层神经元数量相等,中间层神经元数量少于输出层和输入层。搭建一个主动编码器须要实现上面三样工作:搭建编码器,搭建解码器,设定一个损失函数,用以掂量因为压缩而损失掉的信息(自编码器是有损的)。编码器和解码器个别都是参数化的方程,并对于损失函数可导,典型状况是应用神经网络。编码器和解码器的参数能够通过最小化损失函数而优化。

自动编码机(Auto-encoder)是一个自监督的算法,并不是一个无监督算法,它不须要对训练样本进行标记,其标签产生自输出数据。因而自编码器很容易对指定类的输出训练出一种特定的编码器,而不须要实现任何新工作。主动编码器是数据相干的,只能压缩那些与训练数据相似的数据。比方,应用人脸训练进去的主动编码器在压缩别的图片,比方树木时性能很差,因为它学习到的特色是与人脸相干的。

主动编码器运算过程:原始 input(设为 x)通过加权(W、b)、映射(Sigmoid)之后失去 y,再对 y 反向加权映射回来成为 z。通过重复迭代训练两组(W、b),目标就是使输入信号与输出信号尽量类似。训练完结之后主动编码器能够由两局部组成:

1. 输出层和中间层,能够用这个网络来对信号进行压缩

2. 中间层和输入层,咱们能够将压缩的信号进行还原

降噪主动编码器(Denoising Auto Encoder,DAE)

降噪主动编码器就是在主动编码器的根底之上,为了避免过拟合问题而对输出层的输出数据退出乐音,使学习失去的编码器具备鲁棒性而改良的,是 Bengio 在 08 年论文:Extracting and composing robust features with denoising autoencoders 提出的。
论文中对于降噪主动编码器的示意图如下,相似于 dropout,其中 x 是原始的输出数据,降噪主动编码器以肯定概率(通常应用二项分布)把输出层节点的值置为 0,从而失去含有乐音的模型输出 xˆ。

这个破损的数据是很有用的,起因有二:
1. 通过与非破损数据训练的比照,破损数据训练进去的 Weight 噪声比拟小。降噪因而得名。起因不难理解,因为擦除的时候不小心把输出噪声给×掉了。
2. 破损数据肯定水平上加重了训练数据与测试数据的代沟。因为数据的局部被×掉了,因此这破损数据肯定水平上比拟靠近测试数据。训练、测试必定有同有异,当然咱们要求同舍异。

重叠降噪主动编码器(Stacked Denoising Auto Encoder,SDAE)

SDAE 的思维就是将多个 DAE 重叠在一起造成一个深度的架构。只有在训练的时候才会对输出进行侵蚀(加噪),训练实现就不须要在进行侵蚀。构造如下图所示:

逐层贪心训练:每层自编码层都独自进行非监督训练,以最小化输出(输出为前一层的隐层输入)与重构后果之间的误差为训练指标。前 K 层训练好了,就能够训练 K + 1 层,因为曾经前向流传求出 K 层的输入,再用 K 层的输入当作 K + 1 的输出训练 K + 1 层。

一旦 SDAE 训练实现, 其高层的特色就能够用做传统的监督算法的输出。当然,也能够在最顶层增加一层 logistic regression layer(softmax 层),而后应用带 label 的数据来进一步对网络进行 微调(fine-tuning),即用样本进行有监督训练。

学习更多编程常识,请关注我的公众号:

代码的路

退出移动版