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

下載本文檔

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

文檔簡(jiǎn)介

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論