資源描述:
《BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)函數(shù)逼近python實(shí)現(xiàn).doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、機(jī)器學(xué)習(xí)作業(yè)一BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)函數(shù)逼近一.算法描述BP(BackPropagation)神經(jīng)網(wǎng)絡(luò)是1986年由Rumelhart和McCelland為首的科學(xué)家小組提出,是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP網(wǎng)絡(luò)能學(xué)習(xí)和存貯大量的輸入-輸出模式映射關(guān)系,而無(wú)需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。它的學(xué)習(xí)規(guī)則是使用梯度下降法,通過(guò)反向傳播來(lái)不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層(input)、隱層(hiddenlayer)和輸出層(
2、outputlayer)。二.?dāng)?shù)據(jù)描述逼近函數(shù)y=sin(x)三.算法參數(shù)輸入學(xué)習(xí)率,迭代次數(shù),逼近函數(shù),神經(jīng)網(wǎng)絡(luò)規(guī)模輸出逼近的函數(shù)四.實(shí)驗(yàn)流程反向傳播算法(BackPropagation)分二步進(jìn)行,即正向傳播和反向傳播。這兩個(gè)過(guò)程簡(jiǎn)述如下:1.正向傳播輸入的樣本從輸入層經(jīng)過(guò)隱單元一層一層進(jìn)行處理,傳向輸出層;在逐層處理的過(guò)程中。在輸出層把當(dāng)前輸出和期望輸出進(jìn)行比較,如果現(xiàn)行輸出不等于期望輸出,則進(jìn)入反向傳播過(guò)程。2.反向傳播反向傳播時(shí),把誤差信號(hào)按原來(lái)正向傳播的通路反向傳回,逐層修改連接權(quán)值,以望代價(jià)函數(shù)趨向最小。
3、輸入層輸入向量(n維):X=(x1,x2,…,xi,…,xn)T隱層輸出向量(隱層有m個(gè)結(jié)點(diǎn)):Y=(y1,y2,…,yj,…,ym)T輸出層輸出向量(l維):O=(o1,o2,…,ok,…,ol)T期望輸出向量:d=(d1,d2,…,dk,…,dl)T輸入層到隱層之間的權(quán)值矩陣:V=(V1,V2,…,Vj,…,Vm)隱層到輸出層之間的權(quán)值矩陣用:W=(W1,W2,…,Wk,…,Wl)對(duì)輸出層第k個(gè)結(jié)點(diǎn)和隱含層的第j個(gè)結(jié)點(diǎn)有如下關(guān)系:5/5激活函數(shù)f(x)常用sigmoid函數(shù)(一個(gè)在生物學(xué)中常見(jiàn)的S型的函數(shù),也稱為S
4、形生長(zhǎng)曲線)或者tanh(雙曲正切)函數(shù)。各種S型曲線函數(shù)如下圖所示:下面以sigmoid函數(shù)進(jìn)行推導(dǎo)。sigmoid函數(shù)定義為:其導(dǎo)函數(shù)為:定義對(duì)單個(gè)樣本輸出層所有神經(jīng)元的誤差總能量總和為:將以上誤差定義式展開(kāi)至隱層:權(quán)值調(diào)整思路為:5/5上面式子中負(fù)號(hào)表示梯度下降,常數(shù)η∈(0,1)表示權(quán)值調(diào)整步長(zhǎng)(學(xué)習(xí)速度)。推導(dǎo)過(guò)程中,對(duì)輸出層有j=0,1,2,…,m;?k=1,2,…,l;對(duì)隱層有i=0,1,2,…,n;?j=1,2,…,m對(duì)輸出層和隱層,上面式子可寫為:對(duì)輸出層和隱層,定義δ:將以上結(jié)果代入δ的表達(dá)式,并根
5、據(jù)sigmoid函數(shù)與其導(dǎo)函數(shù)的關(guān)系:f'(x)=f(x)*[1-f(x)],可以計(jì)算出:5/5可以看出要計(jì)算隱層的δ,需要先從輸出層開(kāi)始計(jì)算,顯然它是反向遞推計(jì)算的公式。以此類推,對(duì)于多層神經(jīng)網(wǎng)絡(luò),要先計(jì)算出最后一層(輸出層)的δ,然后再遞推計(jì)算前一層,直到輸入層。根據(jù)上述結(jié)果,三層前饋網(wǎng)的BP學(xué)習(xí)算法權(quán)值調(diào)整計(jì)算公式為:對(duì)所有輸入樣本(P為訓(xùn)練樣本的個(gè)數(shù)),以總的平均誤差能量作為經(jīng)驗(yàn)損失函數(shù)(經(jīng)驗(yàn)風(fēng)險(xiǎn)函數(shù),代價(jià)函數(shù))為:一.實(shí)驗(yàn)結(jié)果5/5一.討論神經(jīng)網(wǎng)絡(luò)可以用作分類、聚類、預(yù)測(cè)等。神經(jīng)網(wǎng)絡(luò)需要有一定量的歷史數(shù)據(jù),通
6、過(guò)歷史數(shù)據(jù)的訓(xùn)練,網(wǎng)絡(luò)可以學(xué)習(xí)到數(shù)據(jù)中隱含的知識(shí)。在你的問(wèn)題中,首先要找到某些問(wèn)題的一些特征,以及對(duì)應(yīng)的評(píng)價(jià)數(shù)據(jù),用這些數(shù)據(jù)來(lái)訓(xùn)練神經(jīng)網(wǎng)絡(luò)。雖然BP網(wǎng)絡(luò)得到了廣泛的應(yīng)用,但自身也存在一些缺陷和不足,主要包括以下幾個(gè)方面的問(wèn)題。首先,由于學(xué)習(xí)速率是固定的,因此網(wǎng)絡(luò)的收斂速度慢,需要較長(zhǎng)的訓(xùn)練時(shí)間。對(duì)于一些復(fù)雜問(wèn)題,BP算法需要的訓(xùn)練時(shí)間可能非常長(zhǎng),這主要是由于學(xué)習(xí)速率太小造成的,可采用變化的學(xué)習(xí)速率或自適應(yīng)的學(xué)習(xí)速率加以改進(jìn)。其次,BP算法可以使權(quán)值收斂到某個(gè)值,但并不保證其為誤差平面的全局最小值,這是因?yàn)椴捎锰荻认陆捣?/p>
7、可能產(chǎn)生一個(gè)局部最小值。對(duì)于這個(gè)問(wèn)題,可以采用附加動(dòng)量法來(lái)解決。再次,網(wǎng)絡(luò)隱含層的層數(shù)和單元數(shù)的選擇尚無(wú)理論上的指導(dǎo),一般是根據(jù)經(jīng)驗(yàn)或者通過(guò)反復(fù)實(shí)驗(yàn)確定。因此,網(wǎng)絡(luò)往往存在很大的冗余性,在一定程度上也增加了網(wǎng)絡(luò)學(xué)習(xí)的負(fù)擔(dān)。最后,網(wǎng)絡(luò)的學(xué)習(xí)和記憶具有不穩(wěn)定性。也就是說(shuō),如果增加了學(xué)習(xí)樣本,訓(xùn)練好的網(wǎng)絡(luò)就需要從頭開(kāi)始訓(xùn)練,對(duì)于以前的權(quán)值和閾值是沒(méi)有記憶的。但是可以將預(yù)測(cè)、分類或聚類做的比較好的權(quán)值保存。5/5