基于BP神經(jīng)網(wǎng)絡(luò)的信用評級模型_第1頁
基于BP神經(jīng)網(wǎng)絡(luò)的信用評級模型_第2頁
基于BP神經(jīng)網(wǎng)絡(luò)的信用評級模型_第3頁
基于BP神經(jīng)網(wǎng)絡(luò)的信用評級模型_第4頁
基于BP神經(jīng)網(wǎng)絡(luò)的信用評級模型_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、BP神經(jīng)網(wǎng)絡(luò)模型概要說明BP(Back Propagation)網(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)系,而無需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。它的學(xué)習(xí)規(guī)則是使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層(input)、隱層(hide layer)和輸出層(output layer)(如圖5.2所示)。2.相關(guān)理論BP算法由數(shù)據(jù)流的前向計(jì)算(正向傳播)和誤差信號

2、的反向傳播兩個過程構(gòu)成。正向傳播時,傳播方向?yàn)檩斎雽与[層輸出層,每層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元。若在輸出層得不到期望的輸出,則轉(zhuǎn)向誤差信號的反向傳播流程。通過這兩個過程的交替進(jìn)行,在權(quán)向量空間執(zhí)行誤差函數(shù)梯度下降策略,動態(tài)迭代搜索一組權(quán)向量,使網(wǎng)絡(luò)誤差函數(shù)達(dá)到最小值,從而完成信息提取和記憶過程。1989年Robert HechtNielon證明了對于任何在閉區(qū)間的一個連續(xù)函數(shù)都可以用一個隱層的BP網(wǎng)絡(luò)來逼近,因而一個3層的BP網(wǎng)絡(luò)可以完成任意的N維到M 維的映射, 因此在BP網(wǎng)絡(luò)中多采用單隱層網(wǎng)絡(luò)。下面我們以三層神經(jīng)網(wǎng)絡(luò)為例來說明BP網(wǎng)絡(luò)的標(biāo)準(zhǔn)學(xué)習(xí)算法。BP算法信號的正向傳播設(shè)定BP網(wǎng)絡(luò)的

3、輸入層有n個神經(jīng)元,隱含層有p個神經(jīng)元,輸出層有q個神經(jīng)元,輸入層與隱層之間的權(quán)值為 ,隱層與輸出層之間的權(quán)值為 。隱層的傳遞函數(shù)為f1(),輸出層的傳遞函數(shù)為f2(),則隱層節(jié)點(diǎn)的輸出為 輸出層節(jié)點(diǎn)的輸出為: 至此BP網(wǎng)絡(luò)就完成了n維空間向量對m維空間的近似映射。誤差的反向傳播) 定義誤差函數(shù)輸入個學(xué)習(xí)樣本,用 來表示。第個樣本輸入到網(wǎng)絡(luò)后得到輸出 (j=1,2,m)。采用平方型誤差函數(shù),于是得到第p個樣本的誤差Ep:式中: 為期望輸出。對于個樣本,全局誤差為:)輸出層權(quán)值和隱含層權(quán)值的變化求出誤差關(guān)于各個權(quán)重的偏導(dǎo)數(shù),根據(jù)最速下降法得到誤差的變化率:其中 為學(xué)習(xí)率,以此公式不斷修正權(quán)重和閾

4、值,以使誤差函數(shù)E達(dá)到最小精度,當(dāng)誤差達(dá)到預(yù)設(shè)精度或?qū)W習(xí)次數(shù)大于設(shè)定的最大次數(shù),則結(jié)束算法,否則,選取下一個學(xué)習(xí)樣本及對應(yīng)的期望輸出,繼續(xù)前面的步驟進(jìn)行。BP算法的改進(jìn)BP算法理論具有依據(jù)可靠、推導(dǎo)過程嚴(yán)謹(jǐn)、精度較高、通用性較好等優(yōu)點(diǎn),但標(biāo)準(zhǔn)BP算法存在以下缺點(diǎn):收斂速度緩慢;容易陷入局部極小值;難以確定隱層數(shù)和隱層節(jié)點(diǎn)個數(shù)。在實(shí)際應(yīng)用中,BP算法很難勝任,因此出現(xiàn)了很多改進(jìn)算法,例如利用動量法改進(jìn)BP算法,自適應(yīng)調(diào)整學(xué)習(xí)速率,動量-自適應(yīng)學(xué)習(xí)速率調(diào)整算法,L-M學(xué)習(xí)規(guī)則等,這些改進(jìn)算法在matlab中對應(yīng)不同的訓(xùn)練函數(shù)。注意事項(xiàng)神經(jīng)元節(jié)點(diǎn)數(shù)的選擇網(wǎng)絡(luò)的輸入與輸出結(jié)點(diǎn)數(shù)是由實(shí)際問題的本質(zhì)決定的

5、,與網(wǎng)絡(luò)性能無關(guān)網(wǎng)絡(luò)訓(xùn)練前的一個關(guān)鍵步驟是確定隱層結(jié)點(diǎn)數(shù)L,網(wǎng)絡(luò)的隱節(jié)點(diǎn)數(shù)決定了網(wǎng)絡(luò)的規(guī)模,而網(wǎng)絡(luò)的規(guī)模與其性能密切相關(guān)。神經(jīng)網(wǎng)絡(luò)的規(guī)模越大,網(wǎng)絡(luò)中的自由參數(shù)就越多;反之,網(wǎng)絡(luò)中的自由參數(shù)就越少。當(dāng)網(wǎng)絡(luò)規(guī)模過小,容易導(dǎo)致欠擬合;網(wǎng)絡(luò)規(guī)模過大,則容易導(dǎo)致過擬合。隱層結(jié)點(diǎn)數(shù)的選擇與其說具有科學(xué)性,不如說更具有技巧性,往往與輸入數(shù)據(jù)中隱含的特征因素有關(guān)。L的選擇可以通過一些經(jīng)驗(yàn)公式,比如 其中m、幾分別為輸入結(jié)點(diǎn)數(shù)目與輸出結(jié)點(diǎn)數(shù)。實(shí)際中,可以先通過經(jīng)驗(yàn)公式確定隱層節(jié)點(diǎn)數(shù)的一個大體范圍,然后變化隱含層節(jié)點(diǎn)數(shù),每次增加一個節(jié)點(diǎn)并考察誤差值,當(dāng)誤差值顯著增大時停止增加隱含層節(jié)點(diǎn),此時的節(jié)點(diǎn)數(shù)就是最優(yōu)的節(jié)點(diǎn)

6、數(shù)。傳遞函數(shù)的選擇工具箱提供了三種傳遞函數(shù):Logsigmoid、tansigmoid和線性函數(shù)purelin前兩種為非線性函數(shù),分別將x(-,+)的輸入壓縮為y0,1和y-1,+1的輸出因此,對非線性問題,輸入層和隱層多采用非線性傳遞函數(shù),輸出層采用線性函數(shù),以保持輸出的范圍,就非線性傳遞函數(shù)而言,若樣本輸出均大于零時,多采用 Log-sigmoid函數(shù),否則,采用Tansigmoid函數(shù)對線性系統(tǒng)而言,各層多采用線性函數(shù)。數(shù)據(jù)預(yù)處理和后期處理如果對神經(jīng)網(wǎng)絡(luò)的輸入和輸出數(shù)據(jù)進(jìn)行一定的預(yù)處理,可以加快網(wǎng)絡(luò)的訓(xùn)練速度,一般均采用歸一化處理:將每組數(shù)據(jù)都變?yōu)?1至1之間數(shù),matlab中使用的函數(shù)

7、是mapminmax。 BP網(wǎng)絡(luò)模型的算法框圖4.Matlab程序BP神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)的一般過程數(shù)據(jù)預(yù)處理為了提高神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效率, 在某些情況下需要對“輸入- 目標(biāo)” 樣本集數(shù)據(jù)作必要的預(yù)處理,利用mapminmax函數(shù)可以對輸入輸出數(shù)據(jù)歸一化處理,使其落入-1,1之間。方法如下:%input_train, output_train分別是訓(xùn)練輸入輸出數(shù)據(jù)inputn,inputps=mapminmax(input_train);outputn,outputps=mapminmax(output_train);inputn, outputn,是歸一化后的數(shù)據(jù),inputps,outputps為數(shù)

8、據(jù)歸一化后得到的結(jié)構(gòu)體,里面包含了數(shù)據(jù)最大值、最小值和平均值的信息,可用于測試數(shù)據(jù)的歸一化。測試數(shù)據(jù)歸一化和反歸一化程序如下。 inputn_test=mapminmax(apply,input_test,inputps);%測試數(shù)據(jù)歸一化BPoutput=mapminmax(reverse,an,outputps);%網(wǎng)絡(luò)預(yù)測數(shù)據(jù)反歸一化input_test是預(yù)測輸入數(shù)據(jù),inputn_test是歸一化后的預(yù)測數(shù)據(jù),apply表示根據(jù)inputps的值對input_test進(jìn)行歸一化。An是網(wǎng)絡(luò)預(yù)測結(jié)果,outputps是訓(xùn)練輸出數(shù)據(jù)歸一化得到的結(jié)構(gòu)體,BPoutput是反歸一化之后的網(wǎng)絡(luò)預(yù)

9、測輸出,reverse表示對數(shù)據(jù)進(jìn)行反歸一化。生成BP神經(jīng)網(wǎng)絡(luò)采用newff函數(shù)可以用來創(chuàng)建一前饋BP網(wǎng)絡(luò)。newff函數(shù)的常用格式為net = newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)P:輸入數(shù)據(jù)矩陣T:輸出數(shù)據(jù)矩陣S:隱含層節(jié)點(diǎn)數(shù)TF:節(jié)點(diǎn)傳遞函數(shù),包括線性傳遞函數(shù)purelin,正切S型傳遞函數(shù)tansig,對數(shù)S型傳遞函數(shù)logsig。BTF:訓(xùn)練函數(shù),包括梯度下降BP算法訓(xùn)練函數(shù)traingd,動量反轉(zhuǎn)的梯度下降BP算法訓(xùn)練函數(shù)traingdm等。BLF:網(wǎng)絡(luò)學(xué)習(xí)函數(shù),包括BP學(xué)習(xí)規(guī)則learngd,帶動量項(xiàng)的BP學(xué)習(xí)規(guī)則learngdm。PF:性

10、能分析函數(shù),默認(rèn)為均方誤差函數(shù)mse。IPF:輸入處理函數(shù);OPF:輸出處理函數(shù);DDF:驗(yàn)證數(shù)據(jù)劃分函數(shù),后四個參數(shù)一般都采用默認(rèn)值。注:以上是newff在matlab中現(xiàn)在的用法,一下介紹newff以前的一些用法,只是格式稍有差別,不影響結(jié)果。格式如下:net = newff( PR, S1 S2 SN , TF1TF2TFN , BTF)其中PR為R 2維矩陣,表示輸入矢量中每維輸入的最小值與最大值的范圍; 若神經(jīng)網(wǎng)絡(luò)有N 層, 則S1 S2SN 中各元素分別表示各層神經(jīng)元的數(shù)目; TF1 TF2TFN 中各元素分別表示各層神經(jīng)元采用的傳遞函數(shù); BTF表示神經(jīng)網(wǎng)絡(luò)訓(xùn)練時所使用的訓(xùn)練函數(shù)

11、。網(wǎng)絡(luò)訓(xùn)練參數(shù)的設(shè)定在對網(wǎng)絡(luò)進(jìn)行訓(xùn)練之前,要對訓(xùn)練參數(shù)進(jìn)行一些設(shè)定。一下是一些主要的訓(xùn)練參數(shù)及含義訓(xùn)練參數(shù) 參數(shù)含義 默認(rèn)值net. trainparam.epoch 訓(xùn)練步驟 100net.trainparam.show 顯示訓(xùn)練結(jié)果的間隔步驟 25net.trainparam.goal 訓(xùn)練目標(biāo)誤差 0net.trainparam.time 訓(xùn)練允許時間 Inf net.trainparam.min_grad 訓(xùn)練中最小允許梯度值 1e-6 網(wǎng)絡(luò)初始化在訓(xùn)練之前,要給權(quán)重和閾值賦初值,可以通過rands()函數(shù)或者matlab內(nèi)置函數(shù)init()達(dá)到。網(wǎng)絡(luò)訓(xùn)練通過train()函數(shù)來實(shí)現(xiàn),

12、格式為:net,tr=train(NET,X,T,Pi,Ai)NET:待訓(xùn)練網(wǎng)絡(luò);X:輸入數(shù)據(jù)矩陣;T:輸出數(shù)據(jù)矩陣;Pi:初始化輸入層條件;Ai:初始化輸出層條件;net:訓(xùn)練好的網(wǎng)絡(luò);tr:訓(xùn)練過程記錄,后兩個參數(shù)一般使用默認(rèn)值。當(dāng)訓(xùn)練步驟大于net.train.Pa ram.epoch、訓(xùn)練誤差小于net.train. Param.goal、訓(xùn)練時間超過net.train.Param.time,或誤差梯度值小于net.train.Param.mingrad 時,訓(xùn)練都將被自動終止,并返回訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)對象。網(wǎng)絡(luò)仿真通過sim()函數(shù)來實(shí)現(xiàn),即通過訓(xùn)練好的網(wǎng)絡(luò)預(yù)測函數(shù)輸出,格式為:y=sim(net,x)net:訓(xùn)練好的網(wǎng)絡(luò);x:輸入數(shù)據(jù);y:網(wǎng)絡(luò)預(yù)測數(shù)據(jù)。數(shù)據(jù)反歸一化使用的函數(shù)是mapminmax,格式見。根據(jù)輸出結(jié)果設(shè)定一個規(guī)則判別結(jié)果為好客戶還是壞客戶。5.模型應(yīng)用驗(yàn)證本部分利用已經(jīng)清洗好的數(shù)據(jù)進(jìn)行建模檢測,其中有201個好客戶,67個壞客戶,130個指標(biāo)。按照好壞客戶1:1的比例組成訓(xùn)練樣本,各隨機(jī)選取40個樣本進(jìn)行建模,剩下的進(jìn)行檢測,分兩部分,一部分是使用所有的指標(biāo)建模檢測,另一部分是隨機(jī)選取40個指標(biāo)建模檢測。I 使用全部指標(biāo)隨機(jī)選取

溫馨提示

  • 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

提交評論