實驗六MATLAB神經網路工具箱

2023-02-06 02:24:03 字數 4694 閱讀 8930

一、實驗目的

1、掌握matlab對感知器網路的構建與訓練方法。

2、掌握matlab對線性神經網路的構建與訓練方法。

3、掌握matlab對bp神經網路的構建與訓練方法。

二、實驗原理

1、感知器的matlab**

感知器(pereceptron)是一種特殊的神經網路模型,是由美國心理學家於2023年提出的,一層為輸入層,另一層具有計算單元,感知器特別適合於簡單的模式分類問題,也可用於基於模式分類的學習控制和多模態控制中。

(一)感知器神經元模型

感知器神經元通過對權值的訓練,可以使感知器神經元的輸出能代表對輸入模式進行的分類,圖1.1為感知器神經元模型。

圖1.1 感知器神經元模型

感知器神經元的每乙個輸入都對應於乙個合適的權值,所有的輸入與其對應權值的加權和作為閥值函式的輸入。由於閥值函式的引入,從而使得感知器可以將輸入向量分為兩個區域,通常閥函式採用雙極階躍函式,如:

1.1)

而感知器神經元模型的實際輸出為

1.2)

其中b為閥值

(二)感知器的網路結構

圖1.2所描述的是乙個簡單的感知器網路結構,輸入層有r個輸入,q個輸出,通過權值wij與s個感知器神經元連線組成的感知器神經網路。

根據網路結構,可以寫出感知器處理單元對其輸入的加權和操作,即:

1.3)

而其輸出ai為

ai=f (ni+bi1.4)

由式2.1易知

1.5)

則當輸入ni+bi大於等於0,即有ni≥-bi時,感知器的輸出為1;否則輸出為0。

上面所述的單層感知器神經網路是不可能解決線性不可分的輸入向量分類問題,也不能推廣到一般的前向網路中去。為解決這一問題,我們可以設計多層感知器神經網路以實現任意形狀的劃分。

圖1.3描述了乙個雙層感知器神經網路。其工作方式與單層感知器網路一樣,只不過是增加了一層而已,具體的內容這裡不做討論。

(三)感知器神經網路的學習規則

感知器的學習規則主要是通過調整網路層的權值和閥值以便能夠地網路的輸入向量進行正確的分類。

如圖1.2所示的輸入向量p、輸出和量a和目標向量為t的感知器神經網路,感知器的學習規則是根據以下輸出向量a可能出現的幾種情況未進行參與調整的:

1)如果第i個神經元的輸出是正確的,即有ai=t1,則與第i個神經元聯接的權值和閥值保持不變。

2)如果第i個神經元的輸出是不正確,應該有兩種情況。

i)實際輸出為0,而理想輸出為1,即有ai=0,而ti=1,則所有的輸入j對權值和閥值進行調整,修正值δw1j=pj,δbj=1。

ii)實際輸出為1,而期望輸出為0,即有ai=1,而ti=0,則對所有的輸入j進行權值和閥值調整,δw1j=-pj,δbi=-1。

基於感知器誤差e=t-a,感知器學習規則可望寫為:

δw1j=ei·pj

可以證明當前輸入樣本來自線性可分的模式時,上述學習演算法在有限步同收斂,這時所得的權值能對所有樣本正確分類,這一結論被稱為感知器收斂定理。

(四)感知器神經網路的訓練

要使前向神經網路模型實現某種功能,必須對它進行訓練,讓它逐步學會要做的事情,並把所學到的知識記憶在網路的權值中。感知器神經網路的訓練是採用由一組樣本組成的集合來進行。在訓練期間,將這些樣本重複輸入,通過調整權值使感知器的輸出達到所要求的理想輸出。

感知器的訓練主要是反覆對感知器神經網路進行**和學習,最終得到最優的網路閥值和權值。

我們可以用以下方法訓練網路:

1) 確定我們所解決的問題的輸入向量p、目標向量t,並確定各向量的維數,以及網路結構大小、神經元數目。假定我們採用圖2.2的網路結構。

2)初始化:權值向量w和閥值向量b分別賦予[-1,+1]之間的隨機值,並且給出訓練的最大次數。

3)根據輸入向量p、最新權值向量w和閥值向量b,計算網路輸出向量a。

4)檢查感知器輸出向量與目標向量是否一致,或者是否達到了最大的訓練次數,如果是則結束訓練,否則轉入(5)。

5)根據感知器學習規則調查權向量,並返回3)。

(五)重要的感知器神經網路函式的使用方法

對於感知器的初始化、訓練、**,在matlabp神經網路工具箱中分別提供了init( ), trainp( )和sim( )函式。

1.初始化函式init( )

感知器初始化函式init( )可得到r個輸入,s個神經元數的感知器層的權值和閥值,其呼叫格式為:

[w,b]=init(r,s)

另外,也可以利用輸入向量p和目標向量t來初始化。

[w,b]=init(p,t)

在介紹trainp( )函式前,讓我們先介紹一下訓練的控制引數tp。

tp=[disp_freq max_epoch]

其中disp_freq指定兩次顯示間訓練次數,預設值為1;map_epoch指定訓練的最大次數,預設值為100。

2. 訓練函式trainp( )

呼叫訓練函式trainp( )函式後又得到新的權值矩陣,閥值向量以及誤差te。trainp( )函式所需要的輸入變數為:輸入向量p、目標向量t以及網路的初始權值和閥值,訓練的控制引數tp。

呼叫格式為:

[w,b,te]=trainp(w,b,p,t,tp)

由於函式trainp( )並不能保證感知器網路所得到的網路權值和閥值達到要求。因此,在訓練完後,要用下列驗證語句驗證一下。

a=sim(p, w, b);

if all(a= =t),disp( ′it works!′),end

假如網路不能成功執行,就可以繼續運用trainp( )函式對網路進行訓練。經足夠的訓練後,網路仍達不到要求,那麼就應當認真分析一下,感知器網路是否適合於這個問題。

3.**函式sim( )

sim( )函式主要用於計算網路輸出。它的呼叫比較簡單。

a=sim(p,w,b)

(六)感知器神經網路應用舉例

為了便於消化與理解感知器神經網路的四個問題,下面將給出乙個具體的問題進行分析,問題的描述如下:

兩種蠓蟲af和apf已由生物學家與w. w. wirth(1981)根據它們觸角長度和翼長中以區分。

見表1.1中9af蠓和6只apf蠓的資料。根據給出的觸角長度和翼長可識別出乙隻標本是af還是apf。

1.給定乙隻af或者apf族的蒙,你如何正確地區分它屬於哪一族?

2.將你的方法用於觸角長和翼中分別為(1.24,1.80)、(1.28,1.84)、(1.40,2.04)的三個標本

表1.1

輸入向量為:

p=[1.24 1.36 1.

38 1.378 1.38 1.

40 1.48 1.54 1.

56 1.14 1.18 1.

20 1.26 1.28 1.

30;1.72 1.74 1.

64 1.82 1.90 1.

70 1.70 1.82 2.

08 1.78 1.96 1.

86 2.00 2.00 1.

96 ]

目標向量為:

t=[1 1 1 1 1 1 1 1 1 0 0 0 0 0 0]

圖形顯示,目標值1對應的用「+」、目標值0對應的用「o」來表示:

plotpv(p,t)

為解決該問題,利用函式newp構造輸入量在[0,2.5]之間的感知器神經網路模型:

net=newp([0 2.5;0 2.5],1)

初始化網路:

net=init(net)

利用函式adapt調整網路的權值和閥值,直到誤差為0時訓練結束:

[net, y, e]=adapt(net, p, t)

訓練結束後可得如圖1.5的分類方式,可見感知器網路將樣本正確地分成兩類:

圖1.5 網路訓練結果

感知器網路訓練結束後,可以利用函式sim進行**,解決實際的分類問題:

p1=[1.24;1.80]

a1=sim(net,p1)

p2=[1.28;1.84]

a2=sim(net,p2)

p3=[1.40;2.04]

a3=sim(net,p3)

網路**結果為:

a1=0 a2=0 a3=0

2、線性神經網路的matlab實現

線性神經網路是最簡單的一種神經元網路,由乙個或多個線性神經元構成。2023年,美國工程師和提出自適應線性元件(adaptive linear element,簡稱adaline)是線性神經網路的最早典型代表。它是感知器的變化形式,尤其在修正權向量的方法上進行了改進,不僅提高了訓練收斂速度,而且提高了訓練精度。

線性神經網路與感知器神經網路的主要不同之處在於其每個神經元的傳遞函式為線性函式,它允許輸出任意值,而不是象感知器中只能輸出0或1。此外,線性神經網路一般採用widrow-hoff(簡稱w-h)學習規則或者最小場方差(least mean square,簡稱lms)規則來調整網路的權值和閥值。

線性神經網路的主要用途是線性逼近乙個函式表示式,具有聯想功能。另外,它還適用於訊號處理濾波、**、模式識別和控制等方面。

(一)線性神經元模型

線性神經元可以訓練學習乙個與之對應的輸入/輸出函式關係,或線性逼近任意乙個非線性函式,但它不能產生任何非線性的計算特性。

圖2.1描述了乙個具有r個輸入的由純線性函式組成的線性神經元。

圖2.1 線性神經元模型

由於線性神經網路中神經元的傳遞函式為線性函式,其輸入與輸出之間是簡單的比例關係:

a=g(w*p,b)

其中函式g(x)為線性函式。

(二)線性神經網路結構

如圖2.2描述了乙個由s個神經元相併聯形成一層網路,這種網路也稱為madaline網路。

神經網路工具箱

版本6.0.4 r2010a版本 25 jan 2010圖形使用者介面的功能。nctool 神經網路分類的工具。nftool 神經網路擬合工具。nprtool 神經網路模式識別工具。nntool 神經網路工具箱的圖形使用者介面。nntraintool 神經網路訓練工具。檢視 檢視乙個神經網路。分析功...

神經網路實驗報告

院系 電氣工程學院 班級 電氣工程dsfasd 姓名 dsfa 學號 dfad7 時間 2009 11 28 實驗二基於bp網路的多層感知器 一 實驗原理 bp的基本思想 訊號的正向傳播誤差的反向傳播 訊號的正向傳播 輸入樣本從輸入層傳入,經各隱層逐層處理後,傳向輸出層。誤差的反向傳播 將輸入誤差以...

BP神經網路實驗報告

一 實驗目的 1 熟悉matlab中神經網路工具箱的使用方法 2 通過在matlab下面程式設計實現bp網路逼近標準正弦函式,來加深對bp網路的了解和認識,理解訊號的正向傳播和誤差的反向傳遞過程。二 實驗原理 由於傳統的感知器和線性神經網路有自身無法克服的缺陷,它們都不能解決線性不可分問題,因此在實...