『壹』 神經網路工具箱與編程實現哪個更好
首先說一下神經網路工具箱,在我剛剛接觸神經網路的時候,我就利用工具箱去解決問題,這讓我從直觀上對神經網路有了了解,大概清楚了神經網路的應用范圍以及它是如何解決實際問題的。
工具箱的優勢在於我們不用了解其內部的具體實現,更關注於模型的建立與問題的分析,也就是說,如果拋開演算法的錯誤,那麼用工具箱來解決實際問題會讓我們能把更多的精力放在實際問題的模型建立上,而不是繁瑣的演算法實現以及分析上。
其次談談編程實現神經網路,由於個人能力有限,所以只是簡單的編程實現過一些基本神經演算法,總的體會就是編程的過程讓我對演算法有了更透徹的理解,可以更深入的分析其內部運行機制,也同樣可以實現一下自己的想法,構建自己的神經網路演算法。
以上是我對兩個方法的簡單理解。那究竟哪個方法更好些呢?我個人的看法是要看使用者的目的是怎樣的。
如果使用者的目的在於解決實際問題,利用神經網路的函數逼近與擬合功能實現自己對實際問題的分析與模型求解,那我的建議就是利用神經網路工具箱,學過編程語言的人都知道,無論用什麼編程語言將一個現有的演算法編程實現達到可用的結果這一過程都是及其繁瑣與復雜的,就拿簡單的經典BP神經網路演算法來說,演算法本身的實現其實並不難,可根據不同人的能力,編出來的程序的運行效率是大不相同的,而且如果有心人看過matlab的工具箱的源碼的話,應該能發現,裡面採用的方法並不完全是純粹的BP經典演算法,一個演算法從理論到實現還要依賴與其他演算法的輔助,計算機在計算的時候難免出現的舍入誤差,保證權值的時刻改變,這都是編程人員需要考慮的問題,可能還有很多的問題
這樣的話,如果自己單人編程去實現神經網路來解決實際問題的話,整體效率就沒有使用工具箱更好。
如果使用者的目的在於分析演算法,構造新的網路的話那當然首推自己編程實現。個人的感覺就是,如果真的是自己完全編程實現的話,對演算法會有很深入的理解,在編程的調試過程中,也會領悟到很多自己從前從來沒有考慮過的問題,像權值的初始的隨機選取應該怎麼樣,將訓練樣本按什麼順序輸入等,這都是編程實現所要考慮的問題,不同的方法得到的結果會有很大的差距。
『貳』 matlab神經網路工具箱問題
線性神經網路的構建:
net=newlin(PR,S,ID,LR)
PR--Rx2階矩陣,R個輸入元素的最小最大矩陣
S---輸出層神經元個數
ID--輸入延遲向量,默認值為[0]
IR--學習率,默認值為0.01
net = newlin([-1 1;-1 1],1); 表示設計的是一個雙輸入單輸出線性神經網路
P = [1 2 2 3; 2 1 3 1];表示輸入樣本有四個,每一列就是一個輸入樣本
又比如假設我們期望的輸出為 T=[1 2 3 4],則一個簡單的神經網路如下:
>>net = newlin([-1 1;-1 1],1);%創建初始網路
P=[1 2 2 3; 2 1 3 1]%輸入
T=[1 2 3 4]%期望的輸出
net=newlind(P,T);%用輸入和期望訓練網路
Y=sim(net,P)%模擬,可以看到模擬結果Y和期望輸出T的接近程度
P =
1 2 2 3
2 1 3 1
T =
1 2 3 4
Y =
0.8889 2.1667 3.0556 3.8889
樓主可以從《matlab神經網路與應用(第二版)》董長虹 開始入門神經網路的matlab實現
參考資料:《matlab神經網路與應用(第二版)》
『叄』 matlab怎麼打開神經網路工具箱
1單擊Apps,在搜索框中輸入neu,下方出現了所有神經網路工具箱。neural net fitting 是我們要使回用的神答經網路擬合工具箱。
2
在下界面中點擊next
3
單擊load example data set,得到我們需要的測試數據。
4
單擊import
5
單擊next
6
單擊next
7
數字「10」表示有10個隱含層。單擊next。
8
單擊train,開始訓練。
9
訓練過程跳出的小窗口。
10
訓練結果。其中MSE表示均方差,R 表示相關系數。單擊next。
11
這里可以調整神經網路,也可以再次訓練。單擊next。
12
在這里,可以保存結果。如果不需要,直接finish。
『肆』 matlab的神經網路工具箱問題
線性神經網路的構建:
net=newlin(PR,S,ID,LR)
PR--Rx2階矩陣,R個輸入元素的最小最大矩陣
S---輸出層神經元個數
ID--輸入延遲向量,默認值為[0]
IR--學習率,默認值為0.01
net = newlin([-1 1;-1 1],1); 表示設計的是一個雙輸入單輸出線性神經網路
P = [1 2 2 3; 2 1 3 1];表示輸入樣本有四個,每一列就是一個輸入樣本
又比如假設我們期望的輸出為 T=[1 2 3 4],則一個簡單的神經網路如下:
>>net = newlin([-1 1;-1 1],1);%創建初始網路
P=[1 2 2 3; 2 1 3 1]%輸入
T=[1 2 3 4]%期望的輸出
net=newlind(P,T);%用輸入和期望訓練網路
Y=sim(net,P)%模擬,可以看到模擬結果Y和期望輸出T的接近程度
P =
1 2 2 3
2 1 3 1
T =
1 2 3 4
Y =
0.8889 2.1667 3.0556 3.8889
樓主可以從《matlab神經網路與應用(第二版)》董長虹 開始入門神經網路的matlab實現
參考資料:《matlab神經網路與應用(第二版)》
『伍』 使用MATLAB神經網路工具箱時,在創建過程中中無法選擇輸出層的神經元數
節點數根據你的訓練樣本自動確認,如果你的輸出樣本只有一維,則輸出節點數內為1.
建議你不要用這個容工具,直接使用函數newff建立網路。老版newff函數的格式為:
net=newff(PR,[S1 S2 ...SN],{TF1 TF2...TFN},BTF,BLF,PF),函數newff建立一個可訓練的前饋網路。輸入參數說明:
PR:Rx2的矩陣以定義R個輸入向量的最小值和最大值;
Si:第i層神經元個數;
TFi:第i層的傳遞函數,默認函數為tansig函數;
BTF:訓練函數,默認函數為trainlm函數;
BLF:權值/閥值學習函數,默認函數為learngdm函數;
PF:性能函數,默認函數為mse函數。
『陸』 matlab的神經網路工具箱怎麼用
1.神經網路
神經網路是單個並行處理元素的集合,我們從生物學神經系統得到啟發。在自然界,網路功能主要由神經節決定,我們可以通過改變連接點的權重來訓練神經網路完成特定的功能。
一般的神經網路都是可調節的,或者說可訓練的,這樣一個特定的輸入便可得到要求的輸出。如下圖所示。這里,網路根據輸出和目標的比較而調整,直到網路輸出和目標匹配。作為典型,許多輸入/目標對應的方法已被用在有監督模式中來訓練神經網路。
神經網路已經在各個領域中應用,以實現各種復雜的功能。這些領域包括:模式識別、鑒定、分類、語音、翻譯和控制系統。
如今神經網路能夠用來解決常規計算腿四岩越餼齙奈侍狻N頤侵饕ü飧齬ぞ呦淅唇⑹痙兜納窬縵低常⒂τ玫焦こ獺⒔鶉諍推淥導氏釒恐腥ァ?BR>一般普遍使用有監督訓練方法,但是也能夠通過無監督的訓練方法或者直接設計得到其他的神經網路。無監督網路可以被應用在數據組的辨別上。一些線形網路和Hopfield網路是直接設計的。總的來說,有各種各樣的設計和學習方法來增強用戶的選擇。
神經網路領域已經有50年的歷史了,但是實際的應用卻是在最近15年裡,如今神經網路仍快速發展著。因此,它顯然不同與控制系統和最優化系統領域,它們的術語、數學理論和設計過程都已牢固的建立和應用了好多年。我們沒有把神經網路工具箱僅看作一個能正常運行的建好的處理輪廓。我們寧願希望它能成為一個有用的工業、教育和研究工具,一個能夠幫助用戶找到什麼能夠做什麼不能做的工具,一個能夠幫助發展和拓寬神經網路領域的工具。因為這個領域和它的材料是如此新,這個工具箱將給我們解釋處理過程,講述怎樣運用它們,並且舉例說明它們的成功和失敗。我們相信要成功和滿意的使用這個工具箱,對範例和它們的應用的理解是很重要的,並且如果沒有這些說明那麼用戶的埋怨和質詢就會把我們淹沒。所以如果我們包括了大量的說明性材料,請保持耐心。我們希望這些材料能對你有幫助。
這個章節在開始使用神經網路工具箱時包括了一些注釋,它也描述了新的圖形用戶介面和新的運演算法則和體系結構,並且它解釋了工具箱為了使用模塊化網路對象描述而增強的機動性。最後這一章給出了一個神經網路實際應用的列表並增加了一個新的文本--神經網路設計。這本書介紹了神經網路的理論和它們的設計和應用,並給出了相當可觀的MATLAB和神經網路工具箱的使用。
2.准備工作
基本章節
第一章是神經網路的基本介紹,第二章包括了由工具箱指定的有關網路結構和符號的基本材料以及建立神經網路的一些基本函數,例如new、init、adapt和train。第三章以反向傳播網路為例講解了反向傳播網路的原理和應用的基本過程。
幫助和安裝
神經網路工具箱包含在nnet目錄中,鍵入help nnet可得到幫助主題。
工具箱包含了許多示例。每一個
『柒』 matlab 2012b中為什麼找不到神經網路工具箱
需要顯示的結果不要使用分號; 例如 >>b=3+4 ans=7 >>b=3+4; 則不顯示。 另外,mat文件是MATLAB用於存儲數據的專用文件格式,需要的時候可以採用inport命令導入到MATLAB中。
『捌』 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中bp神經網路的工具箱怎麼用,不要matlab程序,就工具箱怎麼實現問題的解決
matlab中神經網路的工具箱:輸入nntool,就會彈出一個對話框,然後你就可以根據彈出框的指示來操作。
『拾』 哪有多維輸入多維輸出的RBF神經網路的例子,不使用工具箱
既然用matlab的話rbf神經網路不需要自己寫代碼,matlab有提供的RBF工具箱.
訓練命令主要回有兩個,一個是固定隱含層答節點數的指令newrbe,一個是變隱含層節點數的指令newrb.預測輸出指令和其他神經網路一樣,是sim.
常用指令輸出格式是net = newrbe(P,T,spread);net = newrb(P,T,goal,spread,MN,DF); X = sim(net,xn_test).參數具體格式參看help newrbe;help newrb以及help sim,參數物理意義參看相關理論,不再贅述了.
因為一般不存在局部最小問題,所以不需要使用結構體編輯指令設置初值,如果需要中間過程的原始數據,可以在訓練結構體中找到(即為net參數,存儲格式為結構體),結構體內部數據的物理意義,參看help help關於rbf神經網路結構體的介紹.