基于自编码器的时间序列异常检测方法(以传感器数据为例,MATLAB R2021b)

尽管近年来研究者对自编码器及其改进算法进行了深入研究,但现阶段仍存在以下问题亟须解决。

  1. 无监督学习模式对特征提取能力的限制与有监督学习相比,无监督学习模式摆脱了对样本标签的依赖、避免了人工标注的困难,但也因此失去了样本标签的辅助,标签信息难以有效应用于特征提取中,使自编码器性能与有监督学习存在一定差距。因此,研究半监督或有监督条件下的自编码器,合理运用标签信息提升自编码器特征提取能力,是一个需要重点关注与解决的问题。针对此问题,一方面可以通过在自编码器输入层或输出层中直接添加样本标签,同时重构输入样本及其标签,强迫自编码器在编码与解码过程中考虑到标签损失,使提取的特征更加符合不同样本的类本质。另一方面,可以通过在损失函数上添加暗含标签信息的类内离散度或类间离散度正则化项,在最小化损失函数的过程中,减少抽象特征的类内距离,增加类间距离,增强抽象特征的类可区分性,提升自编码器的特征提取能力,使抽象特征更适用于分类任务。

  2. 硬件要求高,训练时间长

复杂的网络结构依赖大量的训练样本,以自编码器为代表的深度学习模型具有较高的时空复杂度,需要消耗巨大的计算与存储资源,这对硬件设备提出了更高要求,往往导致训练时间过长。针对此问题,一方面可以将模型压缩技术应用于自编码器中,采用剪枝算法剔除冗余节点或通道,实现网络结构的精简,或对权值进行稀疏化,抑制部分神经节点,完成对网络参数的压缩。另一方面可以研究轻量化自编码器算法,借鉴ELM-AE算法,对自编码器的训练方式进行改进,减少参数迭代微调次数,提升算法训练效率。此外,还可以通过研究分布式优化算法来降低模型的计算复杂度,或研究并行计算方法以充分利用现有计算资源。这些方法有助于降低自编码器的结构复杂度,降低软硬件要求,减少训练时间。

  1. 随机初始化引入额外噪声

目前,绝大多数自编码器及其改进算法对网络参数均采用随机初始化,这不可避免地引入了额外噪声,影响算法的收敛速度与泛化性能。因此,如何有效地进行网络初始化是一个值得深入研究的问题。针对此问题,一方面可以通过在损失函数中添加 L1 或 L2 范数正则化项,以降低随机初始化导致的噪声影响,另一方面可以采用Glorot 初始化方法、He初始化方法等其他改进初始化方法,在缓解噪声影响的同时,使自编码器的训练过程更加稳定,避免出现梯度消失或爆炸现象。

  1. 难以适应小样本条件,易产生过拟合

自编码器及其深度结构由于模型结构复杂,需要大量样本进行训练,在小样本条件下训练自编码器极易产生过拟合,进而降低模型泛化性能。因此小样本条件已成为制约自编码器应用的关键因素。

鉴于此,采用普通的自编码器对传感器时间序列数据进行异常检测,运行环境为MATLAB R2021B。

% Loop through data points (the anomaly occurs somewhere around 1350)
for i = 1000:1500
   
    % Take a frame of data
    data = faultydata(i:i+99);
    
    % Predict with autoencoder
    yhat = predict(autoenc,data);
    
    % Calculate error
    losses = [losses;sqrt(sum((yhat - data).^2))];
    
    % After first frame, only add one data point to the plot
    if j > 1
        yhat = yhat(end);
        data = data(end);
    end
    
    % Update data to be plotted
    dataall = [dataall;[data yhat]];
    
    % Plot
    p1(1).XData = 1:size(dataall,1);p1(2).LineWidth = 1.5;
    p1(2).XData = 1:size(dataall,1);
    p1(1).YData = dataall(:,1);p2.LineWidth = 1.5;
    p1(2).YData = dataall(:,2);
   
    p2.XData = 1:length(losses);
    p2.YData = losses;
    pause(0.005)
    j = j+1;
end
  擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。
  完整数据和代码通过知乎学术咨询获得:https://www.zhihu.com/consult/people/792359672131756032?isMe=1
相关推荐
Chrikk2 分钟前
Go-性能调优实战案例
开发语言·后端·golang
幼儿园老大*4 分钟前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
canyuemanyue5 分钟前
go语言连续监控事件并回调处理
开发语言·后端·golang
杜杜的man7 分钟前
【go从零单排】go语言中的指针
开发语言·后端·golang
Power202466630 分钟前
NLP论文速读|LongReward:基于AI反馈来提升长上下文大语言模型
人工智能·深度学习·机器学习·自然语言处理·nlp
数据猎手小k33 分钟前
AIDOVECL数据集:包含超过15000张AI生成的车辆图像数据集,目的解决旨在解决眼水平分类和定位问题。
人工智能·分类·数据挖掘
好奇龙猫39 分钟前
【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
人工智能·算法
沉下心来学鲁班1 小时前
复现LLM:带你从零认识语言模型
人工智能·语言模型
数据猎手小k1 小时前
AndroidLab:一个系统化的Android代理框架,包含操作环境和可复现的基准测试,支持大型语言模型和多模态模型。
android·人工智能·机器学习·语言模型
YRr YRr1 小时前
深度学习:循环神经网络(RNN)详解
人工智能·rnn·深度学习