一、實驗目的
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的基本思想 訊號的正向傳播誤差的反向傳播 訊號的正向傳播 輸入樣本從輸入層傳入,經各隱層逐層處理後,傳向輸出層。誤差的反向傳播 將輸入誤差以...