1. 自动编码器及常见类型:

    1. 对于自编码器,往往并不关心输出是什么(因为输出就是输入的复现),只需要关心中间层的编码,或输入到编码的映射。
    2. 如果在编码和输入不同的前提下,系统仍可以复原输入,则说明编码已承载输入的所有信息。即特征提取。
    3. 给隐层增加一定的约束,从数据维度:
      1. 隐藏层维度小于输入数据维度,当每两层之间的变换均为线性且监督训练的误差是二次型误差时,网络等价于PCA。
      2. 隐藏层维度大于输入数据维度,即“稀疏自编码器”,原理,从人脑机理出发,人类神经系统在某一刺激下,大部分神经元是被抑制的。
    4. 稀疏自编码器:
      1. 对隐藏单元施加稀疏性(同时具有比输入更多的隐藏单元), 自动编码器可以在输入数据中学习有用的结构。 这允许输入 的稀疏表示。 这些对于分类任务的前训练是有用的。
      2. 稀疏自动编码器是对自动编码器加入一个正则化项,约束隐含层神经元节点大部分输出0,少部分输出非零,大大减少了需要训练的参数数目。克服了自动编码器容易陷入局部及小值和存在过拟合的问题
  2. 无监督逐层贪婪预训练:
    1. 对于较深的网络,如果直接进行训练很容易出现梯度消失或梯度爆炸问题,无监督逐层贪婪预训练是减缓这一问题的一个简单方法,即通过逐层的进行单独训练,形成一个初始化的参数,在训练第L层时,冻结第1~(L-1)层的参数, 最终实现每一层的单独训练.
    2. 逐层单独使得每个层得参数都只是全部最优,然后再进行这个网络的训练,直到网络的收敛。
    3. 逐层预训练使得深度网络的训练成为可能,原因:预训练好的网络在一定程度上拟合了训练数据的结构,使得整个网络的初始值在一个合适的状态,便于有监督阶段加快迭代收敛。
  3. SAE:
    1. 是一个由多层稀疏自编码器组成的深度神经网络模型,其前一层自编码器隐层的输出作为其后一层自编码器的输入,最后一层是个分类器(logistic 回归或者softmax分类(预测分析))。
    2. SAE是在简单自动编码器基础上,增加隐藏层的深度,一般,堆栈自动编码器是关于隐层对称的,通常Encoder和Decoder的层数是一样的,左右对称.其对称层的参数也可以是具有转置关系的,这种技术称为权重捆绑,这样可以使得模型的参数减半,加快训练速度并降低过拟合的风险。注意: 偏置项不进行捆绑。
    3. 训练一个编码器得到隐层的特征表示h,再将h作为原始信息,训练一个新的自编码器,得到新的特征表达。
    4. SAE整个网络的训练不是一蹴而就的,而是需要逐层进行。逐层非监督预训练。
    5. 对于常见的分类任务,一般分为两个阶段:
      1. 逐层预训练(非监督学习,自动编码器各层的输出都是原始数据的不同表达)
      2. 微调(增加一层分类层,并结合有标注的训练数据,在误差函数指导下,对系统的参数进行微调,以使得整个网络能够完成所需的分类任务。)
      3. 通过layer-wise pre-training逐层堆叠起来,而不是直接训练多层的网络。
    6. 堆叠自动编码器方法与DBN相同,具体过程描述如下:
      1. 给定初始输入,采用无监督方式训练第一层自动编码器,减小重构误差达到设定值。
      2. 把第一个自动编码器隐含层的输出作为第二个自动编码器的输入,采用以上同样的方法训练自动编码器。
      3. 重复第二步直到初始化完成所有自动编码器。
      4. 把最后一个堆叠自动编码器的隐含层的输出作为分类器的输入,然后采用有监督的方法训练分类器的参数。

堆叠式自动编码器(SAE)--学习笔记相关推荐

  1. 堆叠式降噪自动编码器(SDA)

    1.1 自动编码器(AutoEncoder,AE) 自动编码器(AutoEncoder,AE)就是一种尽可能复现输入信号的神经网络,其输出向量与输入向量同维,常按照输入向量的某种形式,通过隐层学习一个 ...

  2. Matlab深度学习笔记——深度学习工具箱说明

    本文是Rasmus Berg Palm发布在Github上的Deep-learning toolbox的说明文件,作者对这个工具箱进行了详细的介绍(原文链接:https://github.com/ra ...

  3. 《机器学习实战:基于Scikit-Learn、Keras和TensorFlow(第2版)》学习笔记

    文章目录 书籍信息 技术和工具 Scikit-Learn TensorFlow Keras Jupyter notebook 资源 书籍配套资料 流行的开放数据存储库 元门户站点(它们会列出开放的数据 ...

  4. 自编码器/堆叠式自编码器(SAE)

    自编码器( Auto-Encoder,AE) 定义: 通过将输入信息作为学习目标,对输入信息进行表征学习 (representation learning).(将原始数据转换成为能够被机器学习来有效开 ...

  5. 堆排序怎么建立初始堆_学习笔记-详解堆排序

    本文目的 上一章节已经详细的向大家介绍过排序的相关概念(详见学习笔记-排序简单介绍) ,本文旨在为大家详细的介绍堆排序. 堆排序 堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序 ...

  6. 大顶堆删除最大值_算法学习笔记(47): 二叉堆

    堆(Heap)是一类数据结构,它们拥有树状结构,且能够保证父节点比子节点大(或小).当根节点保存堆中最大值时,称为大根堆:反之,则称为小根堆. 二叉堆(Binary Heap)是最简单.常用的堆,是一 ...

  7. C语言学习笔记——堆区空间申请(一)

    C语言学习笔记 堆区空间申请(一) 栈区变量分析 所有程序/软件的运行,都是由操作系统统一调配的,操作系统是程序的运行环境 运行中的多个程序之间,内存是不交叉的 程序结束后,操作系统还要释放其使用的资 ...

  8. 算法学习 (门徒计划)2-2 堆(Heap)与优先队列 学习笔记

    算法学习 (门徒计划)2-2 堆(Heap)与优先队列 学习笔记 前言 堆(Heap)的概念和基础操作 基础概念 基础操作 入堆与上滤 出堆与下滤 自定义类实现堆 优先队列 经典例题,堆的基础应用 l ...

  9. 2.阅读笔记Stacked Attention Networks for Image Question Answering(堆叠式注意力网络)

    Stacked Attention Networks for Image Question Answering(堆叠式注意力网络) 一,介绍 这篇论文提出了一种用于图像问答任务的堆叠式注意力网络SAN ...

最新文章

  1. 以Delphi Package架构多人开发应用程序环境
  2. 有用的mysql语句
  3. 【学亮IT手记】AngularJS增删改查服务请求+代码剥离封装抽取示例
  4. zigbee zstack 串口,按键,消息,定时器
  5. JS---捕捉URL地址,以及模仿GET方法
  6. HDU 5045 Contest
  7. MATLAB模拟导热过程,一维热传导MATLAB模拟.doc
  8. python学习——和python的第一次亲密接触
  9. 在html显示php代码,html跳转php只显示源代码
  10. 中国医学史(第三章 中医药理论体系的初步形成)
  11. blast2go mysql_blast2go本地化-2017教程
  12. PB 导出的Excel,打开会提示文件格式和扩展名不匹配问题
  13. pdf转换工具有哪些?试一试这几个方法!
  14. 平板触控笔要原装的吗?时下最火的平替苹果笔测评
  15. 小麦苗健康检查脚本说明
  16. MySQL安装当中遇到的问题
  17. 显示器测试程序(黑、白、红、绿、蓝)--C++实现(MFC)
  18. distinct , in 的用法
  19. 从GTF文件中提取TSS上下游1kb的区间,要多少行代码?
  20. TCP-IP协议详解(5) 我尽力(IP协议详解)

热门文章

  1. 射频layout设计笔记
  2. Oracle 11g 新建用户
  3. unity优化杂谈1
  4. 中学 教育知识与能力 思维导图
  5. 安桌 网易新闻客户端运行
  6. Java零钱兑换leetcode
  7. Materials Studio报错及解决方法(持续更新)
  8. ECMAScript 6中数组新方法
  9. PCIe总线(协议简述)
  10. PD诱骗芯片_PD+QC快充取电原理