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