自动编码机(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)相关推荐

  1. 自编码的matlab代码,深度学习自动编码机MATLAB实现

    深度学习自动编码机MATLAB实现 matlab 2020-11-30 下载地址 https://www.codedown123.com/52407.html 深度学习自动编码机MATLAB实现,包含 ...

  2. paddlepaddle 2 应用于语义分割、自动编码机与GAN的数据同步扩充方法

    支持按照相同的随机参数对iamge和label进行扩充 1.数据扩充方法 from paddle.vision import transforms import numpy as np import ...

  3. satoshi自动上色算法_再见,老照片!百年老照片修复算法,那些高颜值的父母!...

    点赞再看,养成习惯,微信公众号搜索[JackCui-AI]关注这个爱发技术干货的程序员.本文 GitHub Jack-Cherish/PythonPark 已收录,有一线大厂面试完整考点.资料以及我的 ...

  4. 稀疏自编码器及TensorFlow实现

    自动编码机更像是一个识别网络,只是简单重构了输入.而重点应是在像素级重构图像,施加的唯一约束是隐藏层单元的数量. 有趣的是,像素级重构并不能保证网络将从数据集中学习抽象特征,但是可以通过添加更多的约束 ...

  5. 标准自编码器(TensorFlow实现)

    由 Hinton 提出的标准自动编码机(标准自编码器)只有一个隐藏层,隐藏层中神经元的数量少于输入(和输出)层中神经元的数量,这会压缩网络中的信息,因此可以将隐藏层看作是一个压缩层,限定保留的信息. ...

  6. 十九种损失函数,你能认识几个?

    作者:mingo_敏 zenRRan稍有有添加 https://blog.csdn.net/shanglianlm/article/details/85019768 来自:深度学习自然语言处理 ten ...

  7. 总结 | 深度学习损失函数大全

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|计算机视觉联盟 tensorflow和pytorch很多 ...

  8. 微软开源: 老旧照片修复的AI算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 开源最前线(ID:OpenSourceTop) 猿妹整编 | 来源 ...

  9. c++ log函数_认识这19种深度学习损失函数,才能说你了解深度学习!

    编辑:深度学习自然语言处理小编zenRRan 损失函数是深度学习中重要的概念,选择合适的损失函数是系统能够得到理想结果的保证,本文将以pytorch工具为例,介绍这19中损失函数与实现方法. 19种损 ...

最新文章

  1. MIS开发中.net Framework的打印功能
  2. 登录centos虚拟机后显示-bash-4.1
  3. MySQL更换内存分配器
  4. 【数据结构笔记32】排序算法概述、简单排序(冒泡排序、插入排序)、逆序对
  5. 《疯狂Java讲义》(七)---- 方法
  6. 台式计算机开关电源原理图,计算机开关电源基本结构及原理
  7. 不使用任何中间变量如何将a、b的值进行交换(三种方法)
  8. windows2012计算机在桌面显示,Windows2012 如何在桌面上显示”我的电脑”
  9. 登录网易云显示服务器地址,[网易云音乐]登录流程还原
  10. 计算机电脑怎么开热点,电脑怎么设置wifi热点共享
  11. 2019年QQ透明头像与QQ动态头像设置方法
  12. RIP --- 路由信息协议
  13. Flutter文本输入框-TextField
  14. 服务器开机grub gt 命令修复方法,开机grubgt命令修复方法
  15. 风口上的“低代码”:是技术变革?还是另一个风险敞口?
  16. 一步一步教你用CSS画爱心
  17. 群联u盘量产为固定盘后解决方案汇总(未验证)
  18. 使用SSM框架开发企业级应用——北大青鸟ACCP8.0总结
  19. 免费绿色的Mac电脑清理神器CleanMyMac2023
  20. 新手初识SDR(一)

热门文章

  1. Josh Frank:XRP是有史以来第三大倒闭事件
  2. 破局:滚动率知识在信贷风控中的系统总结
  3. 基于画像推荐系统设计(离线+实时)
  4. Python之Django之views中视图代码重复查询的优化
  5. 研究js特效巩固JavaScript知识
  6. 关于git stash的应用总结
  7. 【bzoj4753】[Jsoi2016]最佳团体 分数规划+树形背包dp
  8. 虚拟机安装ubuntu14.04.5系统
  9. TCP链接的建立与终止
  10. java_js_json_日期格式化