自编码算法(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的结构如下:
自编码算法(SAE)_第1张图片
编码:输入映射-隐藏层
解码:隐藏层-输出
栈式自编码神经网络作为由多层稀疏自编码器组成的神经网络,前一层自编码器的输出作为后一层的输入。栈式自编码神经网络参数是通过逐层贪婪训练获得的。以一个包含2个隐藏层,输出层为softmax的神经网络为例,其训练过程可以表示为:

a、用原始输入x训练第一个自编码器,学习原始输入的一阶特征h(1),如图(1)左边所示。
b、将所有得到的一阶特征h(1)作为第二个自编码器的输入,学习原始输入的二阶特征h(2),如图(1)中间所示。
c、得到所有的二阶特征得到所有的二阶特征h(2),作为softmax分类器的输入,训练分类器的参数。如图(1)右边所示。

自编码算法(SAE)_第2张图片
图(1)
(3)参数微调
在上述预训练结束之后,将上面三层结合起来得到包含两个隐藏层和一个softmax输出层的栈式自编码网络,如下图所示。
然后采用反向传播算法调整所有层的参数,这个过程称为微调。微调过程中,网络所有层的全部参数都被优化,经过微调后,可以大幅提高神经网络的分类性能。
自编码算法(SAE)_第3张图片
3、输入数据格式
输入数据也可以是导入和读取文件数据,MATLAB支持的数据格式多种多样,常见的主要有txt格式、xml格式等。mat文件是matlab的数据存储的标准格式。mat文件是标准的双精度、二进制文件,还可以ASCII码形式保存和加载,在MATLAB中打开显示类似于单行EXCEL表格。

你可能感兴趣的:(自编码算法(SAE))