神經網路基礎知識

2021-05-26 02:59:11 字數 4351 閱讀 4264

一、實驗目的

1、了解神經網路的基本知識。

2、學會用matlab神經網路工具箱進行資料擬合。

3、通過例項學習matlab神經網路工具箱的應用。

二、實驗原理

人工神經網路是在對複雜的生物神經網路研究和理解的基礎上發展起來的。我們知道,人腦是由大約個高度互連的單元構成,這些單元稱為神經元,每個神經元約有個連線。仿照生物的神經元,可以用數學方式表示神經元,引入人工神經元的概念,並由神經元的互連可以定義出不同種類的神經網路。

1、神經網路的概念及結構

單個人工神經元的數學表示形式如圖1所示。其中,為一組輸入訊號,它們經過權值加權後求和,再加上閾值,則得出的值。可以認為該值為輸入訊號與閾值所構成的廣義輸入訊號的線性組合。

該訊號經過傳輸函式可以得出神經元的輸出訊號。

圖1由若干個神經元相互連線,則可以構成一種網路,稱為神經網路。由於連線方式的不同,神經網路的型別也不同。這裡僅介紹前饋神經網路,因為其權值訓練中採用誤差逆向傳播的方式,所以這類神經網路更多地稱為反向傳播(back propagation)神經網路,簡稱bp神經網路。

bp網的基本結構如下圖所示:

matlab的神經網路工具箱提供了現成的函式和神經網路類,可以使用newff()函式來建立乙個前饋的bp神經網路模型。newff()的具體呼叫格式如下:

***=newff(x,y,[h1,h2,…,hk],)

其中,x為輸入向量,y為輸出(目標)向量。[h1,h2,…,hk]是乙個行向量,用以儲存神經網路各層的節點數,該向量的大小等於神經網路隱層的層數。為乙個元胞陣列,由若干個字串構成,每個字串對應於該層的傳輸函式型別。

當這些引數設定好後,就建立了乙個神經網路資料物件***,它的一些重要屬性在下表給出。

2、神經網路的訓練和泛化

若建立了神經網路模型***,則可以呼叫train()函式對神經網路引數進行訓練。該函式的呼叫格式為:

[***,tr,y1,e]=train(***,x,y)

其中,變數x為的矩陣,為輸入變數的維數,為樣本的組數,y為的矩陣,為輸出變數的維數,x,y分別儲存樣本點的輸入和輸出資料。由樣本點資料進行訓練,則可以得出訓練後的神經網路物件***,且可以返回其它相關的內容,tr為結構體資料,返回訓練的相關跟蹤資訊,tr.epochs為訓練步數,tr.

perf為各步目標函式的值。y1和e矩陣分別返回由神經網路計算出的輸出和誤差矩陣。在訓練過程中將每隔25步自動顯示一次訓練指標。

訓練結束後還可以用下面的語句繪製出目標值曲線:

plotperf(tr)

如果在給出的最大訓練步數下無法得出滿足要求的網路,則將給出錯誤的資訊提示。使用者可以再呼叫該函式一次,這時將以上次的訓練結果加權矩陣為初值繼續訓練,使用者可以迴圈呼叫該語句。如果誤差在幾次迴圈呼叫後仍無顯著改善,則說明網路結構有問題,應該修改網路結構。

神經網路訓練完成後,可以利用該網路對樣本區域內的其他輸入量求解其輸出值,這種求值的方法稱為神經網路的**或泛化(generalization),可以理解為利用神經網路進行資料擬合,對新的輸入點資料x1呼叫sim()函式進行泛化,得出這些輸入點處的輸出矩陣y1,且

y1=sim(***,x1)

神經網路是否成功不在於對樣本點本身擬合誤差的大小,而關鍵在於其泛化效果。如果對樣本點以外的其他輸入點均有較好的擬合效果,則說明該神經網路結構合理。否則,訓練出來的神經網路沒有應用價值。

例:產生一組資料:

x=-1:0.2:1;y=1./(1+25*x.^2);

x0=-1:0.1:1;y0=1./(1+25*x0.^2);

其中,x, y為訓練資料,x1, y1為測試資料。由資料可知,輸入變數x為一維資料,取值範圍分別為[-1,1]。利用newff()函式建立bp神經網路。

設定其有2個隱層,第1隱層有5個節點,該層神經元採用tansig傳輸函式,第2隱層含1個節點,傳輸函式為tansig()函式,建立神經網路模型:

***=newff(x,y,5,);

***=train(***,x,y用x,y訓練網路

y1=sim(***,x0呼叫sim()函式進行泛化

figure,plot(x,y,'o',x0,y0,x0,y1從圖形上看神經網路的泛化能力c

用神經網路對二元函式進行曲面擬合。

例:[x,y]=meshgrid(-3:.6:3, -2:.4:2); x=x(:)'; y=y生成訓練樣本資料

z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y注意x,y,z均應為行向量

***=newff([x;y],z); %二維輸入,3個隱層

***.trainparam.epochs=1000; ***.trainf**='trainlm'; %設定最大訓練步數和訓練演算法

[***,b]=train(***,[x; y],z訓練神經網路

[x2,y2]=meshgrid(-3:.1:3, -2:.1:2); x1=x2(:)'; y1=y2(:)'; %生成測試樣本資料

figure; z1=sim(***,[x1; y1求出測試樣本資料的擬合輸出值

z2=reshape(z1,size(x2)); surf(x2,y2,z2畫出擬合曲面

[x,y]=meshgrid(-3:.6:3, -2:.4:2); x=x(:)';

y=y(:)';

z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);

z=z(:)';

***=newff([-3 3;-2 2],[10,10,1],);

***.trainparam.epochs=1000; ***.trainf**='trainlm';

***=train(***,[x;y],z

[x2,y2]=meshgrid(-3:.1:3, -2:.1:2); x1=x2(:)'; y1=y2(:)';

figure; z1=sim(***,[x1; y1

z2=reshape(z1,size(x2)); surf(x2,y2,z2)

三、實驗內容

1、神經網路對一元函式進行曲線擬合。

2、神經網路對二元函式進行曲面擬合。

3、神經網路在資料擬合具體例項上的應用。

四、實驗報告

實驗名稱實驗日期: 年月日

姓名班級學號

成績一、實驗目的

1、了解神經網路的基本知識。

2、學會用matlab神經網路工具箱進行資料擬合。

3、通過例項學習matlab神經網路工具箱的應用。

二、實驗內容及步驟

1、已知資料:

利用神經網路在[0.1]區間上繪製出樣本對應的函式曲線。嘗試不同的神經網路結構和訓練演算法,將神經網路的曲線擬合結果和實驗十一的三次多項式擬合結果進行比較。

(1) 利用神經網路演算法擬合曲線。

程式:x=0:0.1:1;

y=[0.3 0.5 1 1.4 1.6 1.9 0.6 0.4 0.8 1.5 2];

x0=0:0.01:1;

***=newff([0,1],[20,1],);

***.trainparam.epochs=1000;

***=train(***,x,y);

figure;

y0=sim(***,x0);

plot(x,y,'+',x0,y0,'o')

legend('原始資料','擬合資料')

執行結果:

(2)不同神經網路結構和訓練演算法的比較。

程式:x=0:0.1:1;

y=[0.3 0.5 1 1.4 1.6 1.9 0.6 0.4 0.8 1.5 2];

x0=0:0.01:1;

***=newff([0,1],[30,1],);

***.trainparam.epochs=1500;

***.trainf**='trainlm';

***=train(***,x,y);

figure;

y0=sim(***,x0);

plot(x,y,'+',x0,y0,'o')

legend('原始資料','擬合資料')

執行結果:

(3)與三次多項式擬合進行比較。

神經網路的曲線擬合結果遠遠不如實驗十一的三次多項式擬合結果,因為資料個數本身就很有限,所以神經網路的擬合效果不好。

2、「人口問題」是我國最大社會問題之一,估計人口數量和發展趨勢是我們制定一系列相關政策的基礎。有人口統計年鑑,可查的我國從2023年至2023年人口資料智料如下:

分析:(1)在直角座標系上作出人口數的圖象。

(2)用神經網路方法擬合資料,並算出2023年人口數。

(1)程式:

x=1949:5:1994;

y=[541.67 602.66 672.

09 704.99 806.71 908.

59 975.42 1034.75 1106.

76 1176.74];

神經網路基本知識

2 深度網路最主要的優勢在於,它能以更加緊湊簡潔的方式來表達比淺層網路大得多的函式集合。即可以找到一些函式,這些函式可以用層網路簡潔地表達出來 這裡的簡潔是指隱層單元的數目只需與輸入單元數目呈多項式關係 但是對於乙個只有層的網路而言,除非它使用與輸入單元數目呈指數關係的隱層單元數目,否則不能簡潔表達...

bp神經網路

實驗四計算智慧型 1 1 實驗目的 理解反向傳播網路的結構和原理,掌握反向傳播演算法對神經元的訓練過程,了解反向傳播公式。通過構建bp網路例項,熟悉前饋網路的原理及結構。2 實驗內容 編寫乙個bp神經網路程式,實現簡單的分類。3 實驗報告要求 1 簡述實驗原理及方法,並請給出程式設計流程圖。bp演算...

BP神經網路

目標函式 y sin 2x sin x x 5,5 其影象為 程式 clc clear all x 5 0.01 5 y sin pi x sin 2 x net newff minmax x 10,1 traingd net train net,x,y y1 sim net,x plot x,y ...