BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)培訓課件_第1頁
BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)培訓課件_第2頁
BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)培訓課件_第3頁
BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)培訓課件_第4頁
BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)培訓課件_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)1:BP神經網(wǎng)絡的概述2:BP神經網(wǎng)絡的標準訓練學習3:在MATLAB軟件上運行幾個程序4:基于Levenberg-Marquardt算法的學習優(yōu) 化(阻尼最小二乘法)5:基于蟻群算法的初始權值優(yōu)化6:經過4和5優(yōu)化后的仿真試驗(發(fā)動機 性能趨勢分析和故障診斷中的應用)7:總結2BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)多元函數(shù)圖示一元函數(shù)X.R二元函數(shù)xyoR.fD.f.三元函數(shù)xyzo.R.fXXI矩形的面積S=x×y長方體體積V=x×y×z3BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)多元函數(shù)圖示xR..4BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)多元函數(shù)及其圖形多元函數(shù)及其圖形5BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)6BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)BP神經網(wǎng)絡模型激活函數(shù)必須處處可導一般都使用S型函數(shù)使用S型激活函數(shù)時BP網(wǎng)絡輸入與輸出關系輸入輸出7BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)BP神經網(wǎng)絡模型輸出的導數(shù)根據(jù)S型激活函數(shù)的圖形可知,對神經網(wǎng)絡進行訓練,應該將net的值盡量控制在收斂比較快的范圍內

8BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)9BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)網(wǎng)絡結構輸入層有n個神經元,隱含層有p個神經元,輸出層有q個神經元變量定義輸入向量;隱含層輸入向量;隱含層輸出向量;輸出層輸入向量;輸出層輸出向量;期望輸出向量;10BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)輸入層與中間層的連接權值:隱含層與輸出層的連接權值:隱含層各神經元的閾值:輸出層各神經元的閾值:樣本數(shù)據(jù)個數(shù):激活函數(shù):誤差函數(shù):11BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)第一步,網(wǎng)絡初始化給各連接權值分別賦一個區(qū)間(-1,1)內的隨機數(shù),設定誤差函數(shù)e,給定計算精度值和最大學習次數(shù)M。第二步,隨機選取第個輸入樣本及對應期望輸出12BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)第三步,計算隱含層各神經元的輸入和輸出13BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)第四步,利用網(wǎng)絡期望輸出和實際輸出,計算誤差函數(shù)對輸出層的各神經元的偏導數(shù) 。14BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)第五步,利用隱含層到輸出層的連接權值、輸出層的 和隱含層的輸出計算誤差函數(shù)對隱含層各神經元的偏導數(shù) 15BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)16BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)第六步,利用輸出層各神經元的 和隱含層各神經元的輸出來修正連接權值17BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)第七步,利用隱含層各神經元的和輸入層各神經元的輸入修正連接權。18BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)第八步,計算全局誤差第九步,判斷網(wǎng)絡誤差是否滿足要求。當誤差達到預設精度或學習次數(shù)大于設定的最大次數(shù),則結束算法。否則,選取下一個學習樣本及對應的期望輸出,返回到第三步,進入下一輪學習。19BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)BP算法直觀解釋情況1的直觀表達當誤差對權值的偏導數(shù)大于零時,權值調整量為負,實際輸出大于期望輸出,權值向減少方向調整,使得實際輸出與期望輸出的差減少。whoe>0,此時Δwho<020BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)BP算法直解釋情況2的直觀表達當誤差對權值的偏導數(shù)小于零時,權值調整量為正,實際輸出少于期望輸出,權值向增大方向調整,使得實際輸出與期望輸出的差減少。e<0,此時Δwho>0who21BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)梯度下降法

22BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)一、無約束優(yōu)化的古典分析法無約束優(yōu)化問題可表示為minf

(x1,x2,…,xn)

xi

R,i=1,2,…,n如果令

x=(x1,x2,…,xn)T,則無約束優(yōu)化問題為minf

(x)

x

Rn23BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)關于

f

(x):當

x

=(x)

時,f

(x)

是一條曲線;當

x

=(x1,x2)T

時,f

(x1,x2)

是一個曲面;當

x

=(x1,x2,x3)T

時,f

(x1,x2,x3)

是一個體密度(或類位勢函數(shù));當

x

=(x1,x2,…,xn)T

時,f

(x1,x2,…,xn)

是一個超曲面。24BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)

設函數(shù)

f

(x)=f

(x1,...,xn)

對所有變元都有一階與二階連續(xù)偏導數(shù),則

n

個一階偏導數(shù)構成的

n

維列向量為

f.(x)

的梯度,記作

②稱滿足

f

(x0)

=

0

的點

x0為函數(shù)f

(x)

的駐點或臨界點。25BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)

n2個二階偏導數(shù)構成的

n

階對稱矩陣為函數(shù)

f

(x)

的海森(Hessian)矩陣,記為

H(x)或2f

(x):26BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)綜上所述,多元函數(shù)

f

(x)=f

(x1,x2,…,xn)

的一階導數(shù)是它的梯度

f.(x),二階導數(shù)是它的

Hessian

矩陣

2f

(x)。在最優(yōu)化方法的討論中這是兩個常用的概念。27BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)

定理

(最優(yōu)性條件)設

n

元函數(shù)

y

=

f

(x)

對所有變元具有一階及二階連續(xù)偏導數(shù),則

x0是

f

(x)

極小點的充分條件為

f

(x0)=0,2f

(x0)>0(正定)而

x0是f

(x)

極大點的充分條件為

f

(x0)=0,2f

(x0)<0(負定)

事實上,如果設

x=(x1,…,xn)T,則利用多元函數(shù)的泰勒展開式,我們有28BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)其中

R

x

的高階無窮小,即

R=o||

x

||2。

于是,當

x0為函數(shù)

f.(x)

的駐點時可以得到于是,當

xi(i=1,…,n)足夠小時,上式右端的正負號完全由二次型

xT

2f

(x0)x

決定,從而完全由

Hessian

矩陣2f

(x)的正(負)定性決定。

注記:微積分中求一元函數(shù)和二元函數(shù)極值的方法,是這個定理的特例。29BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)二、無約束優(yōu)化的梯度下降法對于無約束優(yōu)化問題minf(x)(1)

x=(x1,x2,…,xn)T

Rn如果f

(x)

可微,根據(jù)古典分析的方法,可利用

f

(x)=0(2)求駐點,然后再利用

Hessian

矩陣

2f.(x)

來判定這些駐點是否極小值點,從而求出無約束優(yōu)化問題(1)的最優(yōu)解。30BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)但是,用古典分析的方法求解無約束優(yōu)化問題(1)實際上是行不通的,這是由于:(1)實際應用中相當數(shù)量的函數(shù)

f.(x)

不具有解析性,故非線性方程組

f

(x)

=

0

無法形成;(2)即使形成了方程組

f

(x)

=

0,由于它是一個

n

元非線性方程組,因而求它的解與解決原問題一樣地困難;(3)即使求得了

f

(x)

=

0

的解

x*,但由于最優(yōu)性條件不被滿足或者難于驗證,因此仍無法確定

x*

是否為(1)的解。31BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)

例如,有些曲面有許多甚至無窮多極大值和極小值,則無法驗證最優(yōu)性條件。32BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)鑒于上述種種原因,對于(1)的求解,通常采用一些比較切合實際、行之有效的數(shù)值算法。最常用的是迭代算法(搜索算法)。

迭代算法的基本思想是:從一個選定的初始點

x0

Rn出發(fā),按照某一特定的迭代規(guī)則產生一個點列

{xk},使得當

{xk}

是有窮點列時,其最后一個點是(1)的最優(yōu)解;當

{xk}

是無窮點列時,它有極限點,并且其極限點是(1)的最優(yōu)解。33BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)

xk

Rn是某迭代算法的第

k

輪迭代點,而xk+1

Rn是第

k+1

輪迭代點,記xk+1=xk

+

kpk這里

k

R稱為步長,pk

Rn稱為搜索方向。在

k和

pk確定之后,由

xk

Rn就可以確定

xk+1

Rn。各種不同迭代算法的差別,在于選擇

k

pk(特別是

pk)的方法不同。34BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)使用最廣泛的一類是下降算法,它每迭代一次都是目標函數(shù)值有所下降,即

f

(xk+1)

<f

(xk)。在下降算法中(1)搜索方向

pk有多種選擇方式,不同的選擇形成不同的下降算法,如梯度下降法(也叫最速下降法),共軛梯度法,牛頓法,阻尼牛頓法,擬牛頓法等。但無論哪種下降法,pk的選擇都有一個一般的原則:既要使它盡可能地指向極小值點,又不至于花費太大的使計算代價。35BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)(2)步長的選擇也有多種不同方式,最常用的方式是尋找最優(yōu)步長,即求單變量極值問題的最優(yōu)解

k

R:36BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)

梯度下降法(最速下降法)早在

1847

年,法國數(shù)學家

Cauchy

就曾提出這樣的問題:從任一給定點

x0

Rn出發(fā),沿著哪個方向

f

(x)

的函數(shù)值下降最快?這個問題從理論上已經得到解決,就是沿著在該點的負梯度方向,f

(x)

的函數(shù)值下降最快。這就是梯度下降法的理論依據(jù)。37BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)

梯度下降法的迭代步驟1

給定初始點

x0

Rn,允許誤差

>

0,并令k:=0;2計算pk

=f(xk);

3檢驗是否滿足收斂性判別準則:||

pk||

若滿足判別準則,則停止迭代,得到點

x*

xk,否則進行

4;38BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)4

單變量極值問題的最優(yōu)解

k

R:5令xk+1=xk

+

kpk;k:=k+1返回

2。39BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)

用梯度下降法求解minf

(x)=2x12+

x22。

解(1)取初始點

x0

=

(1,

1)T,計算得

p0=

f

(x0)=(4x01,

2x02)T|x1=1,x2=1

=

(4,2)T由于所以f

(x0+

p0)=2(1

4

)2+(1

2

)2。再求解單變量極值問題:40BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)得

0

=

5/18,于是x1=

x0+

0

p0=(1/9,4/9)T(2)計算得p1=

f(x1)=(4x11

2x12)|x11=1/9,x12=4/9

=(4/9,8/9)T所以41BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)故再求解單變量極值問題:得

1

=5/12,于是x2=

x1+

1

p1=(2/27,2/27)T(3)計算得

p2=

f

(x2)=(8/27,4/27),......如此繼續(xù)下去,直到滿足收斂準則為止。42BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)梯度下降法是求解無約束優(yōu)化問題的最基本的算法,它在最優(yōu)化方法中占有重要地位。梯度下降法的優(yōu)點是計算量小,存儲變量少,對初始點要求不高。缺點是:

f.(x)

僅僅反映了函數(shù)在點

x

處的局部性質,對局部來說是最速的下降方向,但對整體求解過程并不一定使函數(shù)值下降的最快;另外,梯度下降法收斂速度慢,特別是在極小值點附近。梯度下降法適用于尋優(yōu)過程的前期迭代或作為間插步驟,當接近極值點時宜選用其它收斂快的算法。44BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)在MATLAB上實現(xiàn)的幾個例子45BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)屬于解析型的算法有:①梯度法:又稱最速下降法。這是早期的解析法,收斂速度較慢。②牛頓法:收斂速度快,但不穩(wěn)定,計算也較困難。③共軛梯度法:收斂較快,效果較好。④變尺度法:這是一類效率較高的方法。等等46BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)BP網(wǎng)絡的訓練函數(shù)訓練方法訓練函數(shù)梯度下降法traingd有動量的梯度下降法traingdm自適應lr梯度下降法traingda自適應lr動量梯度下降法traingdx彈性梯度下降法trainrpFletcher-Reeves共軛梯度法traincgfPloak-Ribiere共軛梯度法traincgpPowell-Beale共軛梯度法traincgb量化共軛梯度法trainscg擬牛頓算法trainbfg一步正割算法trainossLevenberg-Marquardttrainlm47BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)例一:利用三層BP神經網(wǎng)絡來完成非線性函數(shù)的逼近任務,其中隱層神經元個數(shù)為五個。樣本數(shù)據(jù):輸入X輸出D輸入X輸出D輸入X輸出D-1.0000-0.9602-0.30000.13360.40000.3072-0.9000-0.5770-0.2000-0.20130.50000.3960-0.8000-0.0729-0.1000-0.43440.60000.3449-0.70000.37710-0.50000.70000.1816-0.60000.64050.1000-0.39300.8000-0.3120-0.50000.66000.2000-0.16470.9000-0.2189-0.40000.46090.3000-0.09881.0000-0.320148BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)例二利用三層BP神經網(wǎng)絡來完成非線性函數(shù)的逼近任務,其中隱層神經元個數(shù)為五個。樣本數(shù)據(jù):輸入X輸出D輸入X輸出D輸入X輸出D0044821153932262104337149BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)些論文對BP神經網(wǎng)絡的訓練學習過程進行改進用LM(Levenberg-Marquardt)算法對BP神經網(wǎng)絡的訓練學習進行改進。它是使用最廣泛的非線性最小二乘算法,它是利用梯度求最小(大)值的算法,形象的說,屬于“爬山”法的一種。它同時具有梯度法和牛頓法的優(yōu)點。當λ很小時,步長等于牛頓法步長,當λ很大時,步長約等于梯度下降法的步長。

這個λ的變動有時候像阻尼運動一樣,所以LM算法又叫阻尼最小二乘法50BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)牛頓法的幾何意義xyx*x0x

1x

2牛頓法也稱為切線法51BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)基本思想:在極小點附近用二階Taylor多項式近似目標函數(shù),進而求出極小點的估計值。52BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)53BP神經網(wǎng)絡的改進和MATLAB實現(xiàn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論