① 怎樣用matlab建立bp神經網路
net=train(net, p, t);把這句改成net=train(net, p', t');試試,matlab應該默認使用列向量。或者直接使用matlab提供的圖形界面取訓練,在命令行輸入nnstart
② matlab中BP神經網路如何設置初始權重
因為初始值(初始權值和閥值)都在x這個向量中,x(n,1)的長度n為:n=inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum
其中inputnum*hiddennum是輸入層到隱含層的權值數量,hiddennum是隱含層神經元個數(即隱含層閥值個數),hiddennum*outputnum是隱含層到輸出層權值個數,outputnum是輸出層神經元個數(即輸出層閥值個數);
③ 如何用matlab軟體實現神經網路應用
給你一個實例,希望通過該例子對實現神經網路應用有一定的了解。
%x,y分別為輸入和目標向量
x=1:5;
y=[639 646 642 624 652];
%創建一個前饋網路
net=newff(minmax(x),[20,1],{'tansig','purelin'});
%模擬未經訓練的網路net並畫圖
y1=sim(net,x);plot(x,y1,':');
%採用L-M優化演算法
net.trainFcn='trainlm';
%設置訓練演算法
net.trainParam.epochs=500;net.trainParam.goal=10^(-6);
%調用相應演算法訓練BP網路
[net,tr,yy]=train(net,x,y);
%對BP網路進行模擬
y1=sim(net,x);
%計算模擬誤差
E=y-y1;MSE=mse(E)
hold on
%繪制匹配結果曲線
figure;
plot(x,y1,'r*',x,y,'b--')
執行結果
④ matlab建立bp神經網路如何設置兩個隱含層呢
題主那個newff裡面的10看到沒?那個就是設置1個隱含層的神經元個數,要多個隱含層就把10改成[4,10,1]就是第一個隱含層有4個神經元,第二個隱含層10個神經元,最後一層輸出層1個神經元。然後你的{TF1 TF2}不用改。這樣應該能用了。
然後給你一個newff的各項參數使用的介紹:
⑤ MATLAB下神經網路的設計
我來說下我的理解,不一定對,一起討論下吧
1.100個字母,400個數字組成的訓練樣本應該是可以的,因為訓練樣本多的話會使整個網路的權值更加接近准確的權值,500個訓練樣本對於圖像處理來說應該不算多。
2.因為預處理後的每個字母/圖片為250的向量值,所有訓練樣本可以組成250*500的輸入矩陣,因為一共有10+26=36個分類,所以3層的神經網路為輸入層250,輸出層36,隱層選20左右,最終得到的輸出矩陣為36*500。(期望矩陣中需要歸為一類的可以設為1,其餘35個向量值為0)
3.和4.應該都可以歸為2中
5.圖片可以用特徵提取的方法來減少輸入向量的維數,經典有容易理解的如PCA。
⑥ matlab神經網路工具箱具體怎麼用
為了看懂師兄的文章中使用的方法,研究了一下神經網路
昨天花了一天的時間查怎麼寫程序,但是費了半天勁,不能運行,網路知道里倒是有一個,可以運行的,先貼著做標本
% 生成訓練樣本集
clear all;
clc;
P=[110 0.807 240 0.2 15 1 18 2 1.5;
110 2.865 240 0.1 15 2 12 1 2;
110 2.59 240 0.1 12 4 24 1 1.5;
220 0.6 240 0.3 12 3 18 2 1;
220 3 240 0.3 25 3 21 1 1.5;
110 1.562 240 0.3 15 3 18 1 1.5;
110 0.547 240 0.3 15 1 9 2 1.5];
0 1.318 300 0.1 15 2 18 1 2];
T=[54248 162787 168380 314797;
28614 63958 69637 82898;
86002 402710 644415 328084;
230802 445102 362823 335913;
60257 127892 76753 73541;
34615 93532 80762 110049;
56783 172907 164548 144040];
@907 117437 120368 130179];
m=max(max(P));
n=max(max(T));
P=P'/m;
T=T'/n;
%-------------------------------------------------------------------------%
pr(1:9,1)=0; %輸入矢量的取值范圍矩陣
pr(1:9,2)=1;
bpnet=newff(pr,[12 4],{'logsig', 'logsig'}, 'traingdx', 'learngdm');
%建立BP神經網路, 12個隱層神經元,4個輸出神經元
%tranferFcn屬性 'logsig' 隱層採用Sigmoid傳輸函數
%tranferFcn屬性 'logsig' 輸出層採用Sigmoid傳輸函數
%trainFcn屬性 'traingdx' 自適應調整學習速率附加動量因子梯度下降反向傳播演算法訓練函數
%learn屬性 'learngdm' 附加動量因子的梯度下降學習函數
net.trainParam.epochs=1000;%允許最大訓練步數2000步
net.trainParam.goal=0.001; %訓練目標最小誤差0.001
net.trainParam.show=10; %每間隔100步顯示一次訓練結果
net.trainParam.lr=0.05; %學習速率0.05
bpnet=train(bpnet,P,T);
%-------------------------------------------------------------------------
p=[110 1.318 300 0.1 15 2 18 1 2];
p=p'/m;
r=sim(bpnet,p);
R=r'*n;
display(R);
運行的結果是出現這樣的界面
點擊performance,training state,以及regression分別出現下面的界面
再搜索,發現可以通過神經網路工具箱來創建神經網路,比較友好的GUI界面,在輸入命令裡面輸入nntool,就可以開始了。
點擊import之後就出現下面的具體的設置神經網路參數的對話界面,
這是輸入輸出數據的對話窗
首先是訓練數據的輸入
然後點擊new,創建一個新的神經網路network1,並設置其輸入輸出數據,包括名稱,神經網路的類型以及隱含層的層數和節點數,還有隱含層及輸出層的訓練函數等
點擊view,可以看到這是神經網路的可視化直觀表達
創建好了一個network之後,點擊open,可以看到一個神經網路訓練,優化等的對話框,選擇了輸入輸出數據後,點擊train,神經網路開始訓練,如右下方的圖,可以顯示動態結果
下面三個圖形則是點擊performance,training state以及regression而出現的
下面就是simulate,輸入的數據是用來檢驗這個網路的數據,output改一個名字,這樣就把輸出數據和誤差都存放起來了
在主界面上點擊export就能將得到的out結果輸入到matlab中並查看
下圖就是輸出的兩個outputs結果
還在繼續挖掘,to be continue……
⑦ 如何利用matlab進行神經網路預測
matlab 帶有神經網路工具箱,可直接調用,建議找本書看看,或者MATLAB論壇找例子。
核心調用語句如下:
%數據輸入
%選連樣本輸入輸出數據歸一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
%% BP網路訓練
% %初始化網路結構
net=newff(inputn,outputn,[8 8]);
net.trainParam.epochs=100;
net.trainParam.lr=0.01;
net.trainParam.goal=0.01;
%網路訓練
net=train(net,inputn,outputn);
%% BP網路預測
%預測數據歸一化
inputn_test=mapminmax('apply',input_test,inputps);
%網路預測輸出
an=sim(net,inputn_test);
%網路輸出反歸一化
BPoutput=mapminmax('reverse',an,outputps);
%% 結果分析
⑧ matlab中神經網路如何設置神經元的個數我想要設置5個神經元!
net=newff([x,y],[a1,a2,...,ak],{f1,f2,...,fk})
x,y分別為列向量,存儲各個樣本書ude最小值和最大值。[a1,a2,...,ak]是行向量,輸入神經網路各層的結點數,也就是你題目的問題。k是指神經元隱層層數。{f1,f2,...,fk}輸入變數為單元式數組,對應每層神經元的傳輸函數類型。
如果還有什麼問題再聯系我吧~
⑨ matlab工具箱中的神經網路和遺傳演算法要怎麼調用
都是有兩種調用方法,一種圖形界面的,這個從開始菜單,然後工具,然後從裡面找神經網路
neural
network,遺傳演算法工具是
全局優化工具箱裡面的,global
optimization。
另外
一種通過命令行調用,這個需要你理解你都要做什麼,我用神經網路舉例。第一步需要先整理出輸入變數和輸出變數,第二步設計並初始化神經網路,第三部訓練,第四部獲得結果。
如果你想結合這兩者,就會更加復雜,詳細的你可以再問。我曾經做過用遺傳演算法優化神經網路的工具。
⑩ matlab GUI中神經網路層數設置的問題
神經網路的GUI是可以設置多個隱含層的!
只需注意下:在你輸入完number of layers以後,需要按一下回車鍵。