1.程式功能描述
基於小波神經網路的資料分類演算法。輸入為5個特徵值,輸出為判斷(是,否)。拿50組資料對本演算法作為訓練組,後30組資料作為驗證組。這裡,我們首先呼叫資料,然後對50組資料進行訓練,然後對30組資料進行識別測試。
2.測試軟體版本以及執行結果展示
MATLAB2022a版本執行
大於0.01,識別為一類,小於0.01識別為二類。
3.核心程式
%%資料的匯入 %匯入50組資料,採用手動匯入的方式 load data50.txt; %匯入30組資料,採用手動匯入的方式 load data30.txt; load test1.txt; load test2.txt; %距離---速度---峰值---波形寬度---波形面積 data_50=data50; data_50(:,1);%距離 data_50(:,2);%速度 data_50(:,3);%峰值 data_50(:,4);%波形寬度 data_50(:,5);%波形面積 %對50組資料進行訓練 [H,I,whi,b1,b,a,J,wjh,b2,err]=WNN_train(data_50); figure; plot(err,'b-o') %進行識別 result=WNN_rec(H,I,whi,b1,b,a,J,wjh,b2,data30); %識別結果 result %識別曲線 figure; plot(result,'-r>',... 'LineWidth',1,... 'MarkerSize',6,... 'MarkerEdgeColor','k',... 'MarkerFaceColor',[0.9,0.9,0.0]); for i = 1:length(result) if result(i)>0.035 disp('是'); end if result(i)<0.035 disp('否'); end end 16_004m
4.本演算法原理
小波神經網路是一種前饋神經網路,它採用小波函式作為啟用函式。小波分析是一種有效的訊號處理工具,能夠在時頻域內同時提供訊號的區域性資訊。小波神經網路利用這一特點,透過小波變換來捕捉資料的區域性特徵,從而提高分類的效能。
一個典型的小波神經網路包括輸入層、一個或多個隱藏層以及輸出層。隱藏層的神經元採用小波函式作為啟用函式。
輸入層:接收原始資料訊號。
隱藏層:使用小波函式作為啟用函式,引數包括尺度引數$a$和平移引數$b$,這些引數在訓練過程中學習得到。
輸出層:根據問題的需求,輸出層可以是線性或者非線性的。
小波基函式: 小波神經網路利用小波函式作為其內在的啟用函式或特徵提取器。例如,對於離散小波變換(DWT),輸入訊號x[n]經過小波基函式ψ_{j,k}(n)的卷積運算得到多尺度係數,其中j是尺度引數,k是位置引數。
網路結構: WNN通常包含輸入層、隱藏層(小波層)以及輸出層。在小波層中,每個節點對應一個特定的小波基函式,透過小波變換對輸入資料進行特徵提取。
訓練與最佳化: 透過反向傳播或其他最佳化方法調整連線權重,使得網路能夠最小化預測誤差。對於分類任務,損失函式可以是交叉熵等指標。
決策機制: 在完成小波特徵提取後,網路可能進一步將這些特徵輸入到傳統的人工神經網路架構中,如Sigmoid或ReLU啟用函式的多層感知機,最終產生分類結果。