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

時間 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神經網路高等學校標準學費,記得是有這麼的相關文獻的!

數碼相機引數怎麼看,買相機主要看哪些引數?

一般是看ccd跟光圈和鏡頭,相數一般1000w足夠了 畫素影響相片大小的清晰度 感光度光圈 快門速度 光線越差 速度要越慢 還有個很關鍵的 注意不要抖 韓燎笪山 主要引數有 ccd大小 光圈 焦距 光變倍數 畫素。一般家用攝影主要使用卡片機,卡片機的便攜性也是最好的。稍微專業點的可以使用長焦機,單反...

神經內科都看哪些病,神經內科是看什麼病的?

一零啞劇 神經系統分中樞神經系統和周圍神經系統,中樞神經系統包括腦和脊髓,周圍神經系統分佈於身體各個部位,和全身各個臟器有著密切的關係。因此神經內科的所診治的疾病比較廣泛,而且有一些屬於疑難雜症。最常見的是腦血管病,比如癲癇 頭疼 偏頭疼,還有頭暈 眩暈綜合徵。常見的顱內感染,比如腦炎 腦膜炎,多因...

主機板好壞主要看哪些引數,看電腦配置的好壞 主要看哪幾個方面?

niter的主機板前面的字母.如 g代表是整合的板子.帶有顯示卡晶片.p x不帶集顯.等級 效能上x好於p好於g.字尾數字越大.等級越高.amd的板子數字型號在前.也是數字越大.等級越高.字尾字母.g也是整合的.沒有g字樣的是不帶集顯的.區分主機板的好壞.主要先看品牌度.一線的華碩 技嘉 微星等.二...