自编码器( Auto-Encoder,AE)
定义:
通过将输入信息作为学习目标,对输入信息进行表征学习 (representation learning)。(将原始数据转换成为能够被机器学习来有效开发的一种形式)
作用:
使用自编码器是为了得到有效的数据表示, 降维(部分结构)、异常值检测(完整结构)。对于预测模型,去掉解码器,只保留编码器,让编码器 的输出直接作为后续机器学习模型的输入。(分析获取数据的内部结构特性, 更好的实验分析)
训练过程:
f,g激励函数(Sigmoid, Relu);W1,W2为权重;b,c为偏置。
最小化重构误差(损失值):
arg是变元(即自变量argument)的英文缩写。argmin 就是使后面这个式子达到最小值时的变量的取值
判断损失值(误差)是否在规定范围内,来选择是否更新权重、偏置。
特点:
降维:即隐含层的节点个数要小于输入节点的个数。
稀疏:即在隐含层的神经元上加入稀疏性的限制。 (稀疏更有利于表达数据的特性)
如何更新权重:
使用反向传播算法训练权重值
下面两个图是反向传播算法主要的计算过程:(太懒了,也就没有重新编辑了,[苦笑])
为什么稀疏(如何产生稀疏):
数据稀疏更有利于表达数据的特性。
(如果当神 经元的输出接近于1的时候我们认为它被激活,而输出接近于0的时候认为它被抑 制,那么使得神经元大部分的时间都是被抑制的限制则被称作稀疏性限制。这里 我们假设的神经元的激活函数是sigmoid函数(如果你使用tanh作为激活函数的话, 当神经元输出为-1的时候,我们认为神经元是被抑制的)。)
使隐藏神经元的平均激活度ρ特别小(接近于0)。一般ρ取值0.05(隐层节 点在95%的时间里都是被一直的,只有5%的机会被激活)。 为什么接近于0好:大脑接受某一刺激也是只有单一的神经元兴奋,或者说 某个神经元只对某种刺激兴奋,以这种形式构成的神经网络更符合人脑的思 维方式,更能够得到好的结果。
平均激活度:
给定输入x情况下,自编码神经网络隐藏神经元 j的激活度
堆叠式自编码器(Stacked Auto-Encoder,SAE)
Stacked Autoencoder(SAE)模型是一个由多层稀疏自编码器组成的深度神经网络模型,其前一层自编码器隐层的输出作为其后一层自编码器的输入,最后一层是个分类器(logistic 回归或者softmax分类(预测分析))。 对隐藏单元施加稀疏性(同时具有比输入更多的隐藏单元), 自动编码器可以在输入数据中学习有用的结构。 这允许输入 的稀疏表示。 这些对于分类任务的前训练是有用的。
SAE的基本流程图,以及添加预测层的完整神经网络模型:
参考文献
1,《Traffic Flow Prediction With Big Data: A Deep Learning Approach》
据作者所述,这是第一次使用SAE方法来表示用于预测的交通流特征。
2,《Stacked Denoising Autoencoders: Learning Useful Representations in a Deep Network with a Local Denoising Criterion》
Stacked Denoising Autoencoders(堆叠式去噪自编码器)
("请不要后悔你的每一次抉择,勇敢的往前冲。是路总会有尽头,前方定会一片光芒。
FIGHTING…")