堆叠式自动编码器(SAE)--学习笔记
- 自动编码器及常见类型:
- 对于自编码器,往往并不关心输出是什么(因为输出就是输入的复现),只需要关心中间层的编码,或输入到编码的映射。
- 如果在编码和输入不同的前提下,系统仍可以复原输入,则说明编码已承载输入的所有信息。即特征提取。
- 给隐层增加一定的约束,从数据维度:
- 隐藏层维度小于输入数据维度,当每两层之间的变换均为线性且监督训练的误差是二次型误差时,网络等价于PCA。
- 隐藏层维度大于输入数据维度,即“稀疏自编码器”,原理,从人脑机理出发,人类神经系统在某一刺激下,大部分神经元是被抑制的。
- 稀疏自编码器:
- 对隐藏单元施加稀疏性(同时具有比输入更多的隐藏单元), 自动编码器可以在输入数据中学习有用的结构。 这允许输入 的稀疏表示。 这些对于分类任务的前训练是有用的。
- 稀疏自动编码器是对自动编码器加入一个正则化项,约束隐含层神经元节点大部分输出0,少部分输出非零,大大减少了需要训练的参数数目。克服了自动编码器容易陷入局部及小值和存在过拟合的问题
- 无监督逐层贪婪预训练:
- 对于较深的网络,如果直接进行训练很容易出现梯度消失或梯度爆炸问题,无监督逐层贪婪预训练是减缓这一问题的一个简单方法,即通过逐层的进行单独训练,形成一个初始化的参数,在训练第L层时,冻结第1~(L-1)层的参数, 最终实现每一层的单独训练.
- 逐层单独使得每个层得参数都只是全部最优,然后再进行这个网络的训练,直到网络的收敛。
- 逐层预训练使得深度网络的训练成为可能,原因:预训练好的网络在一定程度上拟合了训练数据的结构,使得整个网络的初始值在一个合适的状态,便于有监督阶段加快迭代收敛。
- SAE:
- 是一个由多层稀疏自编码器组成的深度神经网络模型,其前一层自编码器隐层的输出作为其后一层自编码器的输入,最后一层是个分类器(logistic 回归或者softmax分类(预测分析))。
- SAE是在简单自动编码器基础上,增加隐藏层的深度,一般,堆栈自动编码器是关于隐层对称的,通常Encoder和Decoder的层数是一样的,左右对称.其对称层的参数也可以是具有转置关系的,这种技术称为权重捆绑,这样可以使得模型的参数减半,加快训练速度并降低过拟合的风险。注意: 偏置项不进行捆绑。
- 训练一个编码器得到隐层的特征表示h,再将h作为原始信息,训练一个新的自编码器,得到新的特征表达。
- SAE整个网络的训练不是一蹴而就的,而是需要逐层进行。逐层非监督预训练。
- 对于常见的分类任务,一般分为两个阶段:
- 逐层预训练(非监督学习,自动编码器各层的输出都是原始数据的不同表达)
- 微调(增加一层分类层,并结合有标注的训练数据,在误差函数指导下,对系统的参数进行微调,以使得整个网络能够完成所需的分类任务。)
- 通过layer-wise pre-training逐层堆叠起来,而不是直接训练多层的网络。
- 堆叠自动编码器方法与DBN相同,具体过程描述如下:
- 给定初始输入,采用无监督方式训练第一层自动编码器,减小重构误差达到设定值。
- 把第一个自动编码器隐含层的输出作为第二个自动编码器的输入,采用以上同样的方法训练自动编码器。
- 重复第二步直到初始化完成所有自动编码器。
- 把最后一个堆叠自动编码器的隐含层的输出作为分类器的输入,然后采用有监督的方法训练分类器的参数。
堆叠式自动编码器(SAE)--学习笔记相关推荐
- 堆叠式降噪自动编码器(SDA)
1.1 自动编码器(AutoEncoder,AE) 自动编码器(AutoEncoder,AE)就是一种尽可能复现输入信号的神经网络,其输出向量与输入向量同维,常按照输入向量的某种形式,通过隐层学习一个 ...
- Matlab深度学习笔记——深度学习工具箱说明
本文是Rasmus Berg Palm发布在Github上的Deep-learning toolbox的说明文件,作者对这个工具箱进行了详细的介绍(原文链接:https://github.com/ra ...
- 《机器学习实战:基于Scikit-Learn、Keras和TensorFlow(第2版)》学习笔记
文章目录 书籍信息 技术和工具 Scikit-Learn TensorFlow Keras Jupyter notebook 资源 书籍配套资料 流行的开放数据存储库 元门户站点(它们会列出开放的数据 ...
- 自编码器/堆叠式自编码器(SAE)
自编码器( Auto-Encoder,AE) 定义: 通过将输入信息作为学习目标,对输入信息进行表征学习 (representation learning).(将原始数据转换成为能够被机器学习来有效开 ...
- 堆排序怎么建立初始堆_学习笔记-详解堆排序
本文目的 上一章节已经详细的向大家介绍过排序的相关概念(详见学习笔记-排序简单介绍) ,本文旨在为大家详细的介绍堆排序. 堆排序 堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序 ...
- 大顶堆删除最大值_算法学习笔记(47): 二叉堆
堆(Heap)是一类数据结构,它们拥有树状结构,且能够保证父节点比子节点大(或小).当根节点保存堆中最大值时,称为大根堆:反之,则称为小根堆. 二叉堆(Binary Heap)是最简单.常用的堆,是一 ...
- C语言学习笔记——堆区空间申请(一)
C语言学习笔记 堆区空间申请(一) 栈区变量分析 所有程序/软件的运行,都是由操作系统统一调配的,操作系统是程序的运行环境 运行中的多个程序之间,内存是不交叉的 程序结束后,操作系统还要释放其使用的资 ...
- 算法学习 (门徒计划)2-2 堆(Heap)与优先队列 学习笔记
算法学习 (门徒计划)2-2 堆(Heap)与优先队列 学习笔记 前言 堆(Heap)的概念和基础操作 基础概念 基础操作 入堆与上滤 出堆与下滤 自定义类实现堆 优先队列 经典例题,堆的基础应用 l ...
- 2.阅读笔记Stacked Attention Networks for Image Question Answering(堆叠式注意力网络)
Stacked Attention Networks for Image Question Answering(堆叠式注意力网络) 一,介绍 这篇论文提出了一种用于图像问答任务的堆叠式注意力网络SAN ...
最新文章
- 以Delphi Package架构多人开发应用程序环境
- 有用的mysql语句
- 【学亮IT手记】AngularJS增删改查服务请求+代码剥离封装抽取示例
- zigbee zstack 串口,按键,消息,定时器
- JS---捕捉URL地址,以及模仿GET方法
- HDU 5045 Contest
- MATLAB模拟导热过程,一维热传导MATLAB模拟.doc
- python学习——和python的第一次亲密接触
- 在html显示php代码,html跳转php只显示源代码
- 中国医学史(第三章 中医药理论体系的初步形成)
- blast2go mysql_blast2go本地化-2017教程
- PB 导出的Excel,打开会提示文件格式和扩展名不匹配问题
- pdf转换工具有哪些?试一试这几个方法!
- 平板触控笔要原装的吗?时下最火的平替苹果笔测评
- 小麦苗健康检查脚本说明
- MySQL安装当中遇到的问题
- 显示器测试程序(黑、白、红、绿、蓝)--C++实现(MFC)
- distinct , in 的用法
- 从GTF文件中提取TSS上下游1kb的区间,要多少行代码?
- TCP-IP协议详解(5) 我尽力(IP协议详解)