分别使用BP/RBF/GRNN神经网络识别航迹异常matlab仿真
目錄
一、理論基礎
1.1基于BP神經網絡的識別
1.2基于RBF神經網絡的識別
1.3基于GRNN神經網絡的識別
二、核心程序
三、仿真測試結果
作者ID :fpga和matlab CSDN主頁:https://blog.csdn.net/ccsss22?type=blog 擅長技術: 1.無線基帶,無線圖傳,編解碼 2.機器視覺,圖像處理,三維重建 3.人工智能,深度學習 4.智能控制,智能優化 5.其他
一、理論基礎
1.1基于BP神經網絡的識別
? ? ? BP神經網絡,即Back Propagation神經網絡,其本質是一種基于誤差反饋傳播的神經網絡算法。從結構上講,BP神經網絡是由一個信息的正向傳播網絡和一個誤差的反向傳播網絡兩個模塊構成。BP神經網絡的基本結構如下圖所示:
? ? ? ?從圖1的結構可知,BP神經網絡主要由輸入層,隱含層以及輸出層構成。來自外界的信息通過輸入層傳輸進入到隱含層進行處理,并由輸出層輸出處理結果。當BP神經網絡的輸出結果和其期望結果之間的誤差較大的時候,則進入反向傳播階段,并進行進行審計網絡權值的修正,直到輸出結果和期望結果誤差滿足一定條件為止。
1.2基于RBF神經網絡的識別
RBF網絡是一種三層前向網絡:
第一層為輸入層,由信號源節點組成。
第二層為隱含層,隱單元的變換函數是一種局部分布的非負非線性函數,他對中心點徑向對稱且衰減。隱含層的單元數由所描述問題的需要確定。
第三層為輸出層,網絡的輸出是隱單元輸出的線性加權。
?
?
通常使用的RBF有:高斯函數、多二次函數(multiquadric function)、逆多二次函數、薄板樣條函數等。普通RBF網絡采用的是高斯函數。當“基函數”采用的高斯基函數具備如下的優點:
??? ①表示形式簡單,即使對于多變量輸入也不增加太多的復雜性;
??? ②徑向對稱;
??? ③光滑性好,任意階導數均存在;
??? ④由于該基函數表示簡單且解析性好,因而便于進行理論分析。
? ? ? ?RBF網絡具有良好的逼近任意非線性函數和表達系統內在的難以解析的規律性的能力,并且具有極快的學習收斂速度。基于徑向基函數網絡的上述優點,我們將其應用于對非線性函數的模擬當中。?
1.3基于GRNN神經網絡的識別
? ? ? ?GRNN,即General Regression Neural Network,中文全稱為廣義回歸神經網絡,是由The Lockheed Palo Alto研究實驗室在1991年提出的。GRNN是一種新型的基于非線性回歸理論的神經網絡模型[43,44]。GRNN是建立在非參數核回歸基礎之上的,該神經網絡是以測試樣本為后驗條件,并從觀測樣本中計算得到自變量和因變量之間的概率密度函數,然后在計算出因變量關于自變量的回歸值。由于GRNN不需要規定模型的類型,只需要設置神經網絡的光滑因子參數,GRNN神經網絡的光滑因子參數的取值對神經網絡的輸出影響較大,當光滑因子參數較大的時候,其對應的神經元所覆蓋的輸入區域就越大;當光滑因子參數較小的時候,神經網絡對應的徑向基函數曲線較陡,因此神經網絡輸出結果更接近期望值,但此時光滑度越差。
? ? ? ?由于GRNN廣義回歸神經網絡是基于非線性核回歸分析的神經網絡,因此,對于任意一個非獨立變量y,其相對于獨立變量x的回歸分析的過程是計算具有最大概率值y。現假設隨機變量x和y的聯合概率密度函數為f (x ,y),已知x的觀測值為X,則y相對于X的回歸,即條件均值為:
GRNN結構如圖所示,整個網絡包括輸入層、模式層、求和層與輸出層。?
? ? ? 從結構圖可知,GRNN神經網絡的輸入層神經元數目和輸入樣本的維度是相同的,即每一個神經元將輸入信號直接傳遞給GRNN神經網絡的隱含層中。?
二、核心程序
clc; clear; close all; warning off; addpath 'func\'%% %選擇神經網絡類型; %1:BP神經網絡 %2:GRNN神經網絡 %3:RBF神經網絡 SEL = 2;load data.mat %檢測航跡的異常端,這里通過對數據航跡進行分段處理,分析每一段的特征,并通過神經網絡進行識別 %分段檢測長度 Len = 50; Features = cell(1,50); Features2= []; for i = 1:50i%每段航跡進行等比例劃分 tmps = Datas{i};Feature = [];for j = 1:floor(length(tmps)/Len)tmps2 = tmps(Len*(j-1)+1:Len*j,:);%特征提取Feature = [Feature;[func_feature1(tmps2(:,1)),func_feature1(tmps2(:,2))]];endFeatures{i} = Feature;Features2 = [Features2;Feature]; end%異常和正常分類 load fenlei.mat%這個是自己首先做的人工區分,分為正常和異常兩類 Lend = length(cidx) index= randperm(Lend);Type1 = []; Type2 = []; for i = 1:floor(0.8*length(cidx))if cidx(index(i)) == 1Type1 = [Type1;Features2(index(i),:)];elseType2 = [Type2;Features2(index(i),:)];end end%訓練器,隨機選擇一部分進行訓練 Train_data = [Type1;Type2]; Train_Label= [ones(1,length(Type1)),2*ones(1,length(Type2))]';%% if SEL == 1%1:bp網絡net = newff(Train_data',Train_Label',128);net.trainParam.epochs = 60; %訓練次數 net.trainParam.goal = 1e-4; %誤差期望值 net.trainParam.mu = 0.01; %定義神經網絡學習率net.trainParam.min_grad = 1e-8; %定義神經網絡最小梯度值%returns of the train: %net--New network %tr--Training record (epoch and perf). %Y--Network outputs. %E--Network errors. [net,tr,Y,E] = train(net,Train_data',Train_Label'); save Net_BP.mat net endif SEL == 2%GRNNnet = newgrnn(Train_data',Train_Label',0.000025);save Net_GRNN.mat net endif SEL == 3%RBFnet = newrb(Train_data',Train_Label',0.04);save Net_RBF.mat net end三、仿真測試結果
?
?A05-44
總結
以上是生活随笔為你收集整理的分别使用BP/RBF/GRNN神经网络识别航迹异常matlab仿真的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业是使用云平台,总结的一些建议
- 下一篇: matlab 折线图 配色