導航:首頁 > 五金知識 > 神經網路工具箱過程窗口

神經網路工具箱過程窗口

發布時間:2021-02-11 00:46:59

⑴ 如何用MATLAB的神經網路工具箱實現三層BP網路

這是一個來自<神經網路之家>nnetinfo的例子,在matlab2012b運行後的確可以,因為網路知道的文本寬度不夠,注釋擠到第二行了,有些亂,樓主注意區分哪些是代碼哪些是注釋,
x1 =
[-3,-2.7,-2.4,-2.1,-1.8,-1.5,-1.2,-0.9,-0.6,-0.3,0,0.3,0.6,0.9,1.2,1.5,1.8]; %x1:x1 = -3:0.3:2;
x2 =
[-2,-1.8,-1.6,-1.4,-1.2,-1,-0.8,-0.6,-0.4,-0.2,-2.2204,0.2,0.4,0.6,0.8,1,1.2];%x2:x2 = -2:0.2:1.2;
y = [0.6589,0.2206,-0.1635,-0.4712,-0.6858,-0.7975,-0.8040,...

-0.7113,-0.5326,-0.2875
,0,0.3035,0.5966,0.8553,1.0600,1.1975,1.2618]; %y:
y = sin(x1)+0.2*x2.*x2;
inputData = [x1;x2]; %將x1,x2作為輸入數據

outputData = y; %將y作為輸出數據

%使用用輸入輸出數據(inputData、outputData)建立網路,

%隱節點個數設為3.其中隱層、輸出層的傳遞函數分別為tansig和purelin,使用trainlm方法訓練。
net = newff(inputData,outputData,3,{'tansig','purelin'},'trainlm');

%設置一些常用參數
net.trainparam.goal = 0.0001;
%訓練目標:均方誤差低於0.0001
net.trainparam.show = 400; %每訓練400次展示一次結果
net.trainparam.epochs = 15000;
%最大訓練次數:15000.
[net,tr] = train(net,inputData,outputData);%調用matlab神經網路工具箱自帶的train函數訓練網路
simout = sim(net,inputData);
%調用matlab神經網路工具箱自帶的sim函數得到網路的預測值
figure; %新建畫圖窗口窗口
t=1:length(simout);
plot(t,y,t,simout,'r')%畫圖,對比原來的y和網路預測的y

⑵ matlab 神經網路工具箱 GUI使用指南

在matlab的幫助中有詳細資料

⑶ 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);

(3)神經網路工具箱過程窗口擴展閱讀:

注意事項

一、訓練函數

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命令查看。

三、訓練函數與學習函數的區別

函數的輸出是權值和閾值的增量,訓練函數的輸出是訓練好的網路和訓練記錄,在訓練過程中訓練函數不斷調用學習函數修正權值和閾值,通過檢測設定的訓練步數或性能函數計算出的誤差小於設定誤差,來結束訓練。

或者這么說:訓練函數是全局調整權值和閾值,考慮的是整體誤差的最小。學習函數是局部調整權值和閾值,考慮的是單個神經元誤差的最小。

它的基本思想是學習過程由信號的正向傳播與誤差的反向傳播兩個過程組成。

正向傳播時,輸入樣本從輸入層傳入,經各隱層逐層處理後,傳向輸出層。若輸出層的實際輸出與期望的輸出(教師信號)不符,則轉入誤差的反向傳播階段。

反向傳播時,將輸出以某種形式通過隱層向輸入層逐層反傳,並將誤差分攤給各層的所有單元,從而獲得各層單元的誤差信號,此誤差信號即作為修正各單元權值的依據。

⑷ 神經網路訓練過程的窗口能不彈出來嗎

可以,但是網路規模太大,很臃腫,需要調整的參數過多,影響收斂速度。
關於隱層節點數:在BP 網路中,隱層節點數的選擇非常重要,它不僅對建立的神經網路模型的性能影響很大,而且是訓練時出現「過擬合」的直接原因,但是目前理論上還沒有一種科學的和普遍的確定方法。 目前多數文獻中提出的確定隱層節點數的計算公式都是針對訓練樣本任意多的情況,而且多數是針對最不利的情況,一般工程實踐中很難滿足,不宜採用。事實上,各種計算公式得到的隱層節點數有時相差幾倍甚至上百倍。為盡可能避免訓練時出現「過擬合」現象,保證足夠高的網路性能和泛化能力,確定隱層節點數的最基本原則是:在滿足精度要求的前提下取盡可能緊湊的結構,即取盡可能少的隱層節點數。研究表明,隱層節點數不僅與輸入/輸出層的節點數有關,更與需解決的問題的復雜程度和轉換函數的型式以及樣本數據的特性等因素有關。
在確定隱層節點數時必須滿足下列條件:
(1)隱層節點數必須小於N-1(其中N為訓練樣本數),否則,網路模型的系統誤差與訓練樣本的特性無關而趨於零,即建立的網路模型沒有泛化能力,也沒有任何實用價值。同理可推得:輸入層的節點數(變數數)必須小於N-1。
(2) 訓練樣本數必須多於網路模型的連接權數,一般為2~10倍,否則,樣本必須分成幾部分並採用「輪流訓練」的方法才可能得到可靠的神經網路模型。
總之,若隱層節點數太少,網路可能根本不能訓練或網路性能很差;若隱層節點數太多,雖然可使網路的系統誤差減小,但一方面使網路訓練時間延長,另一方面,訓練容易陷入局部極小點而得不到最優點,也是訓練時出現「過擬合」的內在原因。因此,合理隱層節點數應在綜合考慮網路結構復雜程度和誤差大小的情況下用節點刪除法和擴張法確定。

⑸ 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怎麼打開神經網路工具箱

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中使用神經網路工具箱最後得到的結果不顯示在命令窗口,怎麼回事呢

需要顯示的結果不要使用分號;
例如
>>b=3+4
ans=7
>>b=3+4;
則不顯示。
另外,mat文件是MATLAB用於存儲數據的專用文件格式,需要的時候可以採用inport命令導入到MATLAB中。

⑻ 用matlab的神經網路工具箱(nntool命令打開的窗口化工具)做bp神經網路時怎麼生成誤差曲

訓練結束後,訓練窗口裡有一個plot區域,點擊performance按鈕,就能彈出誤差曲線下降圖。內

BP(Back Propagation)神經網路是86年由容Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一。BP網路能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程。它的學習規則是使用最速下降法,通過反向傳播來不斷調整網路的權值和閾值,使網路的誤差平方和最小。BP神經網路模型拓撲結構包括輸入層(input)、隱層(hidden layer)和輸出層(output layer)。

⑼ 1.如何用MATLAB神經網路工具箱創建BP神經網路模型具體有哪些步驟請高手舉實例詳細解釋下 2.如何把輸

%人臉識別模型,臉部模型自己找吧。
function mytest()

clc;
images=[ ];
M_train=3;%表示人臉
N_train=5;%表示方向
sample=[];
pixel_value=[];
sample_number=0;

for j=1:N_train
for i=1:M_train
str=strcat('Images\',num2str(i),'_',num2str(j),'.bmp'); %讀取圖像,連接字元串形成圖像的文件名。
img= imread(str);
[rows cols]= size(img);%獲得圖像的行和列值。
img_edge=edge(img,'Sobel');

%由於在分割圖片中我們可以看到這個人臉的眼睛部分也就是位於分割後的第二行中,位置變化比較大,而且眼睛邊緣檢測效果很好

sub_rows=floor(rows/6);%最接近的最小整數,分成6行
sub_cols=floor(cols/8);%最接近的最小整數,分成8列
sample_num=M_train*N_train;%前5個是第一幅人臉的5個角度

sample_number=sample_number+1;
for subblock_i=1:8 %因為這還在i,j的循環中,所以不可以用i
block_num=subblock_i;
pixel_value(sample_number,block_num)=0;
for ii=sub_rows:(2*sub_rows)
for jj=(subblock_i-1)*sub_cols+1:subblock_i*sub_cols
pixel_value(sample_number,block_num)=pixel_value(sample_number,block_num)+img_edge(ii,jj);
end
end
end
end
end
%將特徵值轉換為小於1的值
max_pixel_value=max(pixel_value);
max_pixel_value_1=max(max_pixel_value);
for i=1:3
mid_value=10^i;
if(((max_pixel_value_1/mid_value)>1)&&((max_pixel_value_1/mid_value)<10))
multiple_num=1/mid_value;
pixel_value=pixel_value*multiple_num;
break;
end
end

% T 為目標矢量
t=zeros(3,sample_number);
%因為有五類,所以至少用3個數表示,5介於2的2次方和2的3次方之間
for i=1:sample_number
% if((mod(i,5)==1)||(mod(i,5)==4)||(mod(i,5)==0))
if(i<=3)||((i>9)&&(i<=12))||((i>12)&&(i<=15))
t(1,i)=1;
end
%if((mod(i,5)==2)||(mod(i,5)==4))
if((i>3)&&(i<=6))||((i>9)&&(i<=12))
t(2,i)=1;
end
%if((mod(i,5)==3)||(mod(i,5)==0))
if((i>6)&&(i<=9))||((i>12)&&(i<=15))
t(3,i)=1;
end
end

% NEWFF——生成一個新的前向神經網路
% TRAIN——對 BP 神經網路進行訓練
% SIM——對 BP 神經網路進行模擬

% 定義訓練樣本
% P 為輸入矢量
P=pixel_value'
% T 為目標矢量
T=t
size(P)
size(T)
% size(P)
% size(T)

% 創建一個新的前向神經網路
net_1=newff(minmax(P),[10,3],{'tansig','purelin'},'traingdm')

% 當前輸入層權值和閾值
inputWeights=net_1.IW{1,1}
inputbias=net_1.b{1}
% 當前網路層權值和閾值
layerWeights=net_1.LW{2,1}
layerbias=net_1.b{2}

% 設置訓練參數
net_1.trainParam.show = 50;
net_1.trainParam.lr = 0.05;
net_1.trainParam.mc = 0.9;
net_1.trainParam.epochs = 10000;
net_1.trainParam.goal = 1e-3;

% 調用 TRAINGDM 演算法訓練 BP 網路
[net_1,tr]=train(net_1,P,T);

% 對 BP 網路進行模擬
A = sim(net_1,P);
% 計算模擬誤差
E = T - A;
MSE=mse(E)

x=[0.14 0 1 1 0 1 1 1.2]';
sim(net_1,x)

閱讀全文

與神經網路工具箱過程窗口相關的資料

熱點內容
機械手的抓取方式有哪些是 瀏覽:974
qq設備鎖關了怎麼還要驗證怎麼弄 瀏覽:863
動態機關裝置設計圖 瀏覽:140
機械設計考研考什麼 瀏覽:81
FM在閥門上端面是什麼 瀏覽:91
踏板摩托車如何拆卸後三角板軸承 瀏覽:185
CO排盡裝置內空氣的作用 瀏覽:754
學機械要看哪些書 瀏覽:786
反應釜里加熱裝置如何設計 瀏覽:144
機械革命z2怎麼還原出廠 瀏覽:489
漢口北五金機電城淹水 瀏覽:926
軸承32202是什麼 瀏覽:698
化學制氧氣實驗裝置 瀏覽:293
香港東成電動工具 瀏覽:515
鋅與硫酸銅反應的實驗裝置 瀏覽:10
視覺錯亂工具箱怎麼開 瀏覽:484
機械硬碟背面怎麼查看儲存容量 瀏覽:528
暖氣關閉回水閥門會影響樓下嗎 瀏覽:662
平陰二機床廠怎麼樣 瀏覽:337
檢查閥門不正確的方法是什麼 瀏覽:704