基于支持向量机、孤立森林和LSTM自编码器的机械状态异常检测(MATLAB R2021B)

异常检测通常是根据已有的观测数据建立正常行为模型,从而将不同机制下产生的远离正常行为的数据划分为异常类,进而实现对异常状态的检测。常用的异常检测方法主要有:统计方法、信息度量方法、谱映射方法、聚类方法、近邻方法和分类方法等。

早期的异常检测方法主要是基于统计理论,通过对观测数据进行统计建模或密度估计来评价异常,如果数据的分布假设成立,统计方法能够得到一个满意的可证明的解,且为无监督过程,但该方法对数据的统计假设较为依赖,特别是对于高维复杂数据,统计分布往往不能准确假设。而信息度量方法虽不需对数据分布进行假设,但其检测性能取决于信息度量指标,若信息度量不能明显反映异常数据与正常数据的差异,则该方法将失效。基于主成分分析或矩阵分解的空间映射方法,通过将正常和异常数据嵌入到一个低维子空间进行划分,并可自动执行维度约简,适合于高维复杂数据,但在空间映射过程中易丢失部分有用的数据信息。

随着人工智能理论的产生和发展,许多机器学习和数据挖掘的方法被应用于异常检测,主要有基于聚类或近邻的无监督学习方法和基于分类的有监督学习方法。对于聚类方法,不同的计算正常类数据间距离或相似度的策略对聚类结果有很大影响,如果形成的聚类簇太大,易将异常数据包含进去而导致误判。对于近邻方法,通过计算正常类数据的k近邻或局部异常因子来进行异常检测,体现了数据的局部分布特性,检测性能得到了提高,但近邻方法需要存储所有的正常数据,来计算与测试数据间的距离,复杂度较高,而且如果正常数据的分布比较稀疏(即没有足够的近邻点),易导致较大的检测误差。对于分类方法,通过使用可获得的标记数据作为训练样本来构造分类模型,对测试数据进行分类,能够实现一类或多类分类异常检测。

鉴于此,采用支持向量机、孤立森林和LSTM自编码器方法对机械状态进行异常检测,运行环境为MATLAB R2021B。 数据集包含来自工业机器的三轴振动测量值, 在计划维护之前和维护之后采集数据。假定在定期维护后采集的数据代表机器的正常运行状况,维护前的数据代表正常或异常情况。每轴的数据存储在单独的列中,每个文件包含 7000 个测量值。

复制代码
function[net]=AE(X,Xtest,Labels,options)
% S-AEEL:Stacked AutoEncoder with Embedded Labels 
% it allows labels embedding inside the hidden layer
% Inputs
% number_neurons:number of neurons in hidden layer.
% X: the training inputs.
% Xtest: the testing inputs
% prefomance: RMSE of training.
% options :training options (3 options -->)
% 
% get options
number_neurons=options.number_neurons; % number of neurons
Layers=options.Layers;% number of layers
ActivF=options.ActivF;% activation function
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
X = scaledata(X,0,1);% data Normalization
x=X;% save a copy from original input;
alpha=size(X);% get information for weights generations
% 1:generate a random input weights
input_weights{1}=rand(number_neurons,alpha(2))*2-1;

for i=1:Layers
% 2:calculating the hidden layer
tempH=input_weights{i}*X';
CAT=repmat(Labels',size(tempH,1),1);
tempH=[tempH+CAT];
tempH=[tempH;Labels'];
% activation function
switch lower(ActivF)
    case {'sig','sigmoid'}
        %%%%%%%% Sigmoid 
        H = 1 ./ (1 + exp(-tempH));
    case {'sin','sine'}
        %%%%%%%% Sine
        H = sin(tempH);    
    case {'hardlim'}
        %%%%%%%% Hard Limit
        H = double(hardlim(tempH));
    case {'tribas'}
        %%%%%%%% Triangular basis function
        H = tribas(tempH);
    case {'radbas'}
        %%%%%%%% Radial basis function
        H = radbas(tempH);
        %%%%%%%% More activation functions can be added here                
end
% 3: calculate the output weights beta
B{i}=pinv(H') * X ; %Moore-Penrose pseudoinverse of matrix
% calculate the output : Unlike other networks the AEs uses the same weight
% beta as an input weigth for coding and output weights for decoding
% we will no longer use the old input weights:input_weights. 
Hnew=X*B{i}';
output=Hnew*pinv(B{i}');
input_weights{i+1}=B{i};
end
% 4:calculate the prefomance
labels_hat=scaledata(Hnew(:,end-(size(Labels,2))+1:end),min(Labels),max(Labels));% recovered labels
prefomance=sqrt(mse(x-output));% RMSE of training samples recontruction
rec_acc=sqrt(mse(labels_hat-Labels));% % RMSE of training labels recovering
%% mappings for test set
H_test=Xtest*B{i}';
%% save results
net.xtr_mapp=Hnew; % feature mappings of training inputs
net.xts_mapp=H_test; % feature mappings of testing inputs
net.recovered_labels=labels_hat;% 
net.learning_loss=prefomance;
net.Learning_weights=B;
net.xtr_hat=output;
net.rec_acc=rec_acc;
end

工学博士,担任《Mechanical System and Signal Processing》《中国电机工程学报》《控制与决策》等期刊审稿专家,擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

完整数据和代码通过知乎学术咨询获得:
https://www.zhihu.com/consult/people/792359672131756032?isMe=1
相关推荐
大写-凌祁1 小时前
零基础入门深度学习:从理论到实战,GitHub+开源资源全指南(2025最新版)
人工智能·深度学习·开源·github
焦耳加热1 小时前
阿德莱德大学Nat. Commun.:盐模板策略实现废弃塑料到单原子催化剂的高值转化,推动环境与能源催化应用
人工智能·算法·机器学习·能源·材料工程
CodeCraft Studio1 小时前
PDF处理控件Aspose.PDF教程:使用 Python 将 PDF 转换为 Base64
开发语言·python·pdf·base64·aspose·aspose.pdf
深空数字孪生1 小时前
储能调峰新实践:智慧能源平台如何保障风电消纳与电网稳定?
大数据·人工智能·物联网
零点零一1 小时前
VS+QT的编程开发工作:关于QT VS tools的使用 qt的官方帮助
开发语言·qt
wan5555cn1 小时前
多张图片生成视频模型技术深度解析
人工智能·笔记·深度学习·算法·音视频
格林威2 小时前
机器视觉检测的光源基础知识及光源选型
人工智能·深度学习·数码相机·yolo·计算机视觉·视觉检测
今天也要学习吖3 小时前
谷歌nano banana官方Prompt模板发布,解锁六大图像生成风格
人工智能·学习·ai·prompt·nano banana·谷歌ai
Hello123网站3 小时前
glean-企业级AI搜索和知识发现平台
人工智能·产品运营·ai工具
AKAMAI3 小时前
Queue-it 为数十亿用户增强在线体验
人工智能·云原生·云计算