堆叠降噪自动编码器 Stacked Denoising Auto Encoder(SDAE)

简介: 堆叠降噪自动编码器 Stacked Denoising Auto Encoder(SDAE)

原文链接

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

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

自动编码机由三层网络组成,其中输入层神经元数量与输出层神经元数量相等,中间层神经元数量少于输入层和输出层。搭建一个自动编码器需要完成下面三样工作:搭建编码器,搭建解码器,设定一个损失函数,用以衡量由于压缩而损失掉的信息(自编码器是有损的)。编码器和解码器一般都是参数化的方程,并关于损失函数可导,典型情况是使用神经网络。编码器和解码器的参数可以通过最小化损失函数而优化。

自编码器1.png

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

自动编码器运算过程:原始input(设为x)经过加权(W、b)、映射(Sigmoid)之后得到y,再对y反向加权映射回来成为z。通过反复迭代训练两组(W、b),目的就是使输出信号与输入信号尽量相似。训练结束之后自动编码器可以由两部分组成:

1.输入层和中间层,可以用这个网络来对信号进行压缩

2.中间层和输出层,我们可以将压缩的信号进行还原

自编码器2.png

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

降噪自动编码器就是在自动编码器的基础之上,为了防止过拟合问题而对输入层的输入数据加入噪音,使学习得到的编码器具有鲁棒性而改进的,是Bengio在08年论文:Extracting and composing robust features with denoising autoencoders提出的。
论文中关于降噪自动编码器的示意图如下,类似于dropout,其中x是原始的输入数据,降噪自动编码器以一定概率(通常使用二项分布)把输入层节点的值置为0,从而得到含有噪音的模型输入xˆ。

自编码器3.png

这个破损的数据是很有用的,原因有二:
1.通过与非破损数据训练的对比,破损数据训练出来的Weight噪声比较小。降噪因此得名。原因不难理解,因为擦除的时候不小心把输入噪声给×掉了。
2.破损数据一定程度上减轻了训练数据与测试数据的代沟。由于数据的部分被×掉了,因而这破损数据一定程度上比较接近测试数据。训练、测试肯定有同有异,当然我们要求同舍异。

堆叠降噪自动编码器(Stacked Denoising Auto Encoder,SDAE)

SDAE的思想就是将多个DAE堆叠在一起形成一个深度的架构。只有在训练的时候才会对输入进行腐蚀(加噪),训练完成就不需要在进行腐蚀。结构如下图所示:

自编码器4.png

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

一旦SDAE训练完成, 其高层的特征就可以用做传统的监督算法的输入。当然,也可以在最顶层添加一层logistic regression layer(softmax层),然后使用带label的数据来进一步对网络进行微调(fine-tuning),即用样本进行有监督训练。

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

代码的路

相关文章
|
机器学习/深度学习 数据采集 算法
KMeans+DBSCAN密度聚类+层次聚类的使用(附案例实战)
KMeans+DBSCAN密度聚类+层次聚类的使用(附案例实战)
1584 0
|
Linux 网络安全 开发工具
如何在 Linux CentOS 8 中搭建 GitLab 私有仓库并结合 Cpolar 内网穿透工具实现公网访问私有仓库【无公网IP内网穿透】
如何在 Linux CentOS 8 中搭建 GitLab 私有仓库并结合 Cpolar 内网穿透工具实现公网访问私有仓库【无公网IP内网穿透】
|
网络协议
内网穿透的原理和实现方式
一、定义 内网穿透也成NAT穿透,进行NAT穿透是为了使具有某一个特定源IP地址和源端口号的数据包不被NAT设备屏蔽而正确路由到内网主机。
|
10月前
|
机器学习/深度学习 自然语言处理 搜索推荐
自注意力机制全解析:从原理到计算细节,一文尽览!
自注意力机制(Self-Attention)最早可追溯至20世纪70年代的神经网络研究,但直到2017年Google Brain团队提出Transformer架构后才广泛应用于深度学习。它通过计算序列内部元素间的相关性,捕捉复杂依赖关系,并支持并行化训练,显著提升了处理长文本和序列数据的能力。相比传统的RNN、LSTM和GRU,自注意力机制在自然语言处理(NLP)、计算机视觉、语音识别及推荐系统等领域展现出卓越性能。其核心步骤包括生成查询(Q)、键(K)和值(V)向量,计算缩放点积注意力得分,应用Softmax归一化,以及加权求和生成输出。自注意力机制提高了模型的表达能力,带来了更精准的服务。
11222 46
|
应用服务中间件 Docker 容器
Docker(16)- docker cp 命令详解
Docker(16)- docker cp 命令详解
1115 0
Docker(16)- docker cp 命令详解
|
4月前
|
存储 缓存 安全
系统显卡驱动程序卸载工具,DDU中文绿色版下载,免费显卡驱动彻底卸载工具
Display Driver Uninstaller(DDU)是一款专业显卡驱动卸载工具,支持彻底删除AMD/NVIDIA/Intel显卡驱动及相关残留文件,适用于驱动损坏、版本过旧或系统冲突等情况。绿色版无需安装,操作简单,可帮助用户实现干净的驱动环境。
1294 0
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】30. 神经网络中批量归一化层(batch normalization)的作用及其Pytorch实现
【从零开始学习深度学习】30. 神经网络中批量归一化层(batch normalization)的作用及其Pytorch实现
|
机器学习/深度学习 决策智能
深度学习中的对抗性训练
在这篇技术性文章中,我们将深入探讨深度学习中的对抗性训练。这种训练方法通过引入对抗性样本来提高模型的鲁棒性和泛化能力。文章将从对抗性训练的基本概念、原理以及实现方法等方面进行详细介绍,并结合实际案例分析其在实际应用中的效果和挑战。通过对这一主题的探讨,希望能够为读者提供有益的技术参考和启示。
616 1
|
8月前
|
数据采集 缓存 监控
Zabbix性能调优三板斧
在“2024 Zabbix中国峰会”上,上海宏时数据系统有限公司的董玉凡分享了《Zabbix性能调优三板斧》。内容涵盖Zabbix性能瓶颈分析、优化核心原则及实际案例。通过配置优化、数据采集优化和架构扩展优化三大方面,结合自监控数据精准施策,显著提升大规模监控场景下的系统稳定性与效率。案例展示了6000+节点和5000+网络设备的成功优化实践。
258 0
|
数据采集 机器学习/深度学习 数据可视化
过采样与欠采样技术原理图解:基于二维数据的常见方法效果对比
本文介绍了处理不平衡数据集的过采样和欠采样技术,包括随机过采样、SMOTE、ADASYN、随机欠采样、Tomek Links、Near Miss 和 ENN 等方法。通过二维数据集的可视化示例,直观展示了各种方法的原理和效果差异。文章还讨论了混合采样方法(如SMOTETomek和SMOTEENN)以及应用这些方法的潜在风险,强调了在实际应用中审慎选择的重要性。
743 3
下一篇
开通oss服务