Ⅰ 求助,用matlab中的BP神經網路函數,但沒有trainglm
newff()這個函數是建立一個神經網路的函數,其中括弧裡面的參數含義依次是:輸入數據和輸出數據的范圍,隱含層神經元個數,傳遞函數設置像BP網編程這塊,需要先給出輸入和期望輸出的數據矩陣,然後newff函數建立網路,然後train函數訓練網路,在這個訓練中你需要設置一些訓練目標和訓練次數等參數,然後還有一個sim模擬函數,就是把新的樣本數據做為輸入,通過這個我們訓練好的網路判斷這個樣本所屬分類。因為我用BP網主要做的是分類的實驗,所以就從分類這塊給你說明了。學BP網路,我個人經驗是需要把BP的正向輸出和反向誤差修改權值閾值這個學習過程,自己先手算明白,然後自己編程序實驗,最後再用MATLAB的封裝函數NEWFF這些,你會發現NEWFF和我們自己理解的訓練過程還是有細微的差別的。
Ⅱ 用MATLAB的newrb函數建立的神經網路,怎麼查看網路參數
newrb設計了徑向基網路,調用格式:
net = newrb
[net,tr] = newrb(P,T,goal,spread,MN,DF)
P-Q組輸入向量組成的R×Q維矩陣;
T-Q組目標分類向量組成的S×Q維矩陣;
goal-均方誤差,默認值為0;
spread-徑向基函數的擴展速度,默認值為1;
MN-神經元的最大數目,默認是Q
DF-兩次顯示之間所添加的神經元數目,默認值為25;
net-返回值,一個徑向基網路;
tr-返回值,訓練紀錄。
Ⅲ 請問大神:函數擬合神經網路(fitnet)是BP神經網路嗎在線等待中。
只能說BP神經網路具有擬合非線性函數的功能,屬於一種函數擬合神經網路。
人工神經網路就是模擬人思維的第二種方式。這是一個非線性動力學系統,其特色在於信息的分布式存儲和並行協同處理。雖然單個神經元的結構極其簡單,功能有限,但大量神經元構成的網路系統所能實現的行為卻是極其豐富多彩的。
非線性關系是自然界的普遍特性。大腦的智慧就是一種非線性現象。人工神經元處於激活或抑制二種不同的狀態,這種行為在數學上表現為一種非線性關系。具有閾值的神經元構成的網路具有更好的性能,可以提高容錯性和存儲容量。
Ⅳ matlab 自帶自組織神經網路工具箱么 為什麼我找不到simuc這個函數 求高人解答唉
安裝Matlab的時候沒有選擇 神經網路工具箱 吧!
重新安裝一下,把它們選上!
Ⅳ 在搭建神經網路的時候,如何選擇合適的轉移函數(
一般來說,神經網路的激勵函數有以下幾種:階躍函數 ,准線性函數,雙曲正切函數,Sigmoid函數等等,其中sigmoid函數就是你所說的S型函數。以我看來,在你訓練神經網路時,激勵函數是不輕易換的,通常設置為S型函數。如果你的神經網路訓練效果不好,應從你所選擇的演算法上和你的數據上找原因。演算法上BP神經網路主要有自適應學習速率動量梯度下降反向傳播演算法(traingdx),Levenberg-Marquardt反向傳播演算法(trainlm)等等,我列出的這兩種是最常用的,其中BP默認的是後一種。數據上,看看是不是有誤差數據,如果有及其剔除,否則也會影響預測或識別的效果。
Ⅵ 神經網路經過訓練後如何查看訓練出來的函數matlab的
用net.iw{1,1}函數輸出權值矩陣,按列求平均算出各個變數的權重。你去中國知網搜索
bp神經網路高等學校標准學費,記得是有這么的相關文獻的!
Ⅶ BP神經網路中的訓練函數如何選取
神經網路不同的網路有這不同的訓練函數,BP神經網路有兩種訓練函數,trainbp(),利用BP演算法訓練前向神經網路。trainbpx(),利用快速BP演算法訓練前向神經網路,即採用了動量或自適應學習,可減少訓練時間,tansig函數是神經元的傳遞函數,與訓練函數無關,在trainbp()函數中含有要訓練神經元的函數。
Ⅷ matlab中神經網路的學習函數有哪些類似learngdm的,及其調用格式
學習函數主要包括:BP學習規則learngd,帶動量項的BP學習規則learngdm。一般默認即可,如果需要設置,則在建立網路newff函數的參數中確定。
學習函數和訓練函數的區別:
學習函數的輸出是權值和閾值的增量,訓練函數的輸出是訓練好的網路和訓練記錄,在訓練過程中訓練函數不斷調用學習函數修正權值和閾值,通過檢測設定的訓練步數或性能函數計算出的誤差小於設定誤差,來結束訓練。
或者這么說:訓練函數是全局調整權值和閾值,考慮的是整體誤差的最小。學習函數是局部調整權值和閾值,考慮的是單個神經元誤差的最小。
Ⅸ matlab神經網路工具箱訓練出來的函數,怎麼輸出得到函數代碼段
這樣:
clear;
%輸入數據矩陣
p1=zeros(1,1000);
p2=zeros(1,1000);
%填充數據
for i=1:1000
p1(i)=rand;
p2(i)=rand;
end
%輸入層有兩個,樣本數為1000
p=[p1;p2];
%目標(輸出)數據矩陣,待擬合的關系為簡單的三角函數
t = cos(pi*p1)+sin(pi*p2);
%對訓練集中的輸入數據矩陣和目標數據矩陣進行歸一化處理
[pn, inputStr] = mapminmax(p);
[tn, outputStr] = mapminmax(t);
%建立BP神經網路
net = newff(pn, tn, [200,10]);
%每10輪回顯示一次結果
net.trainParam.show = 10;
%最大訓練次數
net.trainParam.epochs = 5000;
%網路的學習速率
net.trainParam.lr = 0.05;
%訓練網路所要達到的目標誤差
net.trainParam.goal = 10^(-8);
%網路誤差如果連續6次迭代都沒變化,則matlab會默認終止訓練。為了讓程序繼續運行,用以下命令取消這條設置
net.divideFcn = '';
%開始訓練網路
net = train(net, pn, tn);
%訓練完網路後要求網路的權值w和閾值b
%獲取網路權值、閾值
netiw = net.iw;
netlw = net.lw;
netb = net.b;
w1 = net.iw{1,1}; %輸入層到隱層1的權值
b1 = net.b{1} ; %輸入層到隱層1的閾值
w2 = net.lw{2,1}; %隱層1到隱層2的權值
b2 = net.b{2} ; %隱層1到隱層2的閾值
w3 = net.lw{3,2}; %隱層2到輸出層的權值
b3 = net.b{3} ;%隱層2到輸出層的閾值
%在默認的訓練函數下,擬合公式為,y=w3*tansig(w2*tansig(w1*in+b1)+b2)+b3;
%用公式計算測試數據[x1;x2]的輸出,輸入要歸一化,輸出反歸一化
in = mapminmax('apply',[x1;x2],inputStr);
y=w3*tansig(w2*tansig(w1*in+b1)+b2)+b3;
y1=mapminmax('reverse',y,outputStr);
%用bp神經網路驗證計算結果
out = sim(net,in);
out1=mapminmax('reverse',out,outputStr);
注意事項
一、訓練函數
1、traingd
Name:Gradient descent backpropagation (梯度下降反向傳播演算法 )
Description:triangd is a network training function that updates weight and bias values according to gradient descent.
2、traingda
Name:Gradient descentwith adaptive learning rate backpropagation(自適應學習率的t梯度下降反向傳播演算法)
Description:triangd is a network training function that updates weight and bias values according to gradient descent with adaptive learning rate.it will return a trained net (net) and the trianing record (tr).
3、traingdx (newelm函數默認的訓練函數)
name:Gradient descent with momentum and adaptive learning rate backpropagation(帶動量的梯度下降的自適應學習率的反向傳播演算法)
Description:triangdx is a network training function that updates weight and bias values according to gradient descent momentumand an adaptive learning rate.it will return a trained net (net) and the trianing record (tr).
4、trainlm
Name:Levenberg-Marquardtbackpropagation(L-M反向傳播演算法)
Description:triangd is a network training function that updates weight and bias values according toLevenberg-Marquardt optimization.it will return a trained net (net) and the trianing record (tr).
註:更多的訓練演算法請用matlab的help命令查看。
二、學習函數
1、learngd
Name:Gradient descent weight and bias learning function(梯度下降的權值和閾值學習函數)
Description:learngd is the gradient descentweight and bias learning function, it willreturn theweight change dWand a new learning state.
2、learngdm
Name:Gradient descentwith momentumweight and bias learning function(帶動量的梯度下降的權值和閾值學習函數)
Description:learngd is the gradient descentwith momentumweight and bias learning function, it willreturn the weight change dW and a new learning state.
註:更多的學習函數用matlab的help命令查看。
三、訓練函數與學習函數的區別
函數的輸出是權值和閾值的增量,訓練函數的輸出是訓練好的網路和訓練記錄,在訓練過程中訓練函數不斷調用學習函數修正權值和閾值,通過檢測設定的訓練步數或性能函數計算出的誤差小於設定誤差,來結束訓練。
或者這么說:訓練函數是全局調整權值和閾值,考慮的是整體誤差的最小。學習函數是局部調整權值和閾值,考慮的是單個神經元誤差的最小。
它的基本思想是學習過程由信號的正向傳播與誤差的反向傳播兩個過程組成。
正向傳播時,輸入樣本從輸入層傳入,經各隱層逐層處理後,傳向輸出層。若輸出層的實際輸出與期望的輸出(教師信號)不符,則轉入誤差的反向傳播階段。
反向傳播時,將輸出以某種形式通過隱層向輸入層逐層反傳,並將誤差分攤給各層的所有單元,從而獲得各層單元的誤差信號,此誤差信號即作為修正各單元權值的依據。