數模學習筆記(五)——BP神經網絡


 1、BP神經網絡是一種前饋型網絡(各神經元接受前一層的輸入,並輸出給下一層,沒有反饋),分為input層,hide層,output層

2、BP神經網絡的步驟:

1)創建一個神經網絡:newff

a.訓練樣本:歸一化(premnmx ,postmnmx ,tramnmx)

b.確定節點數:輸出層的節點數可直接獲得

c.確定各層神經元的激活函數

常見的激活函數:purelin:線性/logsig:對數S型/tansig:正切S型

d.確定訓練函數

traingd :梯度下降BP訓練函數/traingdx :梯度下降自適應學習率訓練函數

%Format:net = newff ( A, B, {C} ,‘trainFun’)

A:n×2的矩陣,第i行元素為輸入信號xi的最小值和最大值

B:k維行向量,其元素為網絡中各層節點數

C:k維字符串行向量,每一分量為對應層神經元的激活函數

trainFun :為學習規則采用的訓練算法

 

2)學習:train

學習是一個調整權重的過程,使得通過神經網絡的輸出不斷逼近應有的輸出

網絡配置參數

net.trainparam.goal:神經網絡訓練的目標誤差

net.trainparam.show:顯示中間結果的周期

net.trainparam.epochs:最大迭代次數

net.trainParam.lr:學習率

%Farmat:net=train( net, X, Y )

X:網絡實際輸入

Y:網絡應有輸出

 

3)仿真模擬

選擇測試集X進行模擬

%Farmat:Y=sim(net,X)

  

3、舉例

下面將舉大量的例子來說明BP神經網絡的應用。

 1)對函數f(x)=sinx(0=<x<=pi/2)進行逼近

 

 1 %%%使用BP神經網絡逼近函數cos(x)%%%
 2 clc;clear;
 3 x=0:0.1:1.5;%訓練樣本
 4 y=sin(x);%真實的輸出值
 5 net=newff(minmax(x),[10,1],{'logsig','logsig'});%建立bp神經網絡
 6 net.trainParam.show = 50;
 7 net.trainParam.lr = 0.01;
 8 net.trainParam.goal = 0.0001;
 9 net.trainParam.epochs = 500;
10 net=train(net,x,y);%訓練樣本
11 testx=0.01:0.1:1.51;
12 testy=sim(net,testx);%測試
13 plot(x,y,testx,testy,'r');

 

 2)對兩種蠓蟲(Af 與Apf)進行鑒別:

依據的資料是觸角和翅膀的長度,已經測得了9 支Af 和6 支Apf 的數據如下:
Af: (1.24,1.27),(1.36,1.74),(1.38,1.64),(1.38,1.82),(1.38,1.90),(1.40,1.70),
(1.48,1.82),(1.54,1.82),(1.56,2.08).
Apf: (1.14,1.82),(1.18,1.96),(1.20,1.86),(1.26,2.00),(1.28,2.00),(1.30,1.96).

Q:對觸角和翼長分別為(1.24,1.80),(1.28,1.84)與(1.40,2.04)的3 個標本加以識別。

 1 clear
 2 p1=[1.24,1.27;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;
 3 1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];
 4 p2=[1.14,1.82;1.18,1.96;1.20,1.86;1.26,2.00
 5 1.28,2.00;1.30,1.96];
 6 p=[p1;p2]';
 7 pr=minmax(p);
 8 net=newff(pr,[3,2],{'logsig','logsig'});
 9 net.trainParam.show = 10;
10 net.trainParam.lr = 0.05;
11 net.trainParam.goal = 1e-10;
12 net.trainParam.epochs = 50000;
13 net = train(net,p,goal);
14 x=[1.24 1.80;1.28 1.84;1.40 2.04]';
15 y0=sim(net,p)
16 y=sim(net,x)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM