Ⅰ matlab的神經網路工具箱怎麼用
1.神經網路
神經網路是單個並行處理元素的集合,我們從生物學神經系統得到啟發。在自然界,網路功能主要由神經節決定,我們可以通過改變連接點的權重來訓練神經網路完成特定的功能。
一般的神經網路都是可調節的,或者說可訓練的,這樣一個特定的輸入便可得到要求的輸出。如下圖所示。這里,網路根據輸出和目標的比較而調整,直到網路輸出和目標匹配。作為典型,許多輸入/目標對應的方法已被用在有監督模式中來訓練神經網路。
神經網路已經在各個領域中應用,以實現各種復雜的功能。這些領域包括:模式識別、鑒定、分類、語音、翻譯和控制系統。
如今神經網路能夠用來解決常規計算腿四岩越餼齙奈侍狻N頤侵饕ü飧齬ぞ呦淅唇⑹痙兜納窬縵低常⒂τ玫焦こ獺⒔鶉諍推淥導氏釒恐腥ァ?BR>一般普遍使用有監督訓練方法,但是也能夠通過無監督的訓練方法或者直接設計得到其他的神經網路。無監督網路可以被應用在數據組的辨別上。一些線形網路和Hopfield網路是直接設計的。總的來說,有各種各樣的設計和學習方法來增強用戶的選擇。
神經網路領域已經有50年的歷史了,但是實際的應用卻是在最近15年裡,如今神經網路仍快速發展著。因此,它顯然不同與控制系統和最優化系統領域,它們的術語、數學理論和設計過程都已牢固的建立和應用了好多年。我們沒有把神經網路工具箱僅看作一個能正常運行的建好的處理輪廓。我們寧願希望它能成為一個有用的工業、教育和研究工具,一個能夠幫助用戶找到什麼能夠做什麼不能做的工具,一個能夠幫助發展和拓寬神經網路領域的工具。因為這個領域和它的材料是如此新,這個工具箱將給我們解釋處理過程,講述怎樣運用它們,並且舉例說明它們的成功和失敗。我們相信要成功和滿意的使用這個工具箱,對範例和它們的應用的理解是很重要的,並且如果沒有這些說明那麼用戶的埋怨和質詢就會把我們淹沒。所以如果我們包括了大量的說明性材料,請保持耐心。我們希望這些材料能對你有幫助。
這個章節在開始使用神經網路工具箱時包括了一些注釋,它也描述了新的圖形用戶介面和新的運演算法則和體系結構,並且它解釋了工具箱為了使用模塊化網路對象描述而增強的機動性。最後這一章給出了一個神經網路實際應用的列表並增加了一個新的文本--神經網路設計。這本書介紹了神經網路的理論和它們的設計和應用,並給出了相當可觀的MATLAB和神經網路工具箱的使用。
2.准備工作
基本章節
第一章是神經網路的基本介紹,第二章包括了由工具箱指定的有關網路結構和符號的基本材料以及建立神經網路的一些基本函數,例如new、init、adapt和train。第三章以反向傳播網路為例講解了反向傳播網路的原理和應用的基本過程。
幫助和安裝
神經網路工具箱包含在nnet目錄中,鍵入help nnet可得到幫助主題。
工具箱包含了許多示例。每一個
Ⅱ 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命令查看。
三、訓練函數與學習函數的區別
函數的輸出是權值和閾值的增量,訓練函數的輸出是訓練好的網路和訓練記錄,在訓練過程中訓練函數不斷調用學習函數修正權值和閾值,通過檢測設定的訓練步數或性能函數計算出的誤差小於設定誤差,來結束訓練。
或者這么說:訓練函數是全局調整權值和閾值,考慮的是整體誤差的最小。學習函數是局部調整權值和閾值,考慮的是單個神經元誤差的最小。
它的基本思想是學習過程由信號的正向傳播與誤差的反向傳播兩個過程組成。
正向傳播時,輸入樣本從輸入層傳入,經各隱層逐層處理後,傳向輸出層。若輸出層的實際輸出與期望的輸出(教師信號)不符,則轉入誤差的反向傳播階段。
反向傳播時,將輸出以某種形式通過隱層向輸入層逐層反傳,並將誤差分攤給各層的所有單元,從而獲得各層單元的誤差信號,此誤差信號即作為修正各單元權值的依據。
Ⅲ MATLAB神經網路工具箱configure函數使用
你想要什麼解釋?這句話是在為你的神經網路(net)配置每個RTDX緩沖channel中的位元組位數(p)和緩沖channel的數量(t)。RTDX(real time data exchange)實時數據交換。如果你懂低級計算機編程語言的話應該很好理解。這句話基本可以大致理解為為你的神經網路劃出一個計算的空間。神經網路演算法本身極其復雜,甚至有很多conference是專門討論該演算法的。matlab作為高級程序語言,出發點是把所有演算法打包好使用戶方便使用。要做到這個對一些基礎演算法來說並不難。但是神經網路本身就是一大堆演算法的集成,簡單打包演算法不太可能。使用這個工具箱你只需要知道大致原理,再找幾個模板依樣畫葫蘆練習一下就可以了,沒必要全弄明白
Ⅳ MATLAB神經網路工具箱中訓練函數和自適應學習函數區別
訓練復函數和自適應學習函制數區別:
從范圍上:
訓練函數包含學習函數,學習函數是屬於訓練函數的一部分;
從誤差上:
訓練函數對整體來說誤差是最小,學習函數對於單個神經元來說誤差是最小;
從服裝整體上:
訓練函數是全局調整權值和閾值,學習函數是局部調整權值和閾值。
1. 學習函數
learnp 感知器學習函數
learnpn 標准感知器學習函數
learnwh Widrow_Hoff學習規則
learngd BP學習規則
learngdm 帶動量項的BP學習規則
learnk Kohonen權學習函數
learncon Conscience閾值學習函數
learnsom 自組織映射權學習函數
2. 訓練函數
trainwb 網路權與閾值的訓練函數
traingd 梯度下降的BP演算法訓練函數
traingdm 梯度下降w/動量的BP演算法訓練函數
traingda 梯度下降w/自適應lr的BP演算法訓練函數
traingdx 梯度下降w/動量和自適應lr的BP演算法訓練函數
trainlm Levenberg_Marquardt的BP演算法訓練函數
trainwbl 每個訓練周期用一個權值矢量或偏差矢量的訓練函數
Ⅳ 神經網路中學習函數和訓練函數的區別是什麼,可以舉個例子嗎
)編程理論
作為比較成熟的演算法,軟體Matlab中有神經網路工具箱,所以可以藉助Matlab神經網路工具箱的強大功能,在此基礎上進行二次開發,從繁瑣的編程工作中解脫出來,大大提高工作效率.
Matlab的神經網路工具箱是在Matlab環境下所開發出來的許多工具箱之一,它以人工神經網路理論為基礎,用Matlab語言構造出典型神經網路的激活函數(如S型、線性等激活函數),使使用者對所選定網路的輸出計算編程對激活函數的調用;另外,根據各種修改網路權值的規律,加上網路的訓練過程,用Matlab編寫出各種網路訓練的子程序.這樣,使用者可以根據自己的應用要求,直接調用(或加進自己編寫的)神經網路子函數,而不必要從事繁瑣的編程.
基於Matlab的BP神經網路編程過程如下:
(1)對樣本集進行歸一化
確定輸入樣本和輸出樣本,並對它們進行歸一化,將輸入和輸出樣本變換到(0.1,0.9)區間,由於Matlab的歸一化函數premnmx把數據變換到(-1,1)之間,所以使用自編premnmx2歸一化函數.
(2)創建BP神經網路
在樣本集確定之後,即可進行網路的結構設計,在Matlab中一般使用newff創建函數,它不但創建了網路對象,還自動初始化網路的權重和閾值.如果需要重新初始化網路權重和閾值,可以使用Init函數.
關鍵語句如下:
net=newff(輸入樣本的取值范圍,[網路各層的神經元數目],{網路各層神經元的激活函數},『訓練函數',『學習函數』,『性能函數』)
一般選用三層BP網路,輸入層、輸出層的神經元個數根據具體情況確定,而隱層神經元個數目前多採用經驗的方法確定.
(3)設置網路的訓練參數
net.trainParam.epochs―最大收斂次數;
net.trainParam.goal―收斂誤差;
net.trainParam.show―顯示間隔;
以上在一般的神經網路訓練中都有使用,本文使用Levenberg-Marquart優化演算法進行訓練,還需設置的參數有:
net.trainParam.mu―Levenberg-Marquart優化演算法中的
net.trainParam.mu_dec― 的縮減因子;
Ⅵ 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……
Ⅶ 神經網路中的感知器工具箱函數、BP網路工具箱函數、線性網路工具箱函數、自組織競爭網路工具箱函數、徑向基
都是神經網路啊,都不能達到准確100%,最基本的原理是一樣的,但是它們是針對不同類型的。使用時就要看你遇見什麼樣的數據和模型了,根據不同的模型選擇不同的神經網路。你可以到matlab中文論壇去看一下裡面有很詳細的介紹。希望你能有所收獲!
Ⅷ matlab 中的sse()函數是什麼參數代表什麼意思
sse()是神經網路工具箱中求網路誤差平方和的函數,其句式是:perf
=
sse(net,t,y,ew),net是網路,t是目標參數,y是輸出,ew是誤差權重。perf就是網路的精度輸出性能。
Ⅸ BP神經網路matlab工具箱中的激勵函數(傳遞函數),訓練函數,學習函數
激勵函數用於神經元由輸入計算輸出的,而訓練函數和學習函數是基於誤差,內來修改權值和閾容值的,再就完成了一次訓練,然後繼續迭代,知道達到迭代次數或滿足精度。
然而,學習函數和訓練函數的功能貌似很相近,至於具體區別,正在糾結著我呢
Ⅹ MATLAB神經網路工具箱newff()函數相關問題,謝謝~~
newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)
PR -- R x 2 matrix of min and max values for R input elements
Si -- Size of ith layer, for Nl layers
TFi -- Transfer function of ith layer, default = 'tansig'
BTF -- Backpropagation network training function,
default = 'traingdx'
BLF -- Backpropagation weight/bias learning function,
default = 'learngdm'
PF -- Performance function, default = 'mse
答:【我這幾天也在學習……】
1.是
2.是
3.是,[S1,S2...SN]代表隱含層和輸出層的數目
4.是
個人建議去MATLAB中文論壇下載視頻教程,很不錯~看過後肯定有收獲