神經網路實驗指導書2019版

2021-03-04 09:54:05 字數 4772 閱讀 5789

北京資訊科技大學自編實驗講義

神經網路實驗指導書

許曉飛陳雯柏編著

自動化學院

智慧型科學與技術系

2023年1月

<實驗指導

實驗目的:(1)熟悉matlab/simulink的使用.

2)掌握bp神經網路的基本原理和基本的設計步驟.

3)了解bp神經網路在實際中的應用.

4)針對簡單的實際系統, 能夠建立bp神經網路控制模型.

實驗原理:

1.前饋型人工神經網路

前饋型人工神經網路是整個神經網路體系中最常見的一種,其結構模型如圖2所示。網路結構包含輸入層、隱層(可能是多層)和輸出層,它的連線方式是同層之間不相連線,相鄰層之間單元為全連線型。這種網路沒有反饋存在,實際執行是單向的,學習方式是一種監督式學習。

前饋型神經網路具有很強的非線性對映能力,尋找其對映是靠學習實踐的,只要學習資料足夠完備,就能夠描述任意未知的複雜系統。因此前饋神經網路為非線性系統的建模和控制提供了有力的工具。

圖1 前饋型神經網路結構

2.bp演算法原理

bp(back propagation)神經網路是一種利用誤差反向傳播訓練演算法的前饋型網路,bp學習演算法實質是求取網路總誤差函式的最小值問題[2]。這種演算法採用非線性規劃中的最速下降方法,按誤差函式的負梯度方向修改權係數,它是梯度下降法在多層前饋網路中的應用。具體學習演算法包括兩大過程,其一是輸入訊號的正向傳播過程,其二是輸出誤差訊號的反向傳播過程。

1.正向傳播

輸入的樣本從輸入層經過隱層單元一層一層進行處理,通過所有的隱層之後,則傳向輸出層;在逐層處理的過程中,每一層神經元的狀態只對下一層神經元的狀態產生影響。在輸出層把現行輸出和期望輸出進行比較,如果現行輸出不等於期望輸出,則進入反向傳播過程。

2.反向傳播

反向傳播時,把誤差訊號按原來正向傳播的通路反向傳回,並對每個隱層的各個神經元的權係數進行修改,以望誤差訊號趨向最小。網路各層的權值改變量,則由傳播到該層的誤差大小來決定。

3.bp演算法的特點

bp神經網路具有以下三方面的主要優點[3]:第一,只要有足夠多的隱含層和隱層節點,bp神經網路可逼近任意的非線性對映關係;第二,bp學習演算法是一種全域性逼近方法,因而它具有較好的泛化能力。第三,bp神經網路具有一定的容錯能力。

因為bp神經網路輸入輸出間的關聯資訊分布儲存於連線權中,由於連線權的個數總多,個別神經元的損壞對輸入輸出關係只有較小影響。

但在實際應用中也存在一些問題,如:收斂速度慢,極有可能陷入最優陷阱(區域性極值),而且典型的bp網路是乙個冗餘結構,它的結構及隱節點數的確定往往有人為的主觀性,而且一旦人工決定之後,不能在學習過程中自主變更。其結果是隱節點數少了,學習過程不收斂;隱節點數多了,則網路的學習及推理的效率較差。

實驗步驟:

(1)建立控制模型

神經網路訓練資料**於matlab6.5自帶的一階t-s型模糊控制slcp.mdl。如圖2所示。

圖2 一級倒立擺的模糊控制**

在上面的控制系統中提取擺角、角速度、位移、速度初始條件為分別為0. 5rad,1rad/s, 0和0,在此條件下響應的輸入輸出對,

(2) 提取訓練資料

如圖3所示,利用【signal to workspace】模組獲取一階t-s型模糊控制**過程的控制器輸入輸出資料對,並儲存到工作區中,可以直接用到神經網路的訓練中。

圖3 資料提取

(3) bp神經網路控制器的訓練

首先將提取出的訓練資料變為標準的訓練資料形式,標準的訓練資料分為輸入和目標輸出兩部分。輸入部分是乙個形式為輸入個數訓練資料個數的矩陣,這裡輸入個數為4。目標輸出為乙個輸出個數訓練資料個數的矩陣,這裡輸出個數為1。

而經signal to workspace模組提取出的資料為乙個訓練資料個數輸入(或輸出)個數的矩陣,因此分別將p、t轉置後就得到標準訓練資料p』,t』。

接著選擇要訓練的步數,訓練步數的選擇可由下面語句定義:

***.trainparam.epochs=250

這一語句定義了乙個500步的訓練步數。

做完上面的工作後就可以對網路進行訓練了,按照上一節中的選擇和定義初始化網路後,在沒有輸入延遲和輸出延遲的條件下,並設訓練後的網路還為***,便可用下面語句對網路訓練:

[***,tr]=train(***,p,t,[ ],[ ])

使用下面語句初始化bp神經網路控制器並進行訓練:

p=p';

t=t';

***=newff([-0.35 0.35;-1 1;-3 3;-3 3],[12 1],,'trainlm','learngdm');

***.trainparam.show=25;

***.trainparam.epochs=250;

[***,tr]=train(***,p,t

系統提示如下:

trainlm, epoch 0/250, mse 10.1011/0, gradient 2554.35/1e-010

trainlm, epoch 50/250, mse 4.78751e-008/0, gradient 0.00983832/1e-010

trainlm, epoch 75/250, mse 4.1262e-008/0, gradient 0.00475103/1e-010

trainlm, epoch 100/250, mse 3.76953e-008/0, gradient 0.00278629/1e-010

trainlm, epoch 125/250, mse 3.52016e-008/0, gradient 0.00194476/1e-010

trainlm, epoch 150/250, mse 3.32444e-008/0, gradient 0.00150103/1e-010

trainlm, epoch 175/250, mse 3.16423e-008/0, gradient 0.00121143/1e-010

trainlm, epoch 200/250, mse 3.02987e-008/0, gradient 0.000996205/1e-010

trainlm, epoch 225/250, mse 2.91493e-008/0, gradient 0.000826085/1e-010

trainlm, epoch 250/250, mse 2.81489e-008/0, gradient 0.000687935/1e-010

trainlm, maximum epoch reached, performance goal was not met.

圖4 訓練誤差曲線

可以看出,經過250步訓練控制器輸出與期望輸出間的誤差已經很小了。

提示:如訓練程式有錯,請在help文件搜尋bp神經網路函式newff,檢視語法呼叫;

p=p';

t=t';

***=newff([0.35 0.35;-1 1;-3 3;-3 3],[12,1],);

***.trainparam.show=25;

***.trainparam.epochs=300;

[***,tr]=train(***,p,t);

神經網路的結構

用語句gensim(***,-1)可以在simulink裡生成控制器並使用其進行控制,其中-1的意思是系統是實時的,生成的神經網路控制器結構如圖5所示。

(a) 神經網路控制器外部結構

(b) 內部結構

(c)隱層結構

(d)輸出層結構

圖5 bp神經網路結構

(4) 神經網路控制的實現

使用訓練後的bp神經網路控制器代替原模糊控制器控制器便可進行**試驗。控制結構如圖6所示。

圖6 直線一級倒立擺神經網路控制**

單擊模型視窗上的』run』,執行以上的**實驗,可以看出訓練後的bp神經網路能成功的實現倒立擺的控制.

<實驗指導

實驗目的:(1)熟悉matlab/simulink的使用.

2)掌握som神經網路的基本原理和基本的設計步驟.

3) 熟悉som神經網路在實際中的應用.

實驗原理:

通過自動尋找樣本中的內在規律和本質屬性,自組織、自適應地改變網路引數與結構。 自組織網路的自組織功能是通過競爭學習(***petitive learning)實現的。

2023年芬蘭helsink大學的t.kohonen教授提出一種自組織特徵對映網,簡稱som網,又稱kohonen網。kohonen認為:

乙個神經網路接受外界輸入模式時,將會分為不同的對應區域,各區域對輸入模式具有不同的響應特徵,而且這個過程是自動完成的。自組織特徵對映正是根據這一看法提出來的,其特點與人腦的自組織特性相類似。som網共有兩層,輸入層模擬感知外界輸入資訊的視網膜,輸出層模擬做出響應的大腦皮層。

kohonen學習演算法程式流程:

示例:產生100個(0,0.5pi)之間的角度,用其sin和cos值作為輸入向量,利用輸出為二維平面陣的som網路對其進行聚類。

參考程式如下:

angles = 0:0.5*pi/99:0.5*pi;

p = [sin(angles); cos(angles)];

plot(p(1,:),p(2,:),'+r')

*** = newsom([0 1;0 1],[10]);

***.trainparam.epochs = 10;

*** = train(***,p);

plotsom(***.iw,***.layers.distances)

p = [1;0];

a = sim(***,p)

實驗內容:

人口分類是人口統計中的乙個重要指標,現有1999共10個地區的人口出生比例情況如下表所示,建立乙個自組織神經網路對上述資料分類,給定某個地區的男、女出生比例分別為0.5,0.5,測試訓練後的自組織神經網路的效能,判斷其屬於哪個類別。

神經網路實驗報告

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

BP神經網路實驗報告

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

實驗六MATLAB神經網路工具箱

一 實驗目的 1 掌握matlab對感知器網路的構建與訓練方法。2 掌握matlab對線性神經網路的構建與訓練方法。3 掌握matlab對bp神經網路的構建與訓練方法。二 實驗原理 1 感知器的matlab 感知器 pereceptron 是一種特殊的神經網路模型,是由美國心理學家於1958年提出的...