自编码算法(SAE)
一、SAE
1、自编码算法(SAE)功能
(1)自编码算法是一种无监督算法,可以自动从无标注数据中学习特征,可以给出比原始数据更好的特征描述。
(2)因为具有稀疏性,完成了特征的自动选择而不是采用随机的方式,这种方式明显要靠谱一些。就跟主成分分析方法(PCA)类似,自动完成了降维的过程。
2、算法结构及原理
(1)Stacked Autoencoder(SAE)模型是一个由多层Spase AutoEncoder(稀疏自编码器)组成的深度神经网络模型,其前一层自编码器的输出作为其后一层自编码器的输入,最后一层是个分类器(logistic分类器或者softmax分类器,其中logistic回归模型适用于二分类,softmax回归模型适用于多分类)
(2)Spase AutoEncoder(稀疏自编码器)是一种非监督学习算法,需要满足以下两种约束:
a、autoencoder:自编码器要求输出尽可能等于输入
b、sparse:隐层的每个神经元的响应是稀疏的,也就是大部分时间响应为0,也就是平均响应尽可能小(其中m为训练样本个数)
(3) 单个Spase AutoEncoder的结构如下:
编码:输入映射-隐藏层
解码:隐藏层-输出
栈式自编码神经网络作为由多层稀疏自编码器组成的神经网络,前一层自编码器的输出作为后一层的输入。栈式自编码神经网络参数是通过逐层贪婪训练获得的。以一个包含2个隐藏层,输出层为softmax的神经网络为例,其训练过程可以表示为:
a、用原始输入x训练第一个自编码器,学习原始输入的一阶特征h(1),如图(1)左边所示。
b、将所有得到的一阶特征h(1)作为第二个自编码器的输入,学习原始输入的二阶特征h(2),如图(1)中间所示。
c、得到所有的二阶特征得到所有的二阶特征h(2),作为softmax分类器的输入,训练分类器的参数。如图(1)右边所示。
图(1)
(3)参数微调
在上述预训练结束之后,将上面三层结合起来得到包含两个隐藏层和一个softmax输出层的栈式自编码网络,如下图所示。
然后采用反向传播算法调整所有层的参数,这个过程称为微调。微调过程中,网络所有层的全部参数都被优化,经过微调后,可以大幅提高神经网络的分类性能。
3、输入数据格式
输入数据也可以是导入和读取文件数据,MATLAB支持的数据格式多种多样,常见的主要有txt格式、xml格式等。mat文件是matlab的数据存储的标准格式。mat文件是标准的双精度、二进制文件,还可以ASCII码形式保存和加载,在MATLAB中打开显示类似于单行EXCEL表格。
自编码算法(SAE)相关推荐
- 4种最常问的编码算法面试问题,你会吗?
导语:面试是测查和评价人员能力素质的一种考试活动.最常问的编码算法面试问题你知道多少呢? 作者 | Rahul Sabnis 译者 | 苏本如,编辑 | 刘静 来源 | CSDN(ID:CSDNnew ...
- huffman java_详解Huffman编码算法之Java实现
Huffman编码介绍 Huffman编码处理的是字符以及字符对应的二进制的编码配对问题,分为编码和解码,目的是压缩字符对应的二进制数据长度.我们知道字符存贮和传输的时候都是二进制的(计算机只认识0/ ...
- Elias-Fano编码算法——倒排索引压缩用,本质上就是桶排序数据结构思路
Elias-Fano编码过程如下:把一组整数的最低l位连接在一起,同时把高位以严格单调增的排序划分为桶. Example: 2, 3, 5, 7, 11, 13, 24 Count in unary ...
- Stanford UFLDL教程 微调多层自编码算法
微调多层自编码算法 Contents [hide] 1介绍 2一般策略 3使用反向传播法进行微调 4中英文对照 5中文译者 介绍 微调是深度学习中的常用策略,可以大幅提升一个栈式自编码神经网络的性能表 ...
- Stanford UFLDL教程 栈式自编码算法
栈式自编码算法 Contents [hide] 1概述 2训练 3具体实例 4讨论 5中英文对照 6中文译者 概述 逐层贪婪训练法依次训练网络的每一层,进而预训练整个深度神经网络.在本节中,我们将会学 ...
- Stanford UFLDL教程 自编码算法与稀疏性
自编码算法与稀疏性 目前为止,我们已经讨论了神经网络在有监督学习中的应用.在有监督学习中,训练样本是有类别标签的.现在假设我们只有一个没有带类别标签的训练样本集合 ,其中 .自编码神经网络是一种无监督 ...
- 浅谈Base64编码算法
一.什么是编码解码 编码:利用特定的算法,对原始内容进行处理,生成运算后的内容,形成另一种数据的表现形式,可以根据算法,再还原回来,这种操作称之为编码. 解码:利用编码使用的算法的逆运算,对经过编码的 ...
- Base64编码算法
转载:http://www.cnblogs.com/xqxacm/p/4886299.html 一.什么是编码解码 编码:利用特定的算法,对原始内容进行处理,生成运算后的内容,形成另一种数据的表现形式 ...
- python降维可视化 自编码_deep learning 自编码算法详细理解与代码实现(超详细)...
在有监督学习中,训练样本是有类别标签的.现在假设我们只有一个没有带类别标签的训练样本集合 ,其中 .自编码神经网络是一种无监督学习算法,它使用了反向传播算法,并让目标值等于输入值,比如 .下图是一个自 ...
最新文章
- 在DataTable中添加行和列数据
- 为什么总说做产品经理的门槛低?
- android r.java 原理,深入理解Android消息处理系统原理
- apache common-io.jar FileUtils
- IOS https抓包及10.3.3版本证书不生效问题解决
- 多个页面同时跳转到一个页面,然后返回到上级页面
- 必须建筑师附体!像盖大楼那样打造数据即服务
- linuxpython源文件_如何在Linux中运行Python源文件
- L2-022 重排链表-PAT团体程序设计天梯赛GPLT
- WhereHows 数据发现和管理工具
- PCD与STL格式及其内涵
- oracle学习札记95
- C++学习笔记:实现向量类的加减赋值运算,重载运算符
- vue 开发的微信公众号网页 添加背景音乐,以及音乐图标旋转动画
- Biotin-PEG2k-NHS,Biotin-PEG2000-NHS,PEG衍生物
- 微信小程序---授权保存图片或视频,拒绝后不在出现弹窗---自定义组件弹窗
- SQLServer 时间段分隔,时间段查询,查询时间段内的数据
- React 安装及创建项目
- 计算机策略更新失败用户策略更新失败,升级更新win10遇到错误代码8024000B的两种解决办法...
- unity找不到报错界面