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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

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

22BP神經(jīng)網(wǎng)絡(luò)的改進(jìn)和MATLAB實(shí)現(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神經(jīng)網(wǎng)絡(luò)的改進(jìn)和MATLAB實(shí)現(xiàn)關(guān)于

f

(x):當(dāng)

x

=(x)

時,f

(x)

是一條曲線;當(dāng)

x

=(x1,x2)T

時,f

(x1,x2)

是一個曲面;當(dāng)

x

=(x1,x2,x3)T

時,f

(x1,x2,x3)

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

x

=(x1,x2,…,xn)T

時,f

(x1,x2,…,xn)

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

設(shè)函數(shù)

f

(x)=f

(x1,...,xn)

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

n

個一階偏導(dǎo)數(shù)構(gòu)成的

n

維列向量為

f.(x)

的梯度,記作

②稱滿足

f

(x0)

=

0

的點(diǎn)

x0為函數(shù)f

(x)

的駐點(diǎn)或臨界點(diǎn)。25BP神經(jīng)網(wǎng)絡(luò)的改進(jìn)和MATLAB實(shí)現(xiàn)

n2個二階偏導(dǎo)數(shù)構(gòu)成的

n

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

f

(x)

的海森(Hessian)矩陣,記為

H(x)或2f

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

f

(x)=f

(x1,x2,…,xn)

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

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

Hessian

矩陣

2f

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

定理

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

n

元函數(shù)

y

=

f

(x)

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

x0是

f

(x)

極小點(diǎn)的充分條件為

f

(x0)=0,2f

(x0)>0(正定)而

x0是f

(x)

極大點(diǎn)的充分條件為

f

(x0)=0,2f

(x0)<0(負(fù)定)

事實(shí)上,如果設(shè)

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

R

x

的高階無窮小,即

R=o||

x

||2。

于是,當(dāng)

x0為函數(shù)

f.(x)

的駐點(diǎn)時可以得到于是,當(dāng)

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

xT

2f

(x0)x

決定,從而完全由

Hessian

矩陣2f

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

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

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

Rn如果f

(x)

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

f

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

Hessian

矩陣

2f.(x)

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

f.(x)

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

f

(x)

=

0

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

f

(x)

=

0,由于它是一個

n

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

f

(x)

=

0

的解

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

x*

是否為(1)的解。31BP神經(jīng)網(wǎng)絡(luò)的改進(jìn)和MATLAB實(shí)現(xiàn)

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

迭代算法的基本思想是:從一個選定的初始點(diǎn)

x0

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

{xk},使得當(dāng)

{xk}

是有窮點(diǎn)列時,其最后一個點(diǎn)是(1)的最優(yōu)解;當(dāng)

{xk}

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

設(shè)

xk

Rn是某迭代算法的第

k

輪迭代點(diǎn),而xk+1

Rn是第

k+1

輪迭代點(diǎn),記xk+1=xk

+

kpk這里

k

R稱為步長,pk

Rn稱為搜索方向。在

k和

pk確定之后,由

xk

Rn就可以確定

xk+1

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

k

pk(特別是

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

f

(xk+1)

<f

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

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

k

R:36BP神經(jīng)網(wǎng)絡(luò)的改進(jìn)和MATLAB實(shí)現(xiàn)

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

1847

年,法國數(shù)學(xué)家

Cauchy

就曾提出這樣的問題:從任一給定點(diǎn)

x0

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

f

(x)

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

(x)

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

梯度下降法的迭代步驟1

給定初始點(diǎn)

x0

Rn,允許誤差

>

0,并令k:=0;2計(jì)算pk

=f(xk);

3檢驗(yàn)是否滿足收斂性判別準(zhǔn)則:||

pk||

若滿足判別準(zhǔn)則,則停止迭代,得到點(diǎn)

x*

xk,否則進(jìn)行

4;38BP神經(jīng)網(wǎng)絡(luò)的改進(jìn)和MATLAB實(shí)現(xiàn)4

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

k

R:5令xk+1=xk

+

kpk;k:=k+1返回

2。39BP神經(jīng)網(wǎng)絡(luò)的改進(jìn)和MATLAB實(shí)現(xiàn)

用梯度下降法求解minf

(x)=2x12+

x22。

解(1)取初始點(diǎn)

x0

=

(1,

1)T,計(jì)算得

p0=

f

(x0)=(4x01,

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

=

(4,2)T由于所以f

(x0+

p0)=2(1

4

)2+(1

2

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

0

=

5/18,于是x1=

x0+

0

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

f(x1)=(4x11

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

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

1

=5/12,于是x2=

x1+

1

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

p2=

f

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

f.(x)

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

x

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

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

1x

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

溫馨提示

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

評論

0/150

提交評論