1. Autoencoder简介
Autoencoder(AE)是一种无监督学习方法,算是一种特殊的feed-forward neural network, 基本结构分为三层:input layer , hidden layer , output layer, 一般hidden layer的维度比输入层小,输入和输出维度相同。
Input 到 hidden被称为Encoder, ,hidden到 output为 Decoder, ,训练目的是让
损失函数loss function
假设为高斯分布,
假设为伯努利分布,
在从input到hidden过程中,由于维度减少,信息被压缩了,因此可以用于减少噪音和降维。AE如果使用线性层和L2 norm作为loss,就相当于一个PCA;AE如果用非线性层就相当于非线性的PCA。
Sparse Autoencoder
与上面的Autoencoder不一样的是,sparse autoencoder的hidden unit (可能会)比 input 多,增加了稀疏性的约束:
瓶颈层的activation
对于的稀疏性约束, L1/L2 norm 或者通过KL-divergence定义
Denoising Autoencoder(DAE)
在训练深度神经网络时,可以用无监督学习的方法做initialization。假设经过DAE处理后的信息都能够很好的保留原来输入的结构特征,并且很稳定,DAE需要做到的是对于一个部分损坏了的输入,重建一个完整的输入信号。
DAE首先在上随机选择一些成分并置为0,得到~, 经过映射得到,重建之后的到,即重建得到“完整信号”。Loss是和的函数。与dropout很类似,不过是在input上。
一个经过x经过处理之后,被f映射到y,然后g重建得到z,loss为x与z的差别[1]Stacked Autoencoder
多层AE,第一个AE的hidden layer作为第二个AE的input。
Variantional Auoencoder
.
2. 应用
Autoencoder作为一种无监督学习,可以用于数据的降温,可视化和去噪。对于training中出现过的数据,AE的loss可能会很小,但是对于training数据中没有出现过的数据,loss就会变得很大,由此可以想到,可以利用AE经行异常数据的监测,例如机器设备上传感器信号的异常等,异常数据一般不会经常出现或者完全不会在已有的历史纪录中出现。
Recurrent Autoencoder
RNN和AE结合在一起可以用来对多维时间信号进行重建或者降维,encoder和decoder都是RNN。在时间序列上每一个时间对应的数据作为RNN在时间时的输入,得到一个有H维内容变量。根据RNN的结构可以知道,这个内容变量是基于每个时间的输入和之前的隐藏状态得到的。
同样的decoder也是一个RNN 的结构,将内容变量作为输入,得到每个时间对应的输出,输出维度可以小与等于输入维度。当时,encoder将会更多的关注与选择的输出维度相关的变量。
对于得到的输出,可以用K-mean的方法聚类,实现无监督的分类,也可以用于异常信号的检测。
Recurrent autoencoder model[2]d
Reference
[1] Vincent et., Extracting and Composing Robust Features with Denoising Autoencoders,2008
[2] Recurrent Auto-Encoder Model for Multidimentional Time Series Rresentation, 2018
网友评论