【数学建模】BP神经网络算法模型
生活随笔
收集整理的這篇文章主要介紹了
【数学建模】BP神经网络算法模型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 模型的訓練
- 訓練模型
- BP網絡的構建
- 代碼示例
模型的訓練
BP網絡的訓練就是通過應用誤差反傳原理不斷調整網絡權值使網絡模型輸出值與已知的訓練樣本輸出值之間的誤差平方和達到最小或小于某一期望值。
訓練模型
| 梯度下降法 | traingd |
| 有動量的梯度下降法 | traingdm |
| 自適應lr梯度下降法 | traingda |
| 自適應lr動量梯度下降法 | traingdx |
| 彈性梯度下降法 | trainrp |
| Fletcher-Reeves共軛梯度法 | traincgf |
| Ploak-Ribiere共軛梯度法 | traincgp |
| Powell-Beale共軛梯度法 | traincgb |
| 量化共軛梯度法 | trainscg |
| 擬牛頓算法 | trainbfg |
| 一步正割算法 | trainoss |
| Levenberg-Marquardt | trainlm |
BP網絡的構建
PR: 由R維的輸入樣本最小最大值構成的R*2維矩陣
[S1 S2 ... SNl]:各層的神經元個數
{TF1 TF2 ... TFNl}:各層的神經元傳遞函數
P:標準輸入
T:標準輸出
代碼示例
pn=p1';tn=t1'; [m,n]=size(t);[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);%歸一化 net=newff(pn,[5,1],{'tansig','purelin'},'traingd'); %設置網絡,建立相應的BP網絡,底層神經元個數5,輸出神經元個數1,輸入到隱藏的激活函數tansig,隱藏到輸入到purelin,訓練函數traingd net.trainParam.show=50; % 訓練網絡,每隔50步展現下算法 net.trainParam.lr=0.01; %學習率0.01 net.trainParam.epochs=1000; %訓練1000步(訓練停止方式:epochs和goal) net.trainParam.goal=1e-5; [net,tr]=train(net ,pn,tn);%得到結果 anewn=sim(net,ps); %對BP網絡進行仿真 figure;hold on plot(anewn,'b',tn,'r'); wucha=sum(abs(b-r))/n;%誤差輸出 %traingdclear;clc;P=[-1 -1 2 2 4;0 5 0 5 7];%輸入T=[-1 -1 1 1 -1];%輸出 輸入到矩陣——行代表因子 列代表樣本(數量)%利用minmax函數求輸入樣本范圍net = newff(minmax(P),[7,1],{'tansig','purelin'},'trainlm');net.trainParam.show=50;%net.trainParam.lr=0.05;net.trainParam.epochs=1000;net.trainParam.goal=1e-5; [net,tr]=train(net,P,T); net.iw{1,1}%隱層權值 net.b{1}%隱層閾值 net.lw{2,1}%輸出層權值 net.b{2}%輸出層閾值 y3=sim(net,P);總結
以上是生活随笔為你收集整理的【数学建模】BP神经网络算法模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图论及其应用 2019年 期末考试答案总
- 下一篇: 计算机abc分类法,ABC分类法.ppt