MATLAB神經網絡實例及訓練結果各參數解釋

matlab腳本程序實例源碼:

clear;
clc;

%一個簡單的BP網絡擬合問題
%訓練樣本的生成
X=-1:0.1:1;  %X爲輸入 這裏是在[-1 1]區間內以0.1爲步進值(相鄰兩數的差值)生成的21組數據,用來表示該網絡的輸入
D=[-0.9602 -0.5770 -0.0729 0.3771 0.6405 0.6600 0.4609...
    0.1336 -0.2013 -0.4344 -0.5000 -0.3930 -0.1647 -.0988...
    0.3072 0.3960 0.3449 0.1816 -0.312 -0.2189 -0.3201];  %D爲X每一項數據對應的輸出(實際x對應的實際y值)

figure;  %創建一個新窗口
plot(X,D,'+'); %繪製原始數據分佈圖

%創建網絡
net = newff([-1 1],[5 1],{'tansig','tansig'}); %newff:前饋網絡創建函數,即創建一個前饋神經網絡net

%設置訓練參數
net.trainParam.epochs = 100; %設定訓練的最大次數
net.trainParam.goal = 0.005; %設定全局最小誤差,此處爲mse:均方誤差(mean squared error)

%訓練網絡
net = train(net,X,D); %網絡學習函數

%仿真
O = sim(net,X);

%作出擬合圖形
figure; 
plot(X,D,'*',X,O); %繪製訓練後得到的結果和誤差曲線
V = net.iw{1,1}%輸入層到中間層權值
theta1 = net.b{1}%中間層各神經元閾值
W = net.lw{2,1}%中間層到輸出層權值
theta2 = net.b{2}%輸出層各神經元閾值
 

運行結果:

 

 

MATLAB神經網絡訓練結果各參數解釋:

 

如上圖形顯示的是神經網絡的結構圖,可知有一個隱層一個輸出層

第二部分顯示的是訓練算法,這裏爲學習率自適應的梯度下降BP算法;誤差指標爲MSE

第三部分顯示訓練進度:

Epoch:訓練次數;在其右邊顯示的是最大的訓練次數,可以設定,上面例子中設爲100;而進度條中顯示的是實際訓練的次數,上面例子中實際訓練次數爲7次。

Time:訓練時間,也就是本次訓練中,使用的時間

Performance:性能指;進度條中顯示的是當前的均方誤差;進度條右邊顯示的是設定的均方誤差(如果當前的均方誤差小於設定值,則停止訓練),這個指標可以用用.trainParam.goal參數設定。

Gradiengt:梯度;進度條中顯示的當前的梯度值,其右邊顯示的是設定的梯度值。如果當前的梯度值達到了設定值,則停止訓練。

validation check爲泛化能力檢查(若連續6次訓練誤差不降反升,則強行結束訓練)

第四部分爲作圖。分別點擊三個按鈕能看到誤差變化曲線,分別用於繪製當前神經網絡的性能圖,訓練狀態和迴歸分析。

 

參考:https://www.cnblogs.com/litthorse/p/7636839.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章