傷寒、副傷寒流行預(yù)測模型(BP神經(jīng)網(wǎng)絡(luò))的建立
由于目前研究的各種數(shù)學(xué)模型或多或少存在使用條件的局限性,或使用方法的復(fù)雜性等問題,預(yù)測效果均不十分理想,距離實際應(yīng)用仍有較大差距。
NNT是Matlab中較為重要的一個工具箱,在實際應(yīng)用中,BP網(wǎng)絡(luò)用的最廣泛。
神經(jīng)網(wǎng)絡(luò)具有綜合能力強,對數(shù)據(jù)的要求不高,適時學(xué)習(xí)等突出優(yōu)點,其操作簡便,節(jié)省時間,網(wǎng)絡(luò)初學(xué)者即使不了解其算法的本質(zhì),也可以直接應(yīng)用功能豐富的函數(shù)來實現(xiàn)自己的目的。
因此,易于被基層單位預(yù)防工作者掌握和應(yīng)用。
以下幾個問題是建立理想的因素與疾病之間的神經(jīng)網(wǎng)絡(luò)模型的關(guān)鍵:(1)資料選取應(yīng)盡可能地選取所研究地區(qū)系統(tǒng)連續(xù)的因素與疾病資料,最好包括有疾病高發(fā)年和疾病低發(fā)年的數(shù)據(jù)。
在收集影響因素時,要抓住主要影響傷寒、副傷寒的發(fā)病因素。
(2)疾病發(fā)病率分級神經(jīng)網(wǎng)絡(luò)預(yù)測法是按發(fā)病率高低來進行預(yù)測,在定義發(fā)病率等級時,要結(jié)合專業(yè)知識及當?shù)厍闆r而定,并根據(jù)網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練效果而適時調(diào)整,以使網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練達到最佳效果。
(3)資料處理問題在實踐中發(fā)現(xiàn),資料的特征往往很大程度地影響網(wǎng)絡(luò)學(xué)習(xí)和訓(xùn)練的穩(wěn)定性,因此,數(shù)據(jù)的應(yīng)用、納入、排出問題有待于進一步研究。
6.3.1人工神經(jīng)網(wǎng)絡(luò)的基本原理人工神經(jīng)網(wǎng)絡(luò)(ANN)是近年來發(fā)展起來的十分熱門的交叉學(xué)科,它涉及生物、電子、計算機、數(shù)學(xué)和物理等學(xué)科,有著廣泛的應(yīng)用領(lǐng)域。
人工神經(jīng)網(wǎng)絡(luò)是一種自適應(yīng)的高度非線性動力系統(tǒng),在網(wǎng)絡(luò)計算的基礎(chǔ)上,經(jīng)過多次重復(fù)組合,能夠完成多維空間的映射任務(wù)。
神經(jīng)網(wǎng)絡(luò)通過內(nèi)部連接的自組織結(jié)構(gòu),具有對數(shù)據(jù)的高度自適應(yīng)能力,由計算機直接從實例中學(xué)習(xí)獲取知識,探求解決問題的方法,自動建立起復(fù)雜系統(tǒng)的控制規(guī)律及其認知模型。
人工神經(jīng)網(wǎng)絡(luò)就其結(jié)構(gòu)而言,一般包括輸入層、隱含層和輸出層,不同的神經(jīng)網(wǎng)絡(luò)可以有不同的隱含層數(shù),但他們都只有一層輸入和一層輸出。
神經(jīng)網(wǎng)絡(luò)的各層又由不同數(shù)目的神經(jīng)元組成,各層神經(jīng)元數(shù)目隨解決問題的不同而有不同的神經(jīng)元個數(shù)。
6.3.2BP神經(jīng)網(wǎng)絡(luò)模型BP網(wǎng)絡(luò)是在1985年由PDP小組提出的反向傳播算法的基礎(chǔ)上發(fā)展起來的,是一種多層次反饋型網(wǎng)絡(luò)(圖6.17),它在輸入和輸出之間采用多層映射方式,網(wǎng)絡(luò)按層排列,只有相鄰層的節(jié)點直接相互連接,傳遞之間信息。
在正向傳播中,輸入信息從輸入層經(jīng)隱含層逐層處理,并傳向輸出層,每層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元的狀態(tài)。
如果輸出層不能得到期望的輸出結(jié)果,則轉(zhuǎn)入反向傳播,將誤差信號沿原來的連同通路返回,通過修改各層神經(jīng)元的權(quán)值,使誤差信號最小。
BP網(wǎng)絡(luò)的學(xué)習(xí)算法步驟如下(圖6.18):圖6.17BP神經(jīng)網(wǎng)絡(luò)示意圖圖6.18BP算法流程圖第一步:設(shè)置初始參數(shù)ω和θ,(ω為初始權(quán)重,θ為臨界值,均隨機設(shè)為較小的數(shù))。
第二步:將已知的樣本加到網(wǎng)絡(luò)上,利用下式可算出他們的輸出值yi,其值為巖溶地區(qū)地下水與環(huán)境的特殊性研究式中:xi為該節(jié)點的輸入;ωij為從I到j(luò)的聯(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)絡(luò)輸入,在輸出點則為下層(隱)節(jié)點的輸出(j=1,2…,n);dj為已知的輸出數(shù)據(jù)(學(xué)習(xí)樣本訓(xùn)練數(shù)據(jù));δj為一個與輸出偏差相關(guān)的值,對于輸出節(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為學(xué)習(xí)次數(shù)。
這個算法是一個迭代過程,每一輪將各W值調(diào)整一遍,這樣一直迭代下去,知道輸出誤差小于某一允許值為止,這樣一個好的網(wǎng)絡(luò)就訓(xùn)練成功了,BP算法從本質(zhì)上講是把一組樣本的輸入輸出問題變?yōu)橐粋€非線性優(yōu)化問題,它使用了優(yōu)化技術(shù)中最普遍的一種梯度下降算法,用迭代運算求解權(quán)值相當于學(xué)習(xí)記憶問題。
6.3.3BP神經(jīng)網(wǎng)絡(luò)模型在傷寒、副傷寒流行與傳播預(yù)測中的應(yīng)用傷寒、副傷寒的傳播與流行同環(huán)境之間有著一定的聯(lián)系。
根據(jù)桂林市1990年以來鄉(xiāng)鎮(zhèn)為單位的傷寒、副傷寒疫情資料,傷寒、副傷寒疫源地資料,結(jié)合現(xiàn)有資源與環(huán)境背景資料(桂林市行政區(qū)劃、土壤、氣候等)和社會經(jīng)濟資料(經(jīng)濟、人口、生活習(xí)慣等統(tǒng)計資料)建立人工神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)模型,來逼近這種規(guī)律。
6.3.3.1模型建立(1)神經(jīng)網(wǎng)絡(luò)的BP算法BP網(wǎng)絡(luò)是一種前饋型網(wǎng)絡(luò),由1個輸入層、若干隱含層和1個輸出層構(gòu)成。
如果輸入層、隱含層和輸出層的單元個數(shù)分別為n,q1,q2,m,則該三層網(wǎng)絡(luò)網(wǎng)絡(luò)可表示為BP(n,q1,q2,m),利用該網(wǎng)絡(luò)可實現(xiàn)n維輸入向量Xn=(X1,X2,…,Xn)T到m維輸出向量Ym=(Y1,Y2,…,Ym)T的非線性映射。
輸入層和輸出層的單元數(shù)n,m根據(jù)具體問題確定。
(2)樣本的選取將模型的輸入變量設(shè)計為平均溫度、平均降雨量、巖石性質(zhì)、巖溶發(fā)育、地下水類型、飲用水類型、正規(guī)自來水供應(yīng)比例、集中供水比例8個輸入因子(表6.29),輸出單元為傷寒副傷寒的發(fā)病率等級,共一個輸出單元。
其中q1,q2的值根據(jù)訓(xùn)練結(jié)果進行選擇。表6.29桂林市傷寒副傷寒影響因素量化表通過分析,選取在傷寒副傷寒有代表性的縣鎮(zhèn)在1994~2001年的環(huán)境參評因子作為樣本進行訓(xùn)練。
利用聚類分析法對疫情進行聚類分級(Ⅰ、Ⅱ、Ⅲ、Ⅳ),傷寒副傷寒發(fā)病最高級為Ⅳ(BP網(wǎng)絡(luò)中輸出定為4),次之的為Ⅲ(BP網(wǎng)絡(luò)中輸出定為3),以此類推,最低為Ⅰ(BP網(wǎng)絡(luò)中輸出定為1)(3)數(shù)據(jù)的歸一化處理為使網(wǎng)絡(luò)在訓(xùn)練過程中易于收斂,我們對輸入數(shù)據(jù)進行了歸一化處理,并將輸入的原始數(shù)據(jù)都化為0~1之間的數(shù)。
如將平均降雨量的數(shù)據(jù)乘以0.0001;將平均氣溫的數(shù)據(jù)乘以0.01;其他輸入數(shù)據(jù)也按類似的方法進行歸一化處理。
(4)模型的算法過程假設(shè)共有P個訓(xùn)練樣本,輸入的第p個(p=1,2,…,P)訓(xùn)練樣本信息首先向前傳播到隱含單元上。
經(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)絡(luò)學(xué)習(xí)的信息正向傳播過程。
另一個過程為誤差反向傳播過程。
如果網(wǎng)絡(luò)輸出與期望輸出間存在誤差,則將誤差反向傳播,利用下式來調(diào)節(jié)網(wǎng)絡(luò)權(quán)重和閾值:巖溶地區(qū)地下水與環(huán)境的特殊性研究式中:Δω(t)為t次訓(xùn)練時權(quán)重和閾值的修正;η稱為學(xué)習(xí)速率,0<η<1;E為誤差平方和。
巖溶地區(qū)地下水與環(huán)境的特殊性研究反復(fù)運用以上兩個過程,直至網(wǎng)絡(luò)輸出與期望輸出間的誤差滿足一定的要求。該模型算法的缺點:1)需要較長的訓(xùn)練時間。
由于一些復(fù)雜的問題,BP算法可能要進行幾小時甚至更長的時間的訓(xùn)練,這主要是由于學(xué)習(xí)速率太小造成的,可采用變化的學(xué)習(xí)速率或自適應(yīng)的學(xué)習(xí)速率加以改進。2)完全不能訓(xùn)練。
主要表現(xiàn)在網(wǎng)絡(luò)出現(xiàn)的麻痹現(xiàn)象上,在網(wǎng)絡(luò)的訓(xùn)練過程中,當其權(quán)值調(diào)的過大,可能使得所有的或大部分神經(jīng)元的加權(quán)總和n偏大,這使得激活函數(shù)的輸入工作在S型轉(zhuǎn)移函數(shù)的飽和區(qū),從而導(dǎo)致其導(dǎo)數(shù)f′(n)非常小,從而使得對網(wǎng)絡(luò)權(quán)值的調(diào)節(jié)過程幾乎停頓下來。
3)局部極小值。BP算法可以使網(wǎng)絡(luò)權(quán)值收斂到一個解,但它并不能保證所求為誤差超平面的全局最小解,很可能是一個局部極小解。
這是因為BP算法采用的是梯度下降法,訓(xùn)練從某一起點沿誤差函數(shù)的斜面逐漸達到誤差的最小值。
考慮到以上算法的缺點,對模型進行了兩方面的改進:(1)附加動量法為了避免陷入局部極小值,對模型進行了改進,應(yīng)用了附加動量法。
附加動量法在使網(wǎng)絡(luò)修正及其權(quán)值時,不僅考慮誤差在梯度上的作用,而且考慮在誤差曲面上變化趨勢的影響,其作用如同一個低通濾波器,它允許網(wǎng)絡(luò)忽略網(wǎng)絡(luò)上的微小變化特性。
在沒有附加動量的作用下,網(wǎng)絡(luò)可能陷入淺的局部極小值,利用附加動量的作用則有可能滑過這些極小值。
該方法是在反向傳播法的基礎(chǔ)上在每一個權(quán)值的變化上加上一項正比于前次權(quán)值變化量的值,并根據(jù)反向傳播法來產(chǎn)生心的權(quán)值變化。
促使權(quán)值的調(diào)節(jié)向著誤差曲面底部的平均方向變化,從而防止了如Δω(t)=0的出現(xiàn),有助于使網(wǎng)絡(luò)從誤差曲面的局部極小值中跳出。
這種方法主要是把式(6.7)改進為巖溶地區(qū)地下水與環(huán)境的特殊性研究式中:A為訓(xùn)練次數(shù);a為動量因子,一般取0.95左右。
訓(xùn)練中對采用動量法的判斷條件為巖溶地區(qū)地下水與環(huán)境的特殊性研究(2)自適應(yīng)學(xué)習(xí)速率對于一個特定的問題,要選擇適當?shù)膶W(xué)習(xí)速率不是一件容易的事情。
通常是憑經(jīng)驗或?qū)嶒灚@取,但即使這樣,對訓(xùn)練開始初期功效較好的學(xué)習(xí)速率,不見得對后來的訓(xùn)練合適。
所以,為了盡量縮短網(wǎng)絡(luò)所需的訓(xùn)練時間,采用了學(xué)習(xí)速率隨著訓(xùn)練變化的方法來找到相對于每一時刻來說較差的學(xué)習(xí)速率。
下式給出了一種自適應(yīng)學(xué)習(xí)速率的調(diào)整公式:巖溶地區(qū)地下水與環(huán)境的特殊性研究通過以上兩個方面的改進,訓(xùn)練了一個比較理想的網(wǎng)絡(luò),將動量法和自適應(yīng)學(xué)習(xí)速率結(jié)合起來,效果要比單獨使用要好得多。
6.3.3.2模型的求解與預(yù)測采用包含了2個隱含層的神經(jīng)網(wǎng)絡(luò)BP(4,q1,q2,1),隱含層單元數(shù)q1,q2與所研究的具體問題有關(guān),目前尚無統(tǒng)一的確定方法,通常根據(jù)網(wǎng)絡(luò)訓(xùn)練情況采用試錯法確定。
在滿足一定的精度要求下一般認小的數(shù)值,以改善網(wǎng)絡(luò)的概括推論能力。
在訓(xùn)練中網(wǎng)絡(luò)的收斂采用輸出值Ykp與實測值tp的誤差平方和進行控制:巖溶地區(qū)地下水與環(huán)境的特殊性研究1)將附加動量法和自適應(yīng)學(xué)習(xí)速率結(jié)合應(yīng)用,分析桂林市36個鄉(xiāng)鎮(zhèn)地質(zhì)條件各因素對傷寒副傷寒發(fā)病等級的影響。
因此訓(xùn)練樣本為36個,第一個隱含層有19個神經(jīng)元,第二個隱含層有11個神經(jīng)元,學(xué)習(xí)速率為0.001。A.程序(略)。B.網(wǎng)絡(luò)訓(xùn)練。
在命令窗口執(zhí)行運行命令,網(wǎng)絡(luò)開始學(xué)習(xí)和訓(xùn)練,其學(xué)習(xí)和訓(xùn)練過程如下(圖6.19)。圖6.19神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程圖C.模型預(yù)測。
a.輸入未參與訓(xùn)練的鄉(xiāng)鎮(zhèn)(洞井鄉(xiāng)、兩水鄉(xiāng)、延?xùn)|鄉(xiāng)、四塘鄉(xiāng)、嚴關(guān)鎮(zhèn)、靈田鄉(xiāng))地質(zhì)條件數(shù)據(jù)。b.預(yù)測。程序運行后網(wǎng)絡(luò)輸出預(yù)測值a3,與已知的實際值進行比較,其預(yù)測結(jié)果整理后見(表6.30)。
經(jīng)計算,對6個鄉(xiāng)鎮(zhèn)傷寒副傷寒發(fā)病等級的預(yù)測符合率為83.3%。表6.30神經(jīng)網(wǎng)絡(luò)模型預(yù)測結(jié)果與實際結(jié)果比較c.地質(zhì)條件改進方案。
在影響疾病發(fā)生的地質(zhì)條件中,大部分地質(zhì)條件是不會變化的,而改變發(fā)病地區(qū)的飲用水類型是可以人為地通過改良措施加以實施的一個因素。
因此,以靈田鄉(xiāng)為例對發(fā)病率較高的鄉(xiāng)鎮(zhèn)進行分析,改變其飲用水類型,來看發(fā)病等級的變化情況。
表6.31顯示,在其他地質(zhì)條件因素不變的情況下,改變當?shù)氐牡叵滤愋停◤脑瓉淼膸r溶水類型改變成基巖裂隙水)則將發(fā)病等級從原來的最高級4級,下降為較低的2級,效果是十分明顯的。
因此,今后在進行傷寒副傷寒疾病防治的時候,可以通過改變高發(fā)區(qū)飲用水類型來客觀上減少疫情的發(fā)生。
表6.31靈田鄉(xiāng)改變飲用水類型前后的預(yù)測結(jié)果2)選取桂林地區(qū)1994~2000年月平均降雨量、月平均溫度作為輸入數(shù)據(jù)矩陣,進行樣本訓(xùn)練,設(shè)定不同的隱含層單元數(shù),對各月份的數(shù)據(jù)進行BP網(wǎng)絡(luò)訓(xùn)練。
在隱含層單元數(shù)q1=13,q2=9,經(jīng)過46383次數(shù)的訓(xùn)練,誤差達到精度要求,學(xué)習(xí)速率0.02。A.附加動量法程序(略)。B.網(wǎng)絡(luò)訓(xùn)練。文章來源:http://www.zghlxwxcb.cn/news/detail-477224.html
在命令窗口執(zhí)行運行命令,網(wǎng)絡(luò)開始學(xué)習(xí)和訓(xùn)練,其學(xué)習(xí)和訓(xùn)練過程如下(圖6.20)。C.模型預(yù)測。a.輸入桂林市2001年1~12月桂林市各月份的平均氣溫和平均降雨量。預(yù)測程度(略)。b.預(yù)測。文章來源地址http://www.zghlxwxcb.cn/news/detail-477224.html
到了這里,關(guān)于BP神經(jīng)網(wǎng)絡(luò)算法基本原理,BP神經(jīng)網(wǎng)絡(luò)算法流程圖的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!