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

時間 2021-09-01 20:15:56

1樓:匿名使用者

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

2樓:

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

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

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

3樓:添顏旅行

人工神經網路第一次作業

題目:使用函式

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網路逼近曲線');

matlab中建立bp神經網路的函式newff的引數的

1.newff雖然沒有規定輸入層神經元個數,那輸入層神經元個數是如何確定的?輸入層是根據你讀入資料的維度,自動生成的。2.我現在讀入了10張 把每張 歸一化成了50 20的,並轉換成1 1000的行向量,最後生成了10 1000的二維矩陣,然後,我再用eye 10,10 函式製造了一個單位矩陣,那麼...

BP人工神經網路的收斂是什麼,bp神經網路收斂問題

檀君博 收斂和迭代演算法有關。反向傳播演算法是定義乙個誤差er 往往是輸出結果與預想結果之間的某個範數 然後求出滿足誤差極小的權向量。如果把誤差看成乙個連續函式 泛函 的話,求對權向量各分量的偏導為0即可,但是實際上它是離散的,所以我們需要用迭代來求最小梯度。如果是新定義演算法的話理論上的收斂要證明...

求助,應用BP神經網路逼近非線性函式

文庫精選 內容來自使用者 金海望 bp神經網路逼近非線性函式 3 試用bp神經網路逼近非線性函式 f u sin 10u 其中,u 0.5,0.5 解題步驟 網路建立 使用 net newff minmax x 20,1 語句建立個前饋bp神經網路。該bp神經網路只含個隱含層,且神經元的個數為20。...