BP神經網路實驗報告

2021-03-04 09:38:42 字數 2271 閱讀 5835

一、實驗目的

1、 熟悉matlab中神經網路工具箱的使用方法;

2、 通過在matlab下面程式設計實現bp網路逼近標準正弦函式,來加深對bp網路的了解和認識,理解訊號的正向傳播和誤差的反向傳遞過程。

二、實驗原理

由於傳統的感知器和線性神經網路有自身無法克服的缺陷,它們都不能解決線性不可分問題,因此在實際應用過程中受到了限制。而bp網路卻擁有良好的繁泛化能力、容錯能力以及非線性對映能力。因此成為應用最為廣泛的一種神經網路。

bp演算法的基本思想是把學習過程分為兩個階段:第一階段是訊號的正向傳播過程;輸入資訊通過輸入層、隱層逐層處理並計算每個單元的實際輸出值;第二階段是誤差的反向傳遞過程;若在輸入層未能得到期望的輸出值,則逐層遞迴的計算實際輸出和期望輸出的差值(即誤差),以便根據此差值調節權值。這種過程不斷迭代,最後使得訊號誤差達到允許或規定的範圍之內。

基於bp演算法的多層前饋型網路模型的拓撲結構如上圖所示。

bp演算法的數學描述:三層bp前饋網路的數學模型如上圖所示。三層前饋網中,輸入向量為:

;隱層輸入向量為:;輸出層輸出向量為:;期望輸出向量為:。

輸入層到隱層之間的權值矩陣用v表示,,其中列向量為隱層第j個神經元對應的權向量;隱層到輸出層之間的權值矩陣用w表示,,其中列向量為輸出層第k個神經元對應的權向量。

下面分析各層訊號之間的數學關係。

對於輸出層,有

對於隱層,有

以上兩式中,轉移函式f(x)均為單極性sigmoid函式:

f(x)具有連續、可導的特點,且有

以上共同構成了三層前饋網了的數學模型。

當網路輸出和期望輸出不相等時,存在輸出誤差e如下:

將以上誤差定義式展開至隱層,有

進一步展開至輸入層,有

由上式可以看出,網路輸入誤差是兩層權值w和v的函式,因此調整權值可以改變誤差e。

顯然,調整權值的原則是使誤差不斷的減小,因此應使權值的調整量與誤差的負梯度成正比,即:

式中負號表示梯度下降,常數表示比例係數,在訓練中反映了學習速率。

容易看出,bp學習演算法中,各層權值調整公式形式上都是一樣的,均有3個因素決定,即:學習速率、本層誤差訊號和本層輸入訊號x/y。其中輸出層誤差訊號同網路的期望輸出與實際輸出之差有關,直接反映了輸出誤差,而各隱層的誤差訊號與前面各層的誤差訊號都有關,是從輸出層開始逐層反傳過來的。

三、程式

clcclear all

k=1;

n=10;

p=[-1:0.05:1];

t=sin(k*pi*p);

plot(p,t,'-');

title('要逼近的非線性函式');

xlabel('輸入向量');

ylabel('非線性函式目標輸出向量');

***=newff(minmax(p),[n,1],,'trainlm');

y1=sim(***,p);

***.trainparam.epochs=50;

***.trainparam.goal=0.01;

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

y2=sim(***,p);

figure;

plot(p,t,'-',p,y1,'--',p,y2,'*');

title('訓練前後的網路**結果對比');

xlabel('輸入向量');

ylabel('輸出向量');

legend('目標函式輸出向量','未訓練bp網路輸出','已訓練bp網路輸出');

**結果如下圖:

由**結果圖可以看出,未經訓練的bp網路輸出與目標函式差距很大,逼近效果不理想,而對bp網路訓練之後的輸出可以較精確的逼近目標函式,並且bp網路的訓練迭代次數僅約1.2次,網路的輸出目標誤差就達到了精度要求,收斂速度很快。函式逼近效果、網路訓練的收斂速度與原始非線性函式的頻率、bp網路隱含層單元神經元的數目以及bp網路訓練函式有關。

四、實驗結論

通過程式設計實現使用bp網路對函式進行逼近,對bp網路的訊號和誤差傳遞的原理以及隱層、輸出層權值調整的規則有了充分的理解和認識。

bp網路是乙個強大的工具,它是應用最為廣泛的網路。用於文字識別、模式分類、文字到聲音的轉換、影象壓縮、決策支援等。

但是,通過實驗看出,它還是存在一定的不足。由於本實驗中採用的學習率是固定不變的,從而使得在函式逼近的時候在有些地方出現了偏離,如果能自適應的調整學習率,使網路在學習初期具有較大的學習率,以快速逼近函式,當已經逼近理想輸出時再使用較小的學習率,來更加精準的去逼近函式,這樣會得到更好的逼近效果和更小的錯誤率。

另外,bp網路還具有收斂速度慢、容易陷入區域性極小值的問題。這些問題通過對標準bp演算法的改進能得到一定程度的解決。

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 ...

神經網路實驗報告

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