通過哪些引數看神經網路擬合出來的函式效果?神經網路擬合時如何確定隱藏的節點數

時間 2021-09-06 21:09:32

1樓:檀君博

主要看均方誤差和其百分比(準確率)。假如你擬合出來是ui,計算(yi-ui)^2的平均值,然後計算這個平均值與yi平均值的比(也就是均方誤差百分比),當然用1減去這個百分比就是準確率了。一般也會畫一幅圖,把yi和ui分別用不同的顏色或者符號表示出來,直觀對比。

擬合時的隱含層節點數目前沒有一個通行的公式進行確定,只能憑藉經驗和試湊。一般情況下,問題的複雜程度(非線性程度和維度)越高,隱含層節點數越多。這裡介紹一個小經驗:

先用不太大的節點數進行**,如果增加節點數測試集準確率和訓練集準確率都有所提升,則應該繼續增加。如果增加節點數測試集準確率增加很不明顯,而訓練集準確率還是有所提升,則不應該繼續增加,當前的就是很理想的,繼續增加節點數只會起到反效果。

2樓:匿名使用者

看方差值確定效果。

隱藏的節點數通過經驗判斷,通常存在加速區與緩速區,當處於加速區時,應增加節點,直到效果沒有明顯改善時進入緩速區為止。

用一些其他的方式可以改變加速區與緩速區的分配

3樓:匿名使用者

mse,sse都可以。

神經網路擬合函式的小例題

4樓:匿名使用者

你這個問題其實我回答過,你可以參考

5樓:

最簡單的擬合方法就是利用matlab中的nntool工具箱,無論是知道擬合曲線的形式還是不知道,都可以用nntool工具箱。我做出來的擬合曲線即相關引數,擬合影象分別如下圖。

講解bp神經網路比較好的書有:matlab神經網路:從零開始》(共上下兩冊)和

《matlab 神經網路30個案例分析》

6樓:添顏旅行

人工神經網路第一次作業

題目:使用函式

sin()au

tecu

試驗matlab

中的bp演算法1

、改變不同訓練演算法,觀察效果;

2、改變引數

a,c的值,觀察效果;

3、改變隱層神經網路個數,觀察效果;

4、嘗試:加入噪聲的訓練效果。

一、改變不同訓練演算法,觀察效果

在matlab

中,bp

網路的訓練函式一共有以下幾種,改變不同訓練演算法,

觀察效果就是在其他引數不變只改變程式中訓練函式的情況下,

得到不同訓練算

法的訓練結果。

訓練方法

訓練函式

梯度下降法

traingd

有動量的梯度下降法

traingdm

自適應lr

梯度下降法

traingda

自適應lr

動量梯度下降法

traingdx

彈性梯度下降法

trainrp

fletcher-reeves

共軛梯度法

traincgf

ploak-ribiere

共軛梯度法

traincgp

powell-beale

共軛梯度法

traincgb

量化共軛梯度法

trainscg

擬牛頓演算法

trainbfg

一步正割演算法

trainoss

levenberg-marquardt

法trainlm

由於這只是改變程式中的訓練演算法,

其他不變,

所以為了簡潔,

在本程式中

只選取了四種訓練演算法,

分別是梯度下降法

traingd

、彈性梯度下降法

trainrp、擬

牛頓演算法

trainbfg

和levenberg-marquardt

法trainlm

,只更改不同的訓練演算法來

構造節點,程式如下,得到不同訓練演算法下的**圖如圖

1所示。

clear

all;

close

all;

clc;

a=1,c=1;

%在此改變

a,c的值

layer_number=20;

%在此改隱含層的個數

u=-4:0.001:4;

t=exp(-a*u).*sin(c*u);

%這裡是矩陣相乘,要用點乘

net=newff(minmax(u),[layer_number,1],,

'traingd');%

梯度下降法

y1=sim(net,u);

%未訓練直接輸出

net1=newff(minmax(u),[layer_number,1],,

'traingd');

%梯度下降法

net2=newff(minmax(u),[layer_number,1],,

'trainrp');

%彈性梯度下降法

net3=newff(minmax(u),[layer_number,1],,

'trainbfg');%

擬牛頓演算法

net4=newff(minmax(u),[layer_number,1],,

'trainlm');

%levenberg-marquardt

net.trainparam.show = 50;

net.trainparam.epochs=1000;

net.trainparam.goal=0.01;

net1=train(net1,u,t);

%採用梯度下降法訓練節點

net2=train(net2,u,t);

%採用彈性梯度下降法訓練節點

net3=train(net3,u,t);

%採用擬牛頓演算法訓練節點

net4=train(net4,u,t);%採用

levenberg-marquardt

法訓練節點

y2_1=sim(net1,u);

y2_2=sim(net2,u);

y2_3=sim(net3,u);

y2_4=sim(net4,u);

subplot(2,2,1)

plot(u,t,

'b--'

,u,y1,

'g:'

,u,y2_1,

'r-'

); title(

'1、採用梯度下降法的**結果圖

');xlabel(

'input_u'

);ylabel(

'output_y'

);legend(

'目標函式曲線',

'未經訓練

bp網路逼近曲線',

'訓練後的

bp網路逼近曲線');

subplot(2,2,2)

plot(u,t,

'b--'

,u,y1,

'g:'

,u,y2_2,

'r-'

) title(

'2、採用彈性梯度下降法的**結果圖

');xlabel(

'input_u'

);ylabel(

'output_y'

);legend(

'目標函式曲線',

'未經訓練

bp網路逼近曲線',

'訓練後的

bp網路逼近曲線');

subplot(2,2,3)

plot(u,t,

'b--'

,u,y1,

'g:'

,u,y2_3,

'r-'

) title(

'3、採用擬牛頓演算法的**結果圖

');xlabel(

'input_u'

);ylabel(

'output_y'

);legend(

'目標函式曲線',

'未經訓練

bp網路逼近曲線',

'訓練後的

bp網路逼近曲線');

subplot(2,2,4)

plot(u,t,

'b--'

,u,y1,

'g:'

,u,y2_4,

'r-'

) title(

'4、採用

levenberg-marquardt

法的**結果圖

');xlabel(

'input_u'

);ylabel(

'output_y'

);legend(

'目標函式曲線',

'未經訓練

bp網路逼近曲線',

'訓練後的

bp網路逼近曲線');

用matlabbp神經網路做多元線性迴歸,求問各引數的擬合值怎麼看? 10

7樓:

根據神經網路的結構,得到了w和b,將他們帶進去,通過一層層網路的計算,就得到引數。

這個沒法直接看,要算一下。

8樓:

這個要看你選擇的啟用函式,若是你的啟用函式為非線性函式,那就不可能得到各引數的擬合值。如果你所選用的啟用函式是線性函式,那麼就可以先把輸出的表示式寫出來,即權向量和輸入的矩陣乘積。得到表示式後就可以得到相應引數的擬合值了

9樓:竺枝

你的目的是?打算看什麼引數?是說訓練時候所選的網路引數?

神經網路經過訓練後如何檢視訓練出來的函式?matlab的

10樓:xxj傑

用net.iw函式輸出權值矩陣,按列求平均算出各個變數的權重。你去中國知網搜尋

bp神經網路高等學校標準學費,記得是有這麼的相關文獻的!

汽車耗油主要看哪些引數,怎樣看車的引數

與油耗相關的幾項關鍵技術包括以下內容 降低車輛自重量 車重與油耗的關係成正比,據說車重每下降10 油耗也會相應下降若干個百分點。改進汽車造型 車身風阻小的話,油耗會顯著下降。這兩者的關係也成正比。提高發動機的熱效率 目前,一般汽油發動機的熱效率 也就是燃油轉化成有用功的比例 達到30 多,而柴油機已...

神經內科常見病包括哪些,神經內科都看哪些病?

文庫精選 內容來自使用者 歐惠平 周圍神經病 常見 脊髓疾病腦血管疾病 常見 中樞神經系統感染性疾病 常見 中樞神經系統脫髓鞘疾病運動障礙疾病癲癇頭痛 常見 神經系統變性疾病神經系統遺傳性疾病神經肌肉接頭和肌肉疾病 自主神經疾病神經系統疾病伴發的精神障礙 常見 神經內科臨床常用藥物 降顱壓及脫水 利...

挑選平板電腦應該看哪些引數選什麼系統

對於一般的使用者來說都是隻看cpu,記憶體類的。但真正作為一個玩機高手會全方位,裡面每一個裝置都是有不少關係的。cpu 記憶體 螢幕解析度 作業系統,這些都要綜合考慮。和電腦一樣,主要是cpu 記憶體空間 儲存空間,現在的解析度基本都是一樣的,沒有什麼可比的。cpu控制運算速度,記憶體影響執行程式的...