传统自编码器的目的是使输出与输入尽量相同,这完全可以通过学习两个恒等函数来完成,但是这样的变换没有任何意义,因为真正关心的是隐层表达,而不是实际输出。因此,针对自编码器的很多改进方法都是对隐层表达增加一定的约束,迫使隐层表达与输入不同。如果此时模型还可以重建输入信号,那么说明隐层表达足以表示输入信号,这个隐层表达就是通过模型自动学习出来的有效特征。
传统正则自编码器
改进点是在传统自编码器的损失函数上增加权重衰减项
以提升网络泛化能力,防止过拟合。
降噪自编码器
将带有噪声的损坏信息作为输入信号,使重建信号对输入信号中的噪声具有一定的鲁棒性。
领域适应性边缘降噪自编码器
直接计算权重,无需使用优化算法,可以大幅度缩减训练时间
非线性表示边缘降噪自编码器
在传统自编码器的损失函数上增加正则项
既考虑重建函数对隐层表达的敏感度,又考虑隐层表达对输入信号的敏感度。
稀疏自编码器
在传统自编码器的损失函数上增加稀疏规则项
以获取输入信号的稀疏表达。
k-稀疏自编码器
丢弃非线性激活函数,利用排序算法或ReLU函数选取k个最大激活值,获取隐层准确的稀疏度,缩减训练时间。
收缩自编码器
在传统自编码器的损失函数上增加正则项
保证隐层表达对输入微小变化的鲁棒性。
高阶收缩自编码器
在收缩自编码器的损失函数上增加一个二阶正则项
在收缩自编码器基础上进一步延伸隐层表达对输入微小变化的鲁棒性。
饱和自编码器
在传统自编码器的损失函数上增加正则项
鼓励激活值落在相应激活函数的饱和区域。
使用卷积层和池化层代替传统自编码器的全连接层,保留二维信号的空间信息。
变分自编码器
相当于在传统自编码器的隐层表达上增加一个对隐变量的分布约束:
条件变分自编码器
在变分自编码器的基础上引入标签信息,产生与标签相匹配的数据。
变换自编码器
引入胶囊的概念,同时增加额外信息输入。每个胶囊的输出可以代表数据的任意性质,同时使网络学习更加简单。
区分自编码器
使类内离散度尽量小,类间离散度尽量大。
大边缘自编码器
在传统正则自编码器的损失函数上增加正则项
增加不同类样本在隐层空间的边缘距离,进一步提升自编码器的区分能力。
协同局部自编码器
使用简单方式获取稀疏性,重建平滑和自然的图像纹理。
局部约束稀疏自编码器
将稀疏自编码器的稀疏约束项改为
同时保留z的k个隐层表达,利用相似特征对相似输入进行编码,缓解死特征现象。
协同稳定非局部自编码器
消除网络传播中的扰动和随机初始化权重时所产生的噪声。
张量自编码器
每一层都用一个张量表示,对大数据的高度非线性分布建模。
学术咨询:
担任《Mechanical System and Signal Processing》《中国电机工程学报》等期刊审稿专家,擅长领域:信号滤波/降噪,机器学习/深度学习,时间序列预分析/预测,设备故障诊断/缺陷检测/异常检测。
例子:
基于自编码器的语音信号降噪
https://zhuanlan.zhihu.com/p/556513015
基于自编码器和LSTM自编码器的心电信号异常检测
https://zhuanlan.zhihu.com/p/703962019
简单的基于自编码器的心电信号异常检测(tensorflow,keras)
https://zhuanlan.zhihu.com/p/703960744
基于卷积变分自编码器的心电信号异常检测
https://zhuanlan.zhihu.com/p/704059784
基于自编码器的滚动轴承异常检测方法(NASA-IMS数据,Python)
https://zhuanlan.zhihu.com/p/704259500
使用LSTM自动编码器做时间序列异常检测
https://zhuanlan.zhihu.com/p/552896867
分割线分割线分割线
基于指数退化模型和LSTM自编码器的滚动轴承退化趋势分析(Python)
版本如下:
tensorflow=2.8.0
keras=2.8.0
sklearn=1.0.2
import tensorflow as tf
#tf.random.set_seed(x)
#tf.logging.set_verbosity(tf.logging.ERROR)
tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.ERROR)
from keras.layers import Input, Dropout, Dense, LSTM, TimeDistributed, RepeatVector
from keras.models import Model
from keras import regularizers
完整代码和数据可通过学术咨询获得:
MATLAB环境下基于支持向量机、孤立森林和LSTM自编码器的三轴振动数据的机械状态异常检测(MATLAB R2021)
完整代码和数据可通过学术咨询获得:
MATLAB环境下基于自编码器的半监督机器学习技术的时间序列异常检测(以传感器数据为例)
完整代码和数据可通过学术咨询获得
MATLAB环境下基于自编码器的隐层预测(以风力涡轮机高速轴数据为例)
绘制基于自编码器(autoencoders)的轴承振动特征误差分布
绘制基于自编码器(autoencoders)的轴承振动特征('Min', 'Max', 'Kurt', 'ImpFactor', 'RMS', 'MargFactor', 'Skewness','ShapeFactor', 'PeakToPeak', 'CrestFactor')的误差分布。