自动编码机(Autodencoder)
自动编码机(Autoencoder)属于非监督学习,不需要对训练样本进行标记。自动编码机(Autoencoder)由三层网络组成,其中输入层神经元数量与输出层神经元数量相等,中间层神经元数量少于输入层和输出层。在网络训练期间,对每个训练样本,经过网络会在输出层产生一个新的信号,网络学习的目的就是使输出信号与输入信号尽量相似。自动编码机(Autoencoder)训练结束之后,其可以由两部分组成,首先是输入层和中间层,我们可以用这个网络来对信号进行压缩;其次是中间层和输出层,我们可以将压缩的信号进行还原。
自动编码机原理,假设我们输入一个nn维的信号x(x∈[0,1])x(x∈[0,1]),经过输入层到达中间层,信号变为y,可以用如下公式表示: y=s(Wx+b) 上式中中 s 是非线性函数,如sigmoid. WW是输入层到中间层的链接权值,b为中间层的bias. 信号y经过解码层解码,输出到n个神经元的输出层,信号变为z,如下公式: z=s(W′y+b′) 上式中中 s是非线性函数,如sigmoid. W′是中间层到输出层的链接权值,b′为输出层的bias. z 被当作是x的预测。 通常情况下,权重矩阵W′被限制为权重矩阵W的转置:W′=WT.
当前的问题就是调整网络参数,使得最终输出的z与原始输入的信号x尽量的接近。根据输入数据的假设分布,有很多误差计算方法。可以使用典型的平方误差(squared error):. 如果输入的数据为位向量或者是位概率向量,可以使用交叉熵方法:
我们希望中间层输出的分布式y,它能够捕获数据变化的主要因素的坐标数据。这类似于将数据投影到主成分上,可以获取数据变化的主要因素。
如果我们将输入层与中间层之间的函数s变为线性函数,将最终输出层信号z与原始输入信号x的误差设为平方误差.则这个问题就变成了一个线性代数中的主成份分析问题了。假设中间层有k个节点,就变成由输入信号x的前k个主成份项,来近似表示原始输入信号.如果中间层的函数s是非线性的,自动编码机功能不同于PCA,具有捕获输入数据多模态方面的能力。当我们考虑堆叠多个编码器构建深度自动编码器时,不考虑PCA变得更加重要。
因为y可以视为x的有损压缩形式,通过我们的优化算法,可以对训练样本产生很好的压缩效果,同时在测试样本集上有很好的表现,但是我们并不能保证网络可以所有样本都有好的压缩效果。
自动编码机(Autodencoder)相关推荐
- 自编码的matlab代码,深度学习自动编码机MATLAB实现
深度学习自动编码机MATLAB实现 matlab 2020-11-30 下载地址 https://www.codedown123.com/52407.html 深度学习自动编码机MATLAB实现,包含 ...
- paddlepaddle 2 应用于语义分割、自动编码机与GAN的数据同步扩充方法
支持按照相同的随机参数对iamge和label进行扩充 1.数据扩充方法 from paddle.vision import transforms import numpy as np import ...
- satoshi自动上色算法_再见,老照片!百年老照片修复算法,那些高颜值的父母!...
点赞再看,养成习惯,微信公众号搜索[JackCui-AI]关注这个爱发技术干货的程序员.本文 GitHub Jack-Cherish/PythonPark 已收录,有一线大厂面试完整考点.资料以及我的 ...
- 稀疏自编码器及TensorFlow实现
自动编码机更像是一个识别网络,只是简单重构了输入.而重点应是在像素级重构图像,施加的唯一约束是隐藏层单元的数量. 有趣的是,像素级重构并不能保证网络将从数据集中学习抽象特征,但是可以通过添加更多的约束 ...
- 标准自编码器(TensorFlow实现)
由 Hinton 提出的标准自动编码机(标准自编码器)只有一个隐藏层,隐藏层中神经元的数量少于输入(和输出)层中神经元的数量,这会压缩网络中的信息,因此可以将隐藏层看作是一个压缩层,限定保留的信息. ...
- 十九种损失函数,你能认识几个?
作者:mingo_敏 zenRRan稍有有添加 https://blog.csdn.net/shanglianlm/article/details/85019768 来自:深度学习自然语言处理 ten ...
- 总结 | 深度学习损失函数大全
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|计算机视觉联盟 tensorflow和pytorch很多 ...
- 微软开源: 老旧照片修复的AI算法
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 开源最前线(ID:OpenSourceTop) 猿妹整编 | 来源 ...
- c++ log函数_认识这19种深度学习损失函数,才能说你了解深度学习!
编辑:深度学习自然语言处理小编zenRRan 损失函数是深度学习中重要的概念,选择合适的损失函数是系统能够得到理想结果的保证,本文将以pytorch工具为例,介绍这19中损失函数与实现方法. 19种损 ...
最新文章
- MIS开发中.net Framework的打印功能
- 登录centos虚拟机后显示-bash-4.1
- MySQL更换内存分配器
- 【数据结构笔记32】排序算法概述、简单排序(冒泡排序、插入排序)、逆序对
- 《疯狂Java讲义》(七)---- 方法
- 台式计算机开关电源原理图,计算机开关电源基本结构及原理
- 不使用任何中间变量如何将a、b的值进行交换(三种方法)
- windows2012计算机在桌面显示,Windows2012 如何在桌面上显示”我的电脑”
- 登录网易云显示服务器地址,[网易云音乐]登录流程还原
- 计算机电脑怎么开热点,电脑怎么设置wifi热点共享
- 2019年QQ透明头像与QQ动态头像设置方法
- RIP --- 路由信息协议
- Flutter文本输入框-TextField
- 服务器开机grub gt 命令修复方法,开机grubgt命令修复方法
- 风口上的“低代码”:是技术变革?还是另一个风险敞口?
- 一步一步教你用CSS画爱心
- 群联u盘量产为固定盘后解决方案汇总(未验证)
- 使用SSM框架开发企业级应用——北大青鸟ACCP8.0总结
- 免费绿色的Mac电脑清理神器CleanMyMac2023
- 新手初识SDR(一)