2024年機器學(xué)習(xí)大作業(yè)_第1頁
2024年機器學(xué)習(xí)大作業(yè)_第2頁
2024年機器學(xué)習(xí)大作業(yè)_第3頁
2024年機器學(xué)習(xí)大作業(yè)_第4頁
2024年機器學(xué)習(xí)大作業(yè)_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

RevisedonNovember25,RevisedonNovember25,機器學(xué)習(xí)大作業(yè)題目:機器學(xué)習(xí)講課老師:韓紅基于BP神經(jīng)網(wǎng)絡(luò)的非線性函數(shù)擬合摘要:BP(BackPropagation)神經(jīng)網(wǎng)絡(luò)是1986年由Rumelhart和McCelland提出的,它是一種誤差按反向傳播的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP神經(jīng)網(wǎng)絡(luò)具有非常強的非線性映射能力,能以任意精度迫近任意持續(xù)函數(shù),因此在人工智能的許多領(lǐng)域都得到了廣泛的應(yīng)用。一般,BP算法是通過某些學(xué)習(xí)規(guī)則來調(diào)整神經(jīng)元之間的連接權(quán)值,在學(xué)習(xí)過程中,學(xué)習(xí)規(guī)則以及網(wǎng)絡(luò)的拓撲構(gòu)造不變。然而一種神經(jīng)網(wǎng)絡(luò)的信息處理功能不僅取決于神經(jīng)元之間的連接強度,并且與網(wǎng)絡(luò)的拓撲構(gòu)造(神經(jīng)元的連接方式)、神經(jīng)元的輸入輸出特性和神經(jīng)元的閾值有關(guān),因而神經(jīng)網(wǎng)絡(luò)模型要加強自身的適應(yīng)和學(xué)習(xí)能力,應(yīng)當(dāng)懂得怎樣合理地自組織網(wǎng)絡(luò)的拓撲構(gòu)造,懂得變化神經(jīng)元的激活特性以及在必要時調(diào)整網(wǎng)絡(luò)的學(xué)習(xí)參數(shù)等。1BP神經(jīng)網(wǎng)絡(luò)概述BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)的重要特點是信號前向傳遞,誤差反向傳播。在前向傳遞中,輸入信號從輸入層經(jīng)隱含層逐層處理,直至輸出層。每一層的神經(jīng)元狀態(tài)只影響下一層神經(jīng)元狀態(tài)。假如輸出層得不到期望輸出,則轉(zhuǎn)入反向傳播,根據(jù)預(yù)測誤差調(diào)整網(wǎng)絡(luò)權(quán)值和閾值,從而使BP神經(jīng)網(wǎng)絡(luò)預(yù)測輸出不停迫近期望輸出。BP神經(jīng)網(wǎng)絡(luò)的拓撲構(gòu)造如圖圖1中,X1,X2,…,Xn是BP神經(jīng)網(wǎng)絡(luò)的輸入值,Y1,Y2,…,Ym是BP神經(jīng)網(wǎng)絡(luò)的預(yù)測值,ωij和ωjk為BP神經(jīng)網(wǎng)絡(luò)權(quán)值。從圖2可以看出,BP神經(jīng)網(wǎng)絡(luò)可以當(dāng)作一種非線性函數(shù),網(wǎng)絡(luò)輸入值和預(yù)測值分別為該函數(shù)的自變量和因變量。當(dāng)輸入節(jié)點數(shù)為n,輸出節(jié)點數(shù)為m時,BP神經(jīng)網(wǎng)絡(luò)就體現(xiàn)了從n個自變量到m個因變量的函數(shù)映射關(guān)系。2重要用途BP網(wǎng)絡(luò)重要用于:(1)函數(shù)迫近:用輸入矢量和對應(yīng)的輸出矢量訓(xùn)練網(wǎng)絡(luò)迫近某個函數(shù);(2)模式識別:用一種特定的輸出矢量將它與輸入矢量聯(lián)絡(luò)起來;(3)分類:把輸入矢量以所定義的合適的措施進行分類;(4)數(shù)據(jù)壓縮:減少輸出矢量維數(shù)以便于傳播或存儲。在人工神經(jīng)網(wǎng)絡(luò)的實際工程應(yīng)用中,尤其在自動控制領(lǐng)域中,大多數(shù)神經(jīng)網(wǎng)絡(luò)模型是采用BP網(wǎng)絡(luò)或它的變化形式,它也是前向網(wǎng)絡(luò)的關(guān)鍵部分,體現(xiàn)了人工神經(jīng)網(wǎng)絡(luò)最精髓的部分。算法的數(shù)學(xué)描述:三層前饋網(wǎng)中,輸入向量為:;隱層輸入向量為:;輸出層輸出向量為:;期望輸出向量為:。輸入層到隱層之間的權(quán)值矩陣用V表達,,其中列向量為隱層第j個神經(jīng)元對應(yīng)的權(quán)向量;隱層到輸出層之間的權(quán)值矩陣用W表達,,其中列向量為輸出層第k個神經(jīng)元對應(yīng)的權(quán)向量。對于輸出層,有對于隱層,有f(x)具有持續(xù)、可導(dǎo)的特點,且有,以上共同構(gòu)成了三層前饋網(wǎng)了的數(shù)學(xué)模型。當(dāng)網(wǎng)絡(luò)輸出和期望輸出不相等時,存在輸出誤差E如下:將以上誤差定義式展開至隱層,有深入展開至輸入層,有由上式可以看出,網(wǎng)絡(luò)輸入誤差是兩層權(quán)值W和V的函數(shù),因此調(diào)整權(quán)值可以變化誤差E。顯然,調(diào)整權(quán)值的原則是使誤差不停的減小,因此應(yīng)使權(quán)值的調(diào)整量與誤差的負梯度成正比,即:式中負號表達梯度下降,常數(shù)表達比例系數(shù),在訓(xùn)練中反應(yīng)了學(xué)習(xí)速率。輕易看出,BP學(xué)習(xí)算法中,各層權(quán)值調(diào)整公式形式上都是同樣的,均有3個原因決定,即:學(xué)習(xí)速率、本層誤差信號和本層輸入信號X/Y。其中輸出層誤差信號同網(wǎng)絡(luò)的期望輸出與實際輸出之差有關(guān),直接反應(yīng)了輸出誤差,而各隱層的誤差信號與前面各層的誤差信號均有關(guān),是從輸出層開始逐層反傳過來的。在建立BP神經(jīng)網(wǎng)絡(luò)時,首先要根據(jù)應(yīng)用的問題確定網(wǎng)絡(luò)構(gòu)造,即選擇網(wǎng)絡(luò)的層數(shù)和隱層節(jié)點數(shù)。由于本例中試驗數(shù)據(jù)較少,采用最基本的兩層網(wǎng)絡(luò)就可以很好地迫近未知函數(shù)了。隱層節(jié)點數(shù)的選擇在神經(jīng)網(wǎng)絡(luò)的應(yīng)用中一直是一種復(fù)雜的問題:隱層節(jié)點數(shù)過多,將導(dǎo)致網(wǎng)絡(luò)的預(yù)測能力不夠,并輕易導(dǎo)致網(wǎng)絡(luò)陷入局部極小值難以跳出;隱層節(jié)點數(shù)過少,網(wǎng)絡(luò)訓(xùn)練不出來,或不能識別此前沒有的樣本,且容錯性差。在設(shè)計中,比較實際的做法是通過對不同神經(jīng)元數(shù)的網(wǎng)絡(luò)進行訓(xùn)練、對比,找出網(wǎng)絡(luò)效果最佳時的隱層節(jié)點數(shù)。在本例中,經(jīng)大量的訓(xùn)練、對比,最終取中間隱層節(jié)點數(shù)為10。在建立模型的過程中也發(fā)現(xiàn)了某些問題,重要有兩個方面:一是樣本數(shù)過少,很難精確反應(yīng)出待建模型的特性,并且輕易導(dǎo)致網(wǎng)絡(luò)在學(xué)習(xí)過程中難以退出局部極小值。處理的措施是在試驗部分增長試驗點以增長訓(xùn)練樣本數(shù)。二是BP網(wǎng)絡(luò)自身存在的某些問題,重要表目前收斂速度很慢,有時在局部極小值收斂,不能找到全局極小值。針對這樣的狀況,可以考慮采用其他算法如:模擬退火、遺傳算法等,以保證網(wǎng)絡(luò)能收斂到全局極小值。神經(jīng)網(wǎng)絡(luò)的構(gòu)造設(shè)計是一種非常重要但卻拾分復(fù)雜的問題。網(wǎng)絡(luò)的構(gòu)造設(shè)計重要指對于給定的任務(wù):①怎樣選擇網(wǎng)絡(luò)層數(shù)由于網(wǎng)絡(luò)的輸入和輸出層易于確定,因此這一問題實際上就是隱層應(yīng)當(dāng)為幾層;②每層應(yīng)選多少神經(jīng)元;③神經(jīng)元的傳遞函數(shù)應(yīng)怎樣選定。所有這些都是使用神經(jīng)網(wǎng)絡(luò)時必須加以處理的問題。但目前對此并沒有一種確切的答案,MATLAB下的神經(jīng)網(wǎng)絡(luò)工具箱也不例外。綜合以往的研究成果,可以得到BP網(wǎng)絡(luò)構(gòu)造的某些結(jié)論:①對于3層(1個輸入層、1個隱層和1個輸出層)的BP網(wǎng)絡(luò),只要其隱層的神經(jīng)元數(shù)可選,就可以任意精度迫近任何持續(xù)函數(shù)(Kolmogorov定理);②伴隨所迫近函數(shù)的波動性增長,隱層的神經(jīng)元數(shù)也應(yīng)合適增長;③伴隨學(xué)習(xí)樣本數(shù)的增長,隱層神經(jīng)元數(shù)也應(yīng)增長;④增長隱層數(shù)目可以減少各隱層的神經(jīng)元數(shù),減少陷入局部極小的機會;⑤伴隨網(wǎng)絡(luò)復(fù)雜程度和學(xué)習(xí)樣本數(shù)的增長,其收斂速度變慢,因此網(wǎng)絡(luò)的規(guī)模不應(yīng)隨意增大。四、BP網(wǎng)絡(luò)實現(xiàn)1.初始化初始化隱層的權(quán)值向量和隱層到輸出層的權(quán)值矩陣。確定每層的學(xué)習(xí)速率。設(shè)定最小誤差率以及網(wǎng)絡(luò)的最大迭代次數(shù)。生成sin(x)的訓(xùn)練樣本集。測試數(shù)據(jù):P2=*pi:*pi:2*pi;輸入數(shù)據(jù):P1=*pi:*pi:2*pi;2.生成并訓(xùn)練BP網(wǎng)絡(luò)產(chǎn)生訓(xùn)練樣本集。然後根據(jù)試驗原理初始化并計算隱層的權(quán)值向量,以及隱層到輸出層權(quán)值矩陣。根據(jù)計算出來的實際輸出和目的輸出做比較,得到誤差,從而計算出輸出層和隱層的權(quán)值變化,并反向調(diào)整輸出層和隱層的權(quán)值大小,直到滿足條件退出訓(xùn)練。將計算出的誤差率與初始化設(shè)定的最小誤差率進行比較,當(dāng)誤差率不不小于或者迭代次數(shù)到達1000次時,退出BP網(wǎng)絡(luò)。3.試驗成果:前兩張圖為最大訓(xùn)練次數(shù)為4000時得到的輸入輸出數(shù)據(jù)曲線和學(xué)習(xí)誤差曲線如下兩張圖像為最大訓(xùn)練次數(shù)為40000時得到的輸入輸出數(shù)據(jù)曲線和學(xué)習(xí)誤差曲線由以上圖像可知,(1)BP網(wǎng)絡(luò)迭代的前幾步,錯誤率下降的趨勢非常的強,當(dāng)錯誤率下降到一定期候,就幾乎不再變化,總體來說,到達了函數(shù)迫近的目的。(2)由以上通過變化最大訓(xùn)練次數(shù)的變化導(dǎo)致的圖像變化可知,訓(xùn)練次數(shù)從4000到40000時,函數(shù)迫近效果明顯變好,學(xué)習(xí)誤差明顯更快的減小。MATLAB的實現(xiàn)程序:打開commandSamNum=100;%訓(xùn)練樣本TestSamNum=100;%測試樣本數(shù)HiddenUnitNum=10;%隱節(jié)點數(shù)InDim=1;%樣本輸入維數(shù)OutDim=1;%樣本輸出維數(shù)%根據(jù)目的樣本獲得樣本輸入輸出SamIn=*pi:*pi:2*pi;SamOut=sin(SamIn);TestSamIn=*pi:*pi:2*pi;TestSamOut=sin(TestSamIn);figureholdongridplot(TestSamIn,TestSamOut,'k--')xlabel('Inputx');ylabel('Outputy');MaxEpochs=50000;%最大訓(xùn)練次數(shù)lr=;%前期學(xué)習(xí)率E0=1;%前期目的誤差W1=*rand(HiddenUnitNum,InDim);%輸入層到隱層的權(quán)值B1=*rand(HiddenUnitNum,1);%隱節(jié)點初始偏移W2=*rand(OutDim,HiddenUnitNum);%隱層到輸出層的初始權(quán)值B2=*rand(OutDim,1);%輸出層初始偏移W1Ex=[W1B1]W2Ex=[W2B2]SamInEx=[SamIn'ones(SamNum,1)]'ErrHistory=[];fori=1:MaxEpochs%正向傳播網(wǎng)絡(luò)輸出HiddenOut=logsig(W1Ex*SamInEx);HiddenOutEx=[HiddenOut'ones(SamNum,1)]';NetworkOut=W2Ex*HiddenOutEx;%停止學(xué)習(xí)判斷Error=SamOut-NetworkOut;SSE=sumsqr(Error)%記錄每次權(quán)值調(diào)整後的訓(xùn)練誤差ErrHistory=[ErrHistorySSE];switchround(SSE*10)case4lr=;case3lr=;case2lr=;case1lr=;case0break;otherwiselr=;end%計算方向傳播誤差Delta2=Error;Delta1=W2'*Delta2.*HiddenOut.*(1-HiddenOut);%計算權(quán)值調(diào)整量dW2Ex=Delta2*HiddenOutEx';dW1Ex=Delta1*SamInEx';%權(quán)值調(diào)整W1Ex=W1Ex+lr*dW1Ex;W2Ex=W2Ex+lr*dW2Ex;%分離隱層到輸出層的初始權(quán)值,以便背面使用W2=W2Ex(:,1:HiddenUnitNum);end%顯示計算成果iW1=W1Ex(:,1:InDim)B1=W1Ex(:,InDim+1)W2B2=W2Ex(:,1+HiddenUnitNum);%測試TestHiddenOut=logsig(W1*TestSamIn+repmat(B1,1,TestSamNum));TestNNOut=W2*TestHiddenOut+repmat(B2,1,TestSamNum);plot(TestSamIn,TestNNOut,'r*')%繪制學(xué)習(xí)誤差曲線figureholdongrid[xx,Num]=size(ErrHistory);plot(1:Num,ErrHistory,'k-');五、試驗結(jié)論通過編程實現(xiàn)使用BP網(wǎng)絡(luò)對函數(shù)進行迫近,對BP網(wǎng)絡(luò)的信號和誤差傳遞的原理以及隱層、輸出層權(quán)值調(diào)整的規(guī)則有了充足的理解和認識。BP網(wǎng)絡(luò)是一種強大的工具,它是應(yīng)用最為廣泛的網(wǎng)絡(luò)。用于文字識別、模

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論