基于支持向量機、孤立森林和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'}%%%%%%%% SineH = sin(tempH);    case {'hardlim'}%%%%%%%% Hard LimitH = double(hardlim(tempH));case {'tribas'}%%%%%%%% Triangular basis functionH = tribas(tempH);case {'radbas'}%%%%%%%% Radial basis functionH = 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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/41938.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/41938.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/41938.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android仿今日頭條新聞(一)

新建一個側邊欄的文件,創建成功后直接運行。可以看到帶滑動的側邊欄功能如圖所示: 主體UI: 新聞UI的實現: 側邊欄: 更換一下顏色: 學習參考-浩宇開發

AI老照片生成視頻

地址:AI老照片 讓你的圖片動起來, 老照片修復與動態化

RK3568平臺(opencv篇)opencv處理圖像視頻

一.讀取圖像文件并展示 灰度圖像: 灰度圖需要用 8 位二進制來表示,取值范圍是 0-255。用 0 表示 0(黑色), 用 255 表示 1(白色),取值越大表示該點越亮。 RGB 彩色圖像:…

XPath 語法筆記

XPath 語法筆記 XPath 表達式運算符謂語(Predicates)1. 選擇所有本地名稱為特定名稱的元素2. 選擇具有特定屬性的元素3. 選擇屬性值不等于特定值的元素4. 選擇元素內容中包含特定字符串的節點5. 選擇元素內容中不包含特定字符串的節點6. 選擇特定命名空間…

一臺docker機器如何實現構建多平臺鏡像

1.實現方式 想在 x86_64/amd64 的一臺機器平臺上,構建適用于多個平臺的鏡像,例如 linux/amd64、linux/arm64,根據官方文檔,有三種方法可以使用: QEMU ??使用 QEMU 模擬構建多平臺映像是最簡單的入門方法&#xff0c…

前端面試題13(API請求方法)

在前端JavaScript中,進行API請求主要可以通過幾種方式來實現,最常見的是使用XMLHttpRequest(較舊的方法)、fetch(現代瀏覽器推薦方法)以及使用第三方庫如axios或jQuery.ajax等。 1. XMLHttpRequest 這是最…

仙人掌中的SNMP檢測不到服務器

登錄有問題的服務器1.檢測snmp localhost:~ # ps -ef|grep snmp root 55180 1 0 08:37 ? 00:00:08 /usr/sbin/snmpd -r -A -LF n /var/log/net-snmpd.log -p /var/run/snmpd.pid root 58436 53989 0 09:44 pts/0 00:00:00 grep --colorauto snmp2.檢測…

linux 編譯perf 工具

centos7下編譯步驟: wget https://mirrors.edge.kernel.org/pub/linux/kernel/v3.x/linux-3.10.tar.gz tar -xf linux-3.10.tar.gz cd linux-3.10/tools/ yum install -y flex bison python2-devel make perf ./perf/perf top -d 1…

昇思第10天

RNN實現情感分類 二分類問題:Positive和Negative兩類 步驟: 1.加載IMDB數據集 2.加載預訓練詞向量:預訓練詞向量是對輸入單詞的數值化表示,通過nn.Embedding層,采用查表的方式,輸入單詞對應詞表中的index,…

【算法專題】模擬算法題

模擬算法題往往不涉及復雜的數據結構或算法,而是側重于對特定情景的代碼實現,關鍵在于理解題目所描述的情境,并能夠將其轉化為代碼邏輯。所以我們在處理這種類型的題目時,最好要現在演草紙上把情況理清楚,再動手編寫代…

FreeRTOS——隊列集

一、隊列集 一個隊列只允許任務間傳遞的消息為 同一種數據類型 ,如果需要在任務間 傳遞不同數據類型的消息 時,那么就可以使用隊列集 作用:用于對多個隊列或信號量進行“監聽”(接收或獲取),其中 不管哪一…

js 使用 lodash-es 檢測某個值是否是函數

import { isFunction } from lodash-eslet isA isFunction(() > {}) console.log(isA) //true https://www.lodashjs.com/docs/lodash.isFunction#_isfunctionvalue https://lodash.com/docs/4.17.15#isFunction 人工智能學習網站 https://chat.xutongbao.top

Spring框架配置進階_自動裝配(XML和注解)

Spring配置進階 Spring 容器提供配置元數據有三種方式 XML配置文件。基于注解的配置。基于java的配置。 一、自動裝配 應用程序上下文為你找出依賴項的過程,Spring會在上下文中自動查找,并自動給bean裝配與其關聯的屬性 Spring中實現自動裝配的方式有兩種: XML文…

26-ARM常用匯編指令

匯編格式: label:instruction comment label:標號instruction:具體匯編指令comment:注釋內容 常用段名: .text:代碼段.data:初始化的數據段.bss:未初始化的數據段.ro…

Spring Boot+Vue項目從零入手

Spring BootVue項目從零入手 一、前期準備 在搭建spring bootvue項目前,我們首先要準備好開發環境,所需相關環境和軟件如下: 1、node.js 檢測安裝成功的方法:node -v 2、vue 檢測安裝成功的方法:vue -V 3、Visu…

JSP WEB開發(一) JSP語言基礎

目錄 JSP JSP簡介: JSP頁面 JSP運行原理 JSP腳本元素 JAVA程序片 局部變量 全局變量和方法的聲明 全局變量 方法的聲明 程序片執行特點 synchronized關鍵字 表達式 JSP指令標記 page指令 include指令 JSP動作標記 JSP動作元素include和include指令的…

Docker在人工智能領域的應用與實戰

摘要 人工智能(AI)技術的快速發展帶來了對高效開發和部署工具的需求。Docker作為一個創新的容器化平臺,為AI領域提供了強大的支持。本文詳細介紹了Docker在AI模型開發、訓練、部署以及服務器集群管理等方面的應用,并探討了其在數…

AcWing 1550:完全二叉搜索樹

【題目來源】https://www.acwing.com/problem/content/1552/【題目描述】二叉搜索樹 (BST) 遞歸定義為具有以下屬性的二叉樹: (1)若它的左子樹不空,則左子樹上所有結點的值均小于它的根結點的值 (2)若它的右…

大數據平臺之數據同步

數據同步也成為CDC (Chanage Data Capture) 。Change Data Capture (CDC) 是一種用于跟蹤和捕獲數據庫中數據變更的技術,它可以在數據發生變化時實時地將這些變更捕獲并傳遞到下游系統。以下是一些常用的開源 CDC 方案: 1. Flink CDC Flink CDC 是基于 …

快速上手LangChain:構建強大的語言模型應用

引言 在人工智能和自然語言處理(NLP)領域,構建高效且強大的語言模型應用變得越來越重要。LangChain 是一個專為開發者設計的框架,它簡化了語言模型應用的構建流程。本文將詳細介紹LangChain的功能和使用方法,幫助讀者…