bp神经网络预测模型优点,bp神经网络优化算法
matlab的遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡
對y=x1^2+x2^2非線性系統(tǒng)進行建模,用1500組數(shù)據(jù)對網(wǎng)絡進行構(gòu)建網(wǎng)絡,500組數(shù)據(jù)測試網(wǎng)絡。由于BP神經(jīng)網(wǎng)絡初始神經(jīng)元之間的權(quán)值和閾值一般隨機選擇,因此容易陷入局部最小值。
本方法使用遺傳算法優(yōu)化初始神經(jīng)元之間的權(quán)值和閾值,并對比使用遺傳算法前后的效果。
步驟:未經(jīng)遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡建模1、隨機生成2000組兩維隨機數(shù)(x1,x2),并計算對應的輸出y=x1^2+x2^2,前1500組數(shù)據(jù)作為訓練數(shù)據(jù)input_train,后500組數(shù)據(jù)作為測試數(shù)據(jù)input_test。
并將數(shù)據(jù)存儲在data中待遺傳算法中使用相同的數(shù)據(jù)。2、數(shù)據(jù)預處理:歸一化處理。3、構(gòu)建BP神經(jīng)網(wǎng)絡的隱層數(shù),次數(shù),步長,目標。
4、使用訓練數(shù)據(jù)input_train訓練BP神經(jīng)網(wǎng)絡net。
BP神經(jīng)網(wǎng)絡方法
AI愛發(fā)貓 www.aifamao.com。
人工神經(jīng)網(wǎng)絡是近幾年來發(fā)展起來的新興學科,它是一種大規(guī)模并行分布處理的非線性系統(tǒng),適用解決難以用數(shù)學模型描述的系統(tǒng),逼近任何非線性的特性,具有很強的自適應、自學習、聯(lián)想記憶、高度容錯和并行處理能力,使得神經(jīng)網(wǎng)絡理論的應用已經(jīng)滲透到了各個領域。
近年來,人工神經(jīng)網(wǎng)絡在水質(zhì)分析和評價中的應用越來越廣泛,并取得良好效果。在這些應用中,縱觀應用于模式識別的神經(jīng)網(wǎng)絡,BP網(wǎng)絡是最有效、最活躍的方法之一。
BP網(wǎng)絡是多層前向網(wǎng)絡的權(quán)值學習采用誤差逆?zhèn)鞑W習的一種算法(ErrorBackPropagation,簡稱BP)。在具體應用該網(wǎng)絡時分為網(wǎng)絡訓練及網(wǎng)絡工作兩個階段。
在網(wǎng)絡訓練階段,根據(jù)給定的訓練模式,按照“模式的順傳播”→“誤差逆?zhèn)鞑ァ薄坝洃浻柧殹薄皩W習收斂”4個過程進行網(wǎng)絡權(quán)值的訓練。
在網(wǎng)絡的工作階段,根據(jù)訓練好的網(wǎng)絡權(quán)值及給定的輸入向量,按照“模式順傳播”方式求得與輸入向量相對應的輸出向量的解答(閻平凡,2000)。
BP算法是一種比較成熟的有指導的訓練方法,是一個單向傳播的多層前饋網(wǎng)絡。它包含輸入層、隱含層、輸出層,如圖4-4所示。
圖4-4地下水質(zhì)量評價的BP神經(jīng)網(wǎng)絡模型圖4-4給出了4層地下水水質(zhì)評價的BP神經(jīng)網(wǎng)絡模型。同層節(jié)點之間不連接。
輸入信號從輸入層節(jié)點,依次傳過各隱含層節(jié)點,然后傳到輸出層節(jié)點,如果在輸出層得不到期望輸出,則轉(zhuǎn)入反向傳播,將誤差信號沿原來通路返回,通過學習來修改各層神經(jīng)元的權(quán)值,使誤差信號最小。
每一層節(jié)點的輸出只影響下一層節(jié)點的輸入。
每個節(jié)點都對應著一個作用函數(shù)(f)和閾值(a),BP網(wǎng)絡的基本處理單元量為非線性輸入-輸出的關系,輸入層節(jié)點閾值為0,且f(x)=x;而隱含層和輸出層的作用函數(shù)為非線性的Sigmoid型(它是連續(xù)可微的)函數(shù),其表達式為f(x)=1/(1+e-x)(4-55)設有L個學習樣本(Xk,Ok)(k=1,2,…,l),其中Xk為輸入,Ok為期望輸出,Xk經(jīng)網(wǎng)絡傳播后得到的實際輸出為Yk,則Yk與要求的期望輸出Ok之間的均方誤差為區(qū)域地下水功能可持續(xù)性評價理論與方法研究式中:M為輸出層單元數(shù);Yk,p為第k樣本對第p特性分量的實際輸出;Ok,p為第k樣本對第p特性分量的期望輸出。
樣本的總誤差為區(qū)域地下水功能可持續(xù)性評價理論與方法研究由梯度下降法修改網(wǎng)絡的權(quán)值,使得E取得最小值,學習樣本對Wij的修正為區(qū)域地下水功能可持續(xù)性評價理論與方法研究式中:η為學習速率,可取0到1間的數(shù)值。
所有學習樣本對權(quán)值Wij的修正為區(qū)域地下水功能可持續(xù)性評價理論與方法研究通常為增加學習過程的穩(wěn)定性,用下式對Wij再進行修正:區(qū)域地下水功能可持續(xù)性評價理論與方法研究式中:β為充量常量;Wij(t)為BP網(wǎng)絡第t次迭代循環(huán)訓練后的連接權(quán)值;Wij(t-1)為BP網(wǎng)絡第t-1次迭代循環(huán)訓練后的連接權(quán)值。
在BP網(wǎng)絡學習的過程中,先調(diào)整輸出層與隱含層之間的連接權(quán)值,然后調(diào)整中間隱含層間的連接權(quán)值,最后調(diào)整隱含層與輸入層之間的連接權(quán)值。實現(xiàn)BP網(wǎng)絡訓練學習程序流程,如圖4-5所示(倪深海等,2000)。
圖4-5BP神經(jīng)網(wǎng)絡模型程序框圖若將水質(zhì)評價中的評價標準作為樣本輸入,評價級別作為網(wǎng)絡輸出,BP網(wǎng)絡通過不斷學習,歸納出評價標準與評價級別間復雜的內(nèi)在對應關系,即可進行水質(zhì)綜合評價。
BP網(wǎng)絡對地下水質(zhì)量綜合評價,其評價方法不需要過多的數(shù)理統(tǒng)計知識,也不需要對水質(zhì)量監(jiān)測數(shù)據(jù)進行復雜的預處理,操作簡便易行,評價結(jié)果切合實際。
由于人工神經(jīng)網(wǎng)絡方法具有高度民主的非線性函數(shù)映射功能,使得地下水水質(zhì)評價結(jié)果較準確(袁曾任,1999)。
BP網(wǎng)絡可以任意逼近任何連續(xù)函數(shù),但是它主要存在如下缺點:①從數(shù)學上看,它可歸結(jié)為一非線性的梯度優(yōu)化問題,因此不可避免地存在局部極小問題;②學習算法的收斂速度慢,通常需要上千次或更多。
神經(jīng)網(wǎng)絡具有學習、聯(lián)想和容錯功能,是地下水水質(zhì)評價工作方法的改進,如何在現(xiàn)行的神經(jīng)網(wǎng)絡中進一步吸取模糊和灰色理論的某些優(yōu)點,建立更適合水質(zhì)評價的神經(jīng)網(wǎng)絡模型,使該模型既具有方法的先進性又具有現(xiàn)實的可行性,將是我們今后研究和探討的問題。
傷寒、副傷寒流行預測模型(BP神經(jīng)網(wǎng)絡)的建立
由于目前研究的各種數(shù)學模型或多或少存在使用條件的局限性,或使用方法的復雜性等問題,預測效果均不十分理想,距離實際應用仍有較大差距。
NNT是Matlab中較為重要的一個工具箱,在實際應用中,BP網(wǎng)絡用的最廣泛。
神經(jīng)網(wǎng)絡具有綜合能力強,對數(shù)據(jù)的要求不高,適時學習等突出優(yōu)點,其操作簡便,節(jié)省時間,網(wǎng)絡初學者即使不了解其算法的本質(zhì),也可以直接應用功能豐富的函數(shù)來實現(xiàn)自己的目的。
因此,易于被基層單位預防工作者掌握和應用。
以下幾個問題是建立理想的因素與疾病之間的神經(jīng)網(wǎng)絡模型的關鍵:(1)資料選取應盡可能地選取所研究地區(qū)系統(tǒng)連續(xù)的因素與疾病資料,最好包括有疾病高發(fā)年和疾病低發(fā)年的數(shù)據(jù)。
在收集影響因素時,要抓住主要影響傷寒、副傷寒的發(fā)病因素。
(2)疾病發(fā)病率分級神經(jīng)網(wǎng)絡預測法是按發(fā)病率高低來進行預測,在定義發(fā)病率等級時,要結(jié)合專業(yè)知識及當?shù)厍闆r而定,并根據(jù)網(wǎng)絡學習訓練效果而適時調(diào)整,以使網(wǎng)絡學習訓練達到最佳效果。
(3)資料處理問題在實踐中發(fā)現(xiàn),資料的特征往往很大程度地影響網(wǎng)絡學習和訓練的穩(wěn)定性,因此,數(shù)據(jù)的應用、納入、排出問題有待于進一步研究。
6.3.1人工神經(jīng)網(wǎng)絡的基本原理人工神經(jīng)網(wǎng)絡(ANN)是近年來發(fā)展起來的十分熱門的交叉學科,它涉及生物、電子、計算機、數(shù)學和物理等學科,有著廣泛的應用領域。
人工神經(jīng)網(wǎng)絡是一種自適應的高度非線性動力系統(tǒng),在網(wǎng)絡計算的基礎上,經(jīng)過多次重復組合,能夠完成多維空間的映射任務。
神經(jīng)網(wǎng)絡通過內(nèi)部連接的自組織結(jié)構(gòu),具有對數(shù)據(jù)的高度自適應能力,由計算機直接從實例中學習獲取知識,探求解決問題的方法,自動建立起復雜系統(tǒng)的控制規(guī)律及其認知模型。
人工神經(jīng)網(wǎng)絡就其結(jié)構(gòu)而言,一般包括輸入層、隱含層和輸出層,不同的神經(jīng)網(wǎng)絡可以有不同的隱含層數(shù),但他們都只有一層輸入和一層輸出。
神經(jīng)網(wǎng)絡的各層又由不同數(shù)目的神經(jīng)元組成,各層神經(jīng)元數(shù)目隨解決問題的不同而有不同的神經(jīng)元個數(shù)。
6.3.2BP神經(jīng)網(wǎng)絡模型BP網(wǎng)絡是在1985年由PDP小組提出的反向傳播算法的基礎上發(fā)展起來的,是一種多層次反饋型網(wǎng)絡(圖6.17),它在輸入和輸出之間采用多層映射方式,網(wǎng)絡按層排列,只有相鄰層的節(jié)點直接相互連接,傳遞之間信息。
在正向傳播中,輸入信息從輸入層經(jīng)隱含層逐層處理,并傳向輸出層,每層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元的狀態(tài)。
如果輸出層不能得到期望的輸出結(jié)果,則轉(zhuǎn)入反向傳播,將誤差信號沿原來的連同通路返回,通過修改各層神經(jīng)元的權(quán)值,使誤差信號最小。
BP網(wǎng)絡的學習算法步驟如下(圖6.18):圖6.17BP神經(jīng)網(wǎng)絡示意圖圖6.18BP算法流程圖第一步:設置初始參數(shù)ω和θ,(ω為初始權(quán)重,θ為臨界值,均隨機設為較小的數(shù))。
第二步:將已知的樣本加到網(wǎng)絡上,利用下式可算出他們的輸出值yi,其值為巖溶地區(qū)地下水與環(huán)境的特殊性研究式中:xi為該節(jié)點的輸入;ωij為從I到j的聯(lián)接權(quán);θj為臨界值;yj為實際算出的輸出數(shù)據(jù)。
第三步:將已知輸出數(shù)據(jù)與上面算出的輸出數(shù)據(jù)之差(dj-yj)調(diào)整權(quán)系數(shù)ω,調(diào)整量為ΔWij=ηδjxj式中:η為比例系數(shù);xj為在隱節(jié)點為網(wǎng)絡輸入,在輸出點則為下層(隱)節(jié)點的輸出(j=1,2…,n);dj為已知的輸出數(shù)據(jù)(學習樣本訓練數(shù)據(jù));δj為一個與輸出偏差相關的值,對于輸出節(jié)點來說有δj=ηj(1-yj)(dj-yj)對于隱節(jié)點來說,由于它的輸出無法進行比較,所以經(jīng)過反向逐層計算有巖溶地區(qū)地下水與環(huán)境的特殊性研究其中k指要把上層(輸出層)節(jié)點取遍。
誤差δj是從輸出層反向逐層計算的。各神經(jīng)元的權(quán)值調(diào)整后為ωij(t)=ωij(t-1)+Vωij式中:t為學習次數(shù)。
這個算法是一個迭代過程,每一輪將各W值調(diào)整一遍,這樣一直迭代下去,知道輸出誤差小于某一允許值為止,這樣一個好的網(wǎng)絡就訓練成功了,BP算法從本質(zhì)上講是把一組樣本的輸入輸出問題變?yōu)橐粋€非線性優(yōu)化問題,它使用了優(yōu)化技術中最普遍的一種梯度下降算法,用迭代運算求解權(quán)值相當于學習記憶問題。
6.3.3BP神經(jīng)網(wǎng)絡模型在傷寒、副傷寒流行與傳播預測中的應用傷寒、副傷寒的傳播與流行同環(huán)境之間有著一定的聯(lián)系。
根據(jù)桂林市1990年以來鄉(xiāng)鎮(zhèn)為單位的傷寒、副傷寒疫情資料,傷寒、副傷寒疫源地資料,結(jié)合現(xiàn)有資源與環(huán)境背景資料(桂林市行政區(qū)劃、土壤、氣候等)和社會經(jīng)濟資料(經(jīng)濟、人口、生活習慣等統(tǒng)計資料)建立人工神經(jīng)網(wǎng)絡數(shù)學模型,來逼近這種規(guī)律。
6.3.3.1模型建立(1)神經(jīng)網(wǎng)絡的BP算法BP網(wǎng)絡是一種前饋型網(wǎng)絡,由1個輸入層、若干隱含層和1個輸出層構(gòu)成。
如果輸入層、隱含層和輸出層的單元個數(shù)分別為n,q1,q2,m,則該三層網(wǎng)絡網(wǎng)絡可表示為BP(n,q1,q2,m),利用該網(wǎng)絡可實現(xiàn)n維輸入向量Xn=(X1,X2,…,Xn)T到m維輸出向量Ym=(Y1,Y2,…,Ym)T的非線性映射。
輸入層和輸出層的單元數(shù)n,m根據(jù)具體問題確定。
(2)樣本的選取將模型的輸入變量設計為平均溫度、平均降雨量、巖石性質(zhì)、巖溶發(fā)育、地下水類型、飲用水類型、正規(guī)自來水供應比例、集中供水比例8個輸入因子(表6.29),輸出單元為傷寒副傷寒的發(fā)病率等級,共一個輸出單元。
其中q1,q2的值根據(jù)訓練結(jié)果進行選擇。表6.29桂林市傷寒副傷寒影響因素量化表通過分析,選取在傷寒副傷寒有代表性的縣鎮(zhèn)在1994~2001年的環(huán)境參評因子作為樣本進行訓練。
利用聚類分析法對疫情進行聚類分級(Ⅰ、Ⅱ、Ⅲ、Ⅳ),傷寒副傷寒發(fā)病最高級為Ⅳ(BP網(wǎng)絡中輸出定為4),次之的為Ⅲ(BP網(wǎng)絡中輸出定為3),以此類推,最低為Ⅰ(BP網(wǎng)絡中輸出定為1)(3)數(shù)據(jù)的歸一化處理為使網(wǎng)絡在訓練過程中易于收斂,我們對輸入數(shù)據(jù)進行了歸一化處理,并將輸入的原始數(shù)據(jù)都化為0~1之間的數(shù)。
如將平均降雨量的數(shù)據(jù)乘以0.0001;將平均氣溫的數(shù)據(jù)乘以0.01;其他輸入數(shù)據(jù)也按類似的方法進行歸一化處理。
(4)模型的算法過程假設共有P個訓練樣本,輸入的第p個(p=1,2,…,P)訓練樣本信息首先向前傳播到隱含單元上。
經(jīng)過激活函數(shù)f(u)的作用得到隱含層1的輸出信息:巖溶地區(qū)地下水與環(huán)境的特殊性研究經(jīng)過激活函數(shù)f(u)的作用得到隱含層2的輸出信息:巖溶地區(qū)地下水與環(huán)境的特殊性研究激活函數(shù)f(u)我們這里采用Sigmoid型,即f(u)=1/[1+exp(-u)](6.5)隱含層的輸出信息傳到輸出層,可得到最終輸出結(jié)果為巖溶地區(qū)地下水與環(huán)境的特殊性研究以上過程為網(wǎng)絡學習的信息正向傳播過程。
另一個過程為誤差反向傳播過程。
如果網(wǎng)絡輸出與期望輸出間存在誤差,則將誤差反向傳播,利用下式來調(diào)節(jié)網(wǎng)絡權(quán)重和閾值:巖溶地區(qū)地下水與環(huán)境的特殊性研究式中:Δω(t)為t次訓練時權(quán)重和閾值的修正;η稱為學習速率,0<η<1;E為誤差平方和。
巖溶地區(qū)地下水與環(huán)境的特殊性研究反復運用以上兩個過程,直至網(wǎng)絡輸出與期望輸出間的誤差滿足一定的要求。該模型算法的缺點:1)需要較長的訓練時間。
由于一些復雜的問題,BP算法可能要進行幾小時甚至更長的時間的訓練,這主要是由于學習速率太小造成的,可采用變化的學習速率或自適應的學習速率加以改進。2)完全不能訓練。
主要表現(xiàn)在網(wǎng)絡出現(xiàn)的麻痹現(xiàn)象上,在網(wǎng)絡的訓練過程中,當其權(quán)值調(diào)的過大,可能使得所有的或大部分神經(jīng)元的加權(quán)總和n偏大,這使得激活函數(shù)的輸入工作在S型轉(zhuǎn)移函數(shù)的飽和區(qū),從而導致其導數(shù)f′(n)非常小,從而使得對網(wǎng)絡權(quán)值的調(diào)節(jié)過程幾乎停頓下來。
3)局部極小值。BP算法可以使網(wǎng)絡權(quán)值收斂到一個解,但它并不能保證所求為誤差超平面的全局最小解,很可能是一個局部極小解。
這是因為BP算法采用的是梯度下降法,訓練從某一起點沿誤差函數(shù)的斜面逐漸達到誤差的最小值。
考慮到以上算法的缺點,對模型進行了兩方面的改進:(1)附加動量法為了避免陷入局部極小值,對模型進行了改進,應用了附加動量法。
附加動量法在使網(wǎng)絡修正及其權(quán)值時,不僅考慮誤差在梯度上的作用,而且考慮在誤差曲面上變化趨勢的影響,其作用如同一個低通濾波器,它允許網(wǎng)絡忽略網(wǎng)絡上的微小變化特性。
在沒有附加動量的作用下,網(wǎng)絡可能陷入淺的局部極小值,利用附加動量的作用則有可能滑過這些極小值。
該方法是在反向傳播法的基礎上在每一個權(quán)值的變化上加上一項正比于前次權(quán)值變化量的值,并根據(jù)反向傳播法來產(chǎn)生心的權(quán)值變化。
促使權(quán)值的調(diào)節(jié)向著誤差曲面底部的平均方向變化,從而防止了如Δω(t)=0的出現(xiàn),有助于使網(wǎng)絡從誤差曲面的局部極小值中跳出。
這種方法主要是把式(6.7)改進為巖溶地區(qū)地下水與環(huán)境的特殊性研究式中:A為訓練次數(shù);a為動量因子,一般取0.95左右。
訓練中對采用動量法的判斷條件為巖溶地區(qū)地下水與環(huán)境的特殊性研究(2)自適應學習速率對于一個特定的問題,要選擇適當?shù)膶W習速率不是一件容易的事情。
通常是憑經(jīng)驗或?qū)嶒灚@取,但即使這樣,對訓練開始初期功效較好的學習速率,不見得對后來的訓練合適。
所以,為了盡量縮短網(wǎng)絡所需的訓練時間,采用了學習速率隨著訓練變化的方法來找到相對于每一時刻來說較差的學習速率。
下式給出了一種自適應學習速率的調(diào)整公式:巖溶地區(qū)地下水與環(huán)境的特殊性研究通過以上兩個方面的改進,訓練了一個比較理想的網(wǎng)絡,將動量法和自適應學習速率結(jié)合起來,效果要比單獨使用要好得多。
6.3.3.2模型的求解與預測采用包含了2個隱含層的神經(jīng)網(wǎng)絡BP(4,q1,q2,1),隱含層單元數(shù)q1,q2與所研究的具體問題有關,目前尚無統(tǒng)一的確定方法,通常根據(jù)網(wǎng)絡訓練情況采用試錯法確定。
在滿足一定的精度要求下一般認小的數(shù)值,以改善網(wǎng)絡的概括推論能力。
在訓練中網(wǎng)絡的收斂采用輸出值Ykp與實測值tp的誤差平方和進行控制:巖溶地區(qū)地下水與環(huán)境的特殊性研究1)將附加動量法和自適應學習速率結(jié)合應用,分析桂林市36個鄉(xiāng)鎮(zhèn)地質(zhì)條件各因素對傷寒副傷寒發(fā)病等級的影響。
因此訓練樣本為36個,第一個隱含層有19個神經(jīng)元,第二個隱含層有11個神經(jīng)元,學習速率為0.001。A.程序(略)。B.網(wǎng)絡訓練。
在命令窗口執(zhí)行運行命令,網(wǎng)絡開始學習和訓練,其學習和訓練過程如下(圖6.19)。圖6.19神經(jīng)網(wǎng)絡訓練過程圖C.模型預測。
a.輸入未參與訓練的鄉(xiāng)鎮(zhèn)(洞井鄉(xiāng)、兩水鄉(xiāng)、延東鄉(xiāng)、四塘鄉(xiāng)、嚴關鎮(zhèn)、靈田鄉(xiāng))地質(zhì)條件數(shù)據(jù)。b.預測。程序運行后網(wǎng)絡輸出預測值a3,與已知的實際值進行比較,其預測結(jié)果整理后見(表6.30)。
經(jīng)計算,對6個鄉(xiāng)鎮(zhèn)傷寒副傷寒發(fā)病等級的預測符合率為83.3%。表6.30神經(jīng)網(wǎng)絡模型預測結(jié)果與實際結(jié)果比較c.地質(zhì)條件改進方案。
在影響疾病發(fā)生的地質(zhì)條件中,大部分地質(zhì)條件是不會變化的,而改變發(fā)病地區(qū)的飲用水類型是可以人為地通過改良措施加以實施的一個因素。
因此,以靈田鄉(xiāng)為例對發(fā)病率較高的鄉(xiāng)鎮(zhèn)進行分析,改變其飲用水類型,來看發(fā)病等級的變化情況。
表6.31顯示,在其他地質(zhì)條件因素不變的情況下,改變當?shù)氐牡叵滤愋?#xff08;從原來的巖溶水類型改變成基巖裂隙水)則將發(fā)病等級從原來的最高級4級,下降為較低的2級,效果是十分明顯的。
因此,今后在進行傷寒副傷寒疾病防治的時候,可以通過改變高發(fā)區(qū)飲用水類型來客觀上減少疫情的發(fā)生。
表6.31靈田鄉(xiāng)改變飲用水類型前后的預測結(jié)果2)選取桂林地區(qū)1994~2000年月平均降雨量、月平均溫度作為輸入數(shù)據(jù)矩陣,進行樣本訓練,設定不同的隱含層單元數(shù),對各月份的數(shù)據(jù)進行BP網(wǎng)絡訓練。
在隱含層單元數(shù)q1=13,q2=9,經(jīng)過46383次數(shù)的訓練,誤差達到精度要求,學習速率0.02。A.附加動量法程序(略)。B.網(wǎng)絡訓練。
在命令窗口執(zhí)行運行命令,網(wǎng)絡開始學習和訓練,其學習和訓練過程如下(圖6.20)。C.模型預測。a.輸入桂林市2001年1~12月桂林市各月份的平均氣溫和平均降雨量。預測程度(略)。b.預測。
程序運行后網(wǎng)絡輸出預測值a2,與已知的實際值進行比較,其預測結(jié)果整理后見(表6.32)。經(jīng)計算,對2001年1~12月傷寒副傷寒發(fā)病等級進行預測,12個預測結(jié)果中,有9個符合,符合率為75%。
圖6.20神經(jīng)網(wǎng)絡訓練過程圖表6.32神經(jīng)網(wǎng)絡模型預測結(jié)果與實際值比較6.3.3.3模型的評價本研究采用BP神經(jīng)網(wǎng)絡對傷寒、副傷寒發(fā)病率等級進行定量預測,一方面引用數(shù)量化理論對不確定因素進行量化處理;另一方面利用神經(jīng)網(wǎng)絡優(yōu)點,充分考慮各影響因素與發(fā)病率之間的非線性映射。
實際應用表明,神經(jīng)網(wǎng)絡定量預測傷寒、副傷寒發(fā)病率是理想的。其主要優(yōu)點有:1)避免了模糊或不確定因素的分析工作和具體數(shù)學模型的建立工作。2)完成了輸入和輸出之間復雜的非線性映射關系。
3)采用自適應的信息處理方式,有效減少人為的主觀臆斷性。雖然如此,但仍存在以下缺點:1)學習算法的收斂速度慢,通常需要上千次或更多,訓練時間長。2)從數(shù)學上看,BP算法有可能存在局部極小問題。
本模型具有廣泛的應用范圍,可以應用在很多領域。從上面的結(jié)果可以看出,實際和網(wǎng)絡學習數(shù)據(jù)總體較為接近,演化趨勢也基本一致。
說明選定的氣象因子、地質(zhì)條件因素為神經(jīng)單元獲得的傷寒、副傷寒發(fā)病等級與實際等級比較接近,從而證明傷寒、副傷寒流行與地理因素的確存在較密切的相關性。
bp神經(jīng)網(wǎng)絡用啥算法?
自己找個例子算一下,推導一下,這個回答起來比較復雜神經(jīng)網(wǎng)絡對模型的表達能力依賴于優(yōu)化算法,優(yōu)化是一個不斷計算梯度并調(diào)整可學習參數(shù)的過程,Fluid中的優(yōu)化算法可參考?優(yōu)化器?。
在網(wǎng)絡的訓練過程中,梯度計算分為兩個步驟:前向計算與?反向傳播?。前向計算會根據(jù)您搭建的網(wǎng)絡結(jié)構(gòu),將輸入單元的狀態(tài)傳遞到輸出單元。
反向傳播借助?鏈式法則?,計算兩個或兩個以上復合函數(shù)的導數(shù),將輸出單元的梯度反向傳播回輸入單元,根據(jù)計算出的梯度,調(diào)整網(wǎng)絡的可學習參數(shù)。BP算法隱層的引入使網(wǎng)絡具有很大的潛力。
但正像Minskey和Papert當時所指出的.雖然對所有那些能用簡單(無隱層)網(wǎng)結(jié)解決的問題有非常簡單的學習規(guī)則,即簡單感知器的收斂程序(主要歸功于Widrow和HMf于1960年提出的Delta規(guī)剛),BP算法但當時并沒有找到同樣有技的含隱層的同培的學習規(guī)則。
對此問題的研究有三個基本的結(jié)果。一種是使用簡單無監(jiān)督學習規(guī)則的競爭學習方法.但它缺乏外部信息.難以確定適臺映射的隱層結(jié)構(gòu)。第二條途徑是假設一十內(nèi)部(隱層)的表示方法,這在一些先約條件下是臺理的。
另一種方法是利用統(tǒng)計手段設計一個學習過程使之能有技地實現(xiàn)適當?shù)膬?nèi)部表示法,Hinton等人(1984年)提出的Bolzmann機是這種方法的典型例子.它要求網(wǎng)絡在兩個不同的狀態(tài)下達到平衡,并且只局限于對稱網(wǎng)絡。
Barto和他的同事(1985年)提出了另一條利用統(tǒng)計手段的學習方法。
但迄今為止最有教和最實用的方瑤是Rumelhart、Hinton和Williams(1986年)提出的一般Delta法則,即反向傳播(BP)算法。
Parter(1985年)也獨立地得出過相似的算法,他稱之為學習邏輯。此外,Lecun(1985年)也研究出大致相似的學習法則。
神經(jīng)網(wǎng)絡BP模型
一、BP模型概述誤差逆?zhèn)鞑?ErrorBack-Propagation)神經(jīng)網(wǎng)絡模型簡稱為BP(Back-Propagation)網(wǎng)絡模型。
PallWerbas博士于1974年在他的博士論文中提出了誤差逆?zhèn)鞑W習算法。完整提出并被廣泛接受誤差逆?zhèn)鞑W習算法的是以Rumelhart和McCelland為首的科學家小組。
他們在1986年出版“ParallelDistributedProcessing,ExplorationsintheMicrostructureofCognition”(《并行分布信息處理》)一書中,對誤差逆?zhèn)鞑W習算法進行了詳盡的分析與介紹,并對這一算法的潛在能力進行了深入探討。
BP網(wǎng)絡是一種具有3層或3層以上的階層型神經(jīng)網(wǎng)絡。上、下層之間各神經(jīng)元實現(xiàn)全連接,即下層的每一個神經(jīng)元與上層的每一個神經(jīng)元都實現(xiàn)權(quán)連接,而每一層各神經(jīng)元之間無連接。
網(wǎng)絡按有教師示教的方式進行學習,當一對學習模式提供給網(wǎng)絡后,神經(jīng)元的激活值從輸入層經(jīng)各隱含層向輸出層傳播,在輸出層的各神經(jīng)元獲得網(wǎng)絡的輸入響應。
在這之后,按減小期望輸出與實際輸出的誤差的方向,從輸入層經(jīng)各隱含層逐層修正各連接權(quán),最后回到輸入層,故得名“誤差逆?zhèn)鞑W習算法”。
隨著這種誤差逆?zhèn)鞑バ拚牟粩噙M行,網(wǎng)絡對輸入模式響應的正確率也不斷提高。
BP網(wǎng)絡主要應用于以下幾個方面:1)函數(shù)逼近:用輸入模式與相應的期望輸出模式學習一個網(wǎng)絡逼近一個函數(shù);2)模式識別:用一個特定的期望輸出模式將它與輸入模式聯(lián)系起來;3)分類:把輸入模式以所定義的合適方式進行分類;4)數(shù)據(jù)壓縮:減少輸出矢量的維數(shù)以便于傳輸或存儲。
在人工神經(jīng)網(wǎng)絡的實際應用中,80%~90%的人工神經(jīng)網(wǎng)絡模型采用BP網(wǎng)絡或它的變化形式,它也是前向網(wǎng)絡的核心部分,體現(xiàn)了人工神經(jīng)網(wǎng)絡最精華的部分。
二、BP模型原理下面以三層BP網(wǎng)絡為例,說明學習和應用的原理。
1.數(shù)據(jù)定義P對學習模式(xp,dp),p=1,2,…,P;輸入模式矩陣X[N][P]=(x1,x2,…,xP);目標模式矩陣d[M][P]=(d1,d2,…,dP)。
三層BP網(wǎng)絡結(jié)構(gòu)輸入層神經(jīng)元節(jié)點數(shù)S0=N,i=1,2,…,S0;隱含層神經(jīng)元節(jié)點數(shù)S1,j=1,2,…,S1;神經(jīng)元激活函數(shù)f1[S1];權(quán)值矩陣W1[S1][S0];偏差向量b1[S1]。
輸出層神經(jīng)元節(jié)點數(shù)S2=M,k=1,2,…,S2;神經(jīng)元激活函數(shù)f2[S2];權(quán)值矩陣W2[S2][S1];偏差向量b2[S2]。
學習參數(shù)目標誤差?;初始權(quán)更新值Δ0;最大權(quán)更新值Δmax;權(quán)更新值增大倍數(shù)η+;權(quán)更新值減小倍數(shù)η-。
2.誤差函數(shù)定義對第p個輸入模式的誤差的計算公式為中國礦產(chǎn)資源評價新技術與評價新模型y2kp為BP網(wǎng)的計算輸出。
3.BP網(wǎng)絡學習公式推導BP網(wǎng)絡學習公式推導的指導思想是,對網(wǎng)絡的權(quán)值W、偏差b修正,使誤差函數(shù)沿負梯度方向下降,直到網(wǎng)絡輸出誤差精度達到目標精度要求,學習結(jié)束。
各層輸出計算公式輸入層y0i=xi,i=1,2,…,S0;隱含層中國礦產(chǎn)資源評價新技術與評價新模型y1j=f1(z1j),j=1,2,…,S1;輸出層中國礦產(chǎn)資源評價新技術與評價新模型y2k=f2(z2k),k=1,2,…,S2。
輸出節(jié)點的誤差公式中國礦產(chǎn)資源評價新技術與評價新模型對輸出層節(jié)點的梯度公式推導中國礦產(chǎn)資源評價新技術與評價新模型E是多個y2m的函數(shù),但只有一個y2k與wkj有關,各y2m間相互獨立。
其中中國礦產(chǎn)資源評價新技術與評價新模型則中國礦產(chǎn)資源評價新技術與評價新模型設輸出層節(jié)點誤差為δ2k=(dk-y2k)·f2′(z2k),則中國礦產(chǎn)資源評價新技術與評價新模型同理可得中國礦產(chǎn)資源評價新技術與評價新模型對隱含層節(jié)點的梯度公式推導中國礦產(chǎn)資源評價新技術與評價新模型E是多個y2k的函數(shù),針對某一個w1ji,對應一個y1j,它與所有的y2k有關。
因此,上式只存在對k的求和,其中中國礦產(chǎn)資源評價新技術與評價新模型則中國礦產(chǎn)資源評價新技術與評價新模型設隱含層節(jié)點誤差為中國礦產(chǎn)資源評價新技術與評價新模型則中國礦產(chǎn)資源評價新技術與評價新模型同理可得中國礦產(chǎn)資源評價新技術與評價新模型4.采用彈性BP算法(RPROP)計算權(quán)值W、偏差b的修正值ΔW,Δb1993年德國MartinRiedmiller和HeinrichBraun在他們的論文“ADirectAdaptiveMethodforFasterBackpropagationLearning:TheRPROPAlgorithm”中,提出ResilientBackpropagation算法——彈性BP算法(RPROP)。
這種方法試圖消除梯度的大小對權(quán)步的有害影響,因此,只有梯度的符號被認為表示權(quán)更新的方向。
權(quán)改變的大小僅僅由權(quán)專門的“更新值”確定中國礦產(chǎn)資源評價新技術與評價新模型其中表示在模式集的所有模式(批學習)上求和的梯度信息,(t)表示t時刻或第t次學習。
權(quán)更新遵循規(guī)則:如果導數(shù)是正(增加誤差),這個權(quán)由它的更新值減少。如果導數(shù)是負,更新值增加。中國礦產(chǎn)資源評價新技術與評價新模型RPROP算法是根據(jù)局部梯度信息實現(xiàn)權(quán)步的直接修改。
對于每個權(quán),我們引入它的各自的更新值,它獨自確定權(quán)更新值的大小。
這是基于符號相關的自適應過程,它基于在誤差函數(shù)E上的局部梯度信息,按照以下的學習規(guī)則更新中國礦產(chǎn)資源評價新技術與評價新模型其中0<η-<1<η+。
在每個時刻,如果目標函數(shù)的梯度改變它的符號,它表示最后的更新太大,更新值應由權(quán)更新值減小倍數(shù)因子η-得到減少;如果目標函數(shù)的梯度保持它的符號,更新值應由權(quán)更新值增大倍數(shù)因子η+得到增大。
為了減少自由地可調(diào)參數(shù)的數(shù)目,增大倍數(shù)因子η+和減小倍數(shù)因子η–被設置到固定值η+=1.2,η-=0.5,這兩個值在大量的實踐中得到了很好的效果。
RPROP算法采用了兩個參數(shù):初始權(quán)更新值Δ0和最大權(quán)更新值Δmax當學習開始時,所有的更新值被設置為初始值Δ0,因為它直接確定了前面權(quán)步的大小,它應該按照權(quán)自身的初值進行選擇,例如,Δ0=0.1(默認設置)。
為了使權(quán)不至于變得太大,設置最大權(quán)更新值限制Δmax,默認上界設置為Δmax=50.0。在很多實驗中,發(fā)現(xiàn)通過設置最大權(quán)更新值Δmax到相當小的值,例如Δmax=1.0。
我們可能達到誤差減小的平滑性能。5.計算修正權(quán)值W、偏差b第t次學習,權(quán)值W、偏差b的的修正公式W(t)=W(t-1)+ΔW(t),b(t)=b(t-1)+Δb(t),其中,t為學習次數(shù)。
6.BP網(wǎng)絡學習成功結(jié)束條件每次學習累積誤差平方和中國礦產(chǎn)資源評價新技術與評價新模型每次學習平均誤差中國礦產(chǎn)資源評價新技術與評價新模型當平均誤差MSE<ε,BP網(wǎng)絡學習成功結(jié)束。
7.BP網(wǎng)絡應用預測在應用BP網(wǎng)絡時,提供網(wǎng)絡輸入給輸入層,應用給定的BP網(wǎng)絡及BP網(wǎng)絡學習得到的權(quán)值W、偏差b,網(wǎng)絡輸入經(jīng)過從輸入層經(jīng)各隱含層向輸出層的“順傳播”過程,計算出BP網(wǎng)的預測輸出。
8.神經(jīng)元激活函數(shù)f線性函數(shù)f(x)=x,f′(x)=1,f(x)的輸入范圍(-∞,+∞),輸出范圍(-∞,+∞)。一般用于輸出層,可使網(wǎng)絡輸出任何值。
S型函數(shù)S(x)中國礦產(chǎn)資源評價新技術與評價新模型f(x)的輸入范圍(-∞,+∞),輸出范圍(0,1)。f′(x)=f(x)[1-f(x)],f′(x)的輸入范圍(-∞,+∞),輸出范圍(0,]。
一般用于隱含層,可使范圍(-∞,+∞)的輸入,變成(0,1)的網(wǎng)絡輸出,對較大的輸入,放大系數(shù)較小;而對較小的輸入,放大系數(shù)較大,所以可用來處理和逼近非線性的輸入/輸出關系。
在用于模式識別時,可用于輸出層,產(chǎn)生逼近于0或1的二值輸出。雙曲正切S型函數(shù)中國礦產(chǎn)資源評價新技術與評價新模型f(x)的輸入范圍(-∞,+∞),輸出范圍(-1,1)。
f′(x)=1-f(x)·f(x),f′(x)的輸入范圍(-∞,+∞),輸出范圍(0,1]。
一般用于隱含層,可使范圍(-∞,+∞)的輸入,變成(-1,1)的網(wǎng)絡輸出,對較大的輸入,放大系數(shù)較小;而對較小的輸入,放大系數(shù)較大,所以可用來處理和逼近非線性的輸入/輸出關系。
階梯函數(shù)類型1中國礦產(chǎn)資源評價新技術與評價新模型f(x)的輸入范圍(-∞,+∞),輸出范圍{0,1}。f′(x)=0。
類型2中國礦產(chǎn)資源評價新技術與評價新模型f(x)的輸入范圍(-∞,+∞),輸出范圍{-1,1}。f′(x)=0。
斜坡函數(shù)類型1中國礦產(chǎn)資源評價新技術與評價新模型f(x)的輸入范圍(-∞,+∞),輸出范圍[0,1]。中國礦產(chǎn)資源評價新技術與評價新模型f′(x)的輸入范圍(-∞,+∞),輸出范圍{0,1}。
類型2中國礦產(chǎn)資源評價新技術與評價新模型f(x)的輸入范圍(-∞,+∞),輸出范圍[-1,1]。中國礦產(chǎn)資源評價新技術與評價新模型f′(x)的輸入范圍(-∞,+∞),輸出范圍{0,1}。
三、總體算法1.三層BP網(wǎng)絡(含輸入層,隱含層,輸出層)權(quán)值W、偏差b初始化總體算法(1)輸入?yún)?shù)X[N][P],S0,S1,f1[S1],S2,f2[S2];(2)計算輸入模式X[N][P]各個變量的最大值,最小值矩陣Xmax[N],Xmin[N];(3)隱含層的權(quán)值W1,偏差b1初始化。
情形1:隱含層激活函數(shù)f()都是雙曲正切S型函數(shù)1)計算輸入模式X[N][P]的每個變量的范圍向量Xrng[N];2)計算輸入模式X的每個變量的范圍均值向量Xmid[N];3)計算W,b的幅度因子Wmag;4)產(chǎn)生[-1,1]之間均勻分布的S0×1維隨機數(shù)矩陣Rand[S1];5)產(chǎn)生均值為0,方差為1的正態(tài)分布的S1×S0維隨機數(shù)矩陣Randnr[S1][S0],隨機數(shù)范圍大致在[-1,1];6)計算W[S1][S0],b[S1];7)計算隱含層的初始化權(quán)值W1[S1][S0];8)計算隱含層的初始化偏差b1[S1];9))輸出W1[S1][S0],b1[S1]。
情形2:隱含層激活函數(shù)f()都是S型函數(shù)1)計算輸入模式X[N][P]的每個變量的范圍向量Xrng[N];2)計算輸入模式X的每個變量的范圍均值向量Xmid[N];3)計算W,b的幅度因子Wmag;4)產(chǎn)生[-1,1]之間均勻分布的S0×1維隨機數(shù)矩陣Rand[S1];5)產(chǎn)生均值為0,方差為1的正態(tài)分布的S1×S0維隨機數(shù)矩陣Randnr[S1][S0],隨機數(shù)范圍大致在[-1,1];6)計算W[S1][S0],b[S1];7)計算隱含層的初始化權(quán)值W1[S1][S0];8)計算隱含層的初始化偏差b1[S1];9)輸出W1[S1][S0],b1[S1]。
情形3:隱含層激活函數(shù)f()為其他函數(shù)的情形1)計算輸入模式X[N][P]的每個變量的范圍向量Xrng[N];2)計算輸入模式X的每個變量的范圍均值向量Xmid[N];3)計算W,b的幅度因子Wmag;4)產(chǎn)生[-1,1]之間均勻分布的S0×1維隨機數(shù)矩陣Rand[S1];5)產(chǎn)生均值為0,方差為1的正態(tài)分布的S1×S0維隨機數(shù)矩陣Randnr[S1][S0],隨機數(shù)范圍大致在[-1,1];6)計算W[S1][S0],b[S1];7)計算隱含層的初始化權(quán)值W1[S1][S0];8)計算隱含層的初始化偏差b1[S1];9)輸出W1[S1][S0],b1[S1]。
(4)輸出層的權(quán)值W2,偏差b2初始化1)產(chǎn)生[-1,1]之間均勻分布的S2×S1維隨機數(shù)矩陣W2[S2][S1];2)產(chǎn)生[-1,1]之間均勻分布的S2×1維隨機數(shù)矩陣b2[S2];3)輸出W2[S2][S1],b2[S2]。
2.應用彈性BP算法(RPROP)學習三層BP網(wǎng)絡(含輸入層,隱含層,輸出層)權(quán)值W、偏差b總體算法函數(shù):Train3BP_RPROP(S0,X,P,S1,W1,b1,f1,S2,W2,b2,f2,d,TP)(1)輸入?yún)?shù)P對模式(xp,dp),p=1,2,…,P;三層BP網(wǎng)絡結(jié)構(gòu);學習參數(shù)。
(2)學習初始化1);2)各層W,b的梯度值,初始化為零矩陣。
(3)由輸入模式X求第一次學習各層輸出y0,y1,y2及第一次學習平均誤差MSE(4)進入學習循環(huán)epoch=1(5)判斷每次學習誤差是否達到目標誤差要求如果MSE<?,則,跳出epoch循環(huán),轉(zhuǎn)到(12)。
(6)保存第epoch-1次學習產(chǎn)生的各層W,b的梯度值,(7)求第epoch次學習各層W,b的梯度值,1)求各層誤差反向傳播值δ;2)求第p次各層W,b的梯度值,;3)求p=1,2,…,P次模式產(chǎn)生的W,b的梯度值,的累加。
(8)如果epoch=1,則將第epoch-1次學習的各層W,b的梯度值,設為第epoch次學習產(chǎn)生的各層W,b的梯度值,。
(9)求各層W,b的更新1)求權(quán)更新值Δij更新;2)求W,b的權(quán)更新值,;3)求第epoch次學習修正后的各層W,b。
(10)用修正后各層W、b,由X求第epoch次學習各層輸出y0,y1,y2及第epoch次學習誤差MSE(11)epoch=epoch+1,如果epoch≤MAX_EPOCH,轉(zhuǎn)到(5);否則,轉(zhuǎn)到(12)。
(12)輸出處理1)如果MSE<ε,則學習達到目標誤差要求,輸出W1,b1,W2,b2。2)如果MSE≥ε,則學習沒有達到目標誤差要求,再次學習。
(13)結(jié)束3.三層BP網(wǎng)絡(含輸入層,隱含層,輸出層)預測總體算法首先應用Train3lBP_RPROP()學習三層BP網(wǎng)絡(含輸入層,隱含層,輸出層)權(quán)值W、偏差b,然后應用三層BP網(wǎng)絡(含輸入層,隱含層,輸出層)預測。
函數(shù):Simu3lBP()。1)輸入?yún)?shù):P個需預測的輸入數(shù)據(jù)向量xp,p=1,2,…,P;三層BP網(wǎng)絡結(jié)構(gòu);學習得到的各層權(quán)值W、偏差b。
2)計算P個需預測的輸入數(shù)據(jù)向量xp(p=1,2,…,P)的網(wǎng)絡輸出y2[S2][P],輸出預測結(jié)果y2[S2][P]。四、總體算法流程圖BP網(wǎng)絡總體算法流程圖見附圖2。
五、數(shù)據(jù)流圖BP網(wǎng)數(shù)據(jù)流圖見附圖1。
六、實例實例一全國銅礦化探異常數(shù)據(jù)BP模型分類1.全國銅礦化探異常數(shù)據(jù)準備在全國銅礦化探數(shù)據(jù)上用穩(wěn)健統(tǒng)計學方法選取銅異常下限值33.1,生成全國銅礦化探異常數(shù)據(jù)。
2.模型數(shù)據(jù)準備根據(jù)全國銅礦化探異常數(shù)據(jù),選取7類33個礦點的化探數(shù)據(jù)作為模型數(shù)據(jù)。
這7類分別是巖漿巖型銅礦、斑巖型銅礦、矽卡巖型、海相火山型銅礦、陸相火山型銅礦、受變質(zhì)型銅礦、海相沉積型銅礦,另添加了一類沒有銅異常的模型(表8-1)。3.測試數(shù)據(jù)準備全國化探數(shù)據(jù)作為測試數(shù)據(jù)集。
4.BP網(wǎng)絡結(jié)構(gòu)隱層數(shù)2,輸入層到輸出層向量維數(shù)分別為14,9、5、1。學習率設置為0.9,系統(tǒng)誤差1e-5。沒有動量項。表8-1模型數(shù)據(jù)表續(xù)表5.計算結(jié)果圖如圖8-2、圖8-3。
圖8-2圖8-3全國銅礦礦床類型BP模型分類示意圖實例二全國金礦礦石量品位數(shù)據(jù)BP模型分類1.模型數(shù)據(jù)準備根據(jù)全國金礦儲量品位數(shù)據(jù),選取4類34個礦床數(shù)據(jù)作為模型數(shù)據(jù),這4類分別是綠巖型金礦、與中酸性浸入巖有關的熱液型金礦、微細浸染型型金礦、火山熱液型金礦(表8-2)。
2.測試數(shù)據(jù)準備模型樣本點和部分金礦點金屬量、礦石量、品位數(shù)據(jù)作為測試數(shù)據(jù)集。3.BP網(wǎng)絡結(jié)構(gòu)輸入層為三維,隱層1層,隱層為三維,輸出層為四維,學習率設置為0.8,系統(tǒng)誤差1e-4,迭代次數(shù)5000。
表8-2模型數(shù)據(jù)4.計算結(jié)果結(jié)果見表8-3、8-4。表8-3訓練學習結(jié)果表8-4預測結(jié)果(部分)續(xù)表。
總結(jié)
以上是生活随笔為你收集整理的bp神经网络预测模型优点,bp神经网络优化算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle 数据库中对记录进行分页处理
- 下一篇: Ubuntu16.04上安装kitti2