李 琳,隋樹濤
(密山市富密灌區(qū)水利水保總站連珠山分站,黑龍江密山158300)
水稻是中國主要的糧食作物,約占全國糧食作物種植面積的28%,其生產狀況直接影響著中國的糧食安全[1-2]。黑龍江省屬寒地黑土稻作區(qū),是國家重要的商品糧基地,而降水與水資源時空分布不均形成的缺水以及水稻種植面積的進一步擴大,直接影響水稻的穩(wěn)產高產。因此,水稻需水量的準確測定與預測成為制定灌溉制度、水資源規(guī)劃與管理的重要依據和關鍵,對高效節(jié)水農業(yè)的發(fā)展意義重大。目前,國內許多學者研究并發(fā)展了多種水稻需水量的預測方法,如劉倩等[3]從多個影響因子分析出發(fā),得到的BP 神經網絡模型較好的反應氣象因子與水稻需水量之間的關系;付強等[4]應用多變量自回歸模型建立了井灌水稻生育期內需水量預測模型,模型擬合與預測的效果良好; 馮艷等[5]以小波函數代替?zhèn)鹘y(tǒng)BP 網絡中的S 型激活函數,建立了一種預測精度較高的水稻需水量預測的小波BP 網絡模型。還有一些其他方法在需水量預測方面也取得了良好的效果。
本文提出了一種改進的免疫蛙跳算法( immune shuffled frog leaping algorithm,ISFLA) ,將該算法應用到小波神經網絡( wavelet neural networks,WNN) 中,建立了對水稻需水量進行有效預測的基于免疫蛙跳算法優(yōu)化的小波神經網絡( ISFLA-WNN) 模型,并對水稻需水量進行預測。
混合蛙跳算法( shuffled frog leaping algorithm,SFLA) 是一種受自然生物模仿啟示而產生的基于群體的協(xié)同搜索方法。對于D 維函數優(yōu)化問題,第i 只青蛙可表示為U( i) =,根據每只青蛙適應值( 位置) 的大小按下降順序排列,整個青蛙群體被分為m個子群體,每個子群體包含n 只青蛙,即青蛙數目為F = m·n。在每一個子群體中,適應值最好的個體和最差的個體記為Ub和Uw,整個青蛙群體的最優(yōu)值記為Ug。在每次循環(huán)中,只提高最差個體的適應值。在混合蛙跳中最差適應值( 位置) 青蛙的計算過程中,蛙跳步長更新: Si= rand( ) ×( Ub-Uw) ;位置更新:Uw( k +1) = Uw( k) +Si; Smax≥Si≥-Smax,其中rand( )∈[0,1]( k = 1,2…,n) ,Smax是最大步長。如果計算后新的解較優(yōu),則用其替代最差個體,并且通過上式求全局最優(yōu)解Ug。如果得到的解沒有改進,那么隨機生成新解取代所求個體的解,算法繼續(xù)迭代直至迭代次數完畢[6-7]。
免疫蛙跳算法具有混合蛙跳算法的全局優(yōu)化與局部細致搜索優(yōu)點,可以優(yōu)化連續(xù)問題和離散問題,具有較強的魯棒性;同時,群體具有的免疫機制對群體進行控制和調節(jié),把目標函數和制約條件作為青蛙群體的抗原,保證生成的青蛙群體直接與問題相關聯(lián),收斂方向得以控制; 對與抗原親和力高的青蛙抗體進行記憶,并從中提取免疫疫苗對抗體群進行注射,保證抗體群在更新過程中的多樣性,提高算法的效率,防止群體的退化。參照免疫算法和混合蛙跳算法的設計原理,下面給出具體實現步驟:
1) 步驟1:抗原輸入。輸入目標函數和各種約束作為免疫蛙跳算法的抗原。
2) 步驟2:針對F 只青蛙( 解) ,產生初始群體。生成初始抗體群N、促進記憶青蛙群N1、檢測記憶青蛙群N2。
3) 步驟3:計算每只青蛙抗體適應度。青蛙群體的抗原和抗體V 之間的親和力: axν= optν,其中optν表示抗原和抗體之間的匹配程度,本文用抗原和抗體之間的適應值函數fittness( ν) 來表示,即axν= fittness( ν) 。F個青蛙抗體的信息熵為:式中Hj( N) 為N個抗體第j 位的信息熵,Pij為個抗體中的第j位為數值ki的概率??贵wν 和抗體w 的親和力為: ayνw=1/(1 + H(2) ) ,抗體ν 的濃度cν為:
式中: Tact為一個預先確定的親和力閾值。
4) 步驟4:免疫記憶青蛙群體更新。根據一定比例,從青蛙抗體群N 中選出親和力高的抗體,用它們替換促進記憶青蛙群體N1中親和力低的抗體; 將抗體群N 中親和力低的抗體選入檢測記憶青蛙群體N2,用它們替換檢測記憶青蛙群體N2中親和力高的抗體。
5) 步驟5:青蛙抗體群的促進與抑制。當記憶青蛙群體N1中抗體濃度的最大值cmax低于抗體濃度閾值th 時,記憶青蛙群體中的抗體處于多樣化; 否則抗體趣于一致化,隨機產生的新個體代替被淘汰的濃度大的個體。用檢測記憶青蛙群體N2去檢測N 中是否含有已搜索過的抗體( 即N2中記錄的抗體) ,如果有就用隨機青蛙抗體取代它。
6) 步驟6:將促進記憶青蛙群體N1與檢測后的青蛙抗體群N 相結合生成新的青蛙抗體種群,將F 只青蛙按適應值降序排列分為m 子群體,對每一個子群體中的青蛙個體找出其最優(yōu)個體和最差個體,在指定迭代次數內提高差個體的適應值,針對各個子群體,按適應值降序排列體,進行重新分配和混合蛙跳運算;
7) 步驟7:終止條件是否滿足? 如果滿足,結束迭代,否則轉向Step3。
求二元函數f( x,y) =sin23 πx +( x-1)2(1 +sin2πy) +( y-12) (1 + sin22πy) ,x,y 在[-10,10]區(qū)間內的最小值問題,它有900個局部最小點。分別采用SFLA 算法和ISFLA算法進行計算,采用MATLAB7.0 編程處理,選取青蛙總數F= 200 ,子群體數m = 20 ,子群體內更新次數為10,抗體濃度閾值th 為0.85,計算得出在相同循環(huán)次數時,ISFLA 算法的精度高于SFLA 算法,表明ISFLA 算法比SFLA 算法收斂速度更快、精度更高。計算結果見表1。
表1 計算結果對比表
小波神經網絡[8-9]是一種結合小波分析和神經網絡而提出的一種前饋神經網絡。一般的WNN 模型用小波函數代替Sigmoid 函數作為隱含層的激活函數,既具有神經網絡的學習能力、泛化能力及非線性映射能力,又具有小波變換的多尺度時頻分析手段和良好的逼近特性。本文采用只含有一個隱含層的3 層網絡。網絡的隱層神經元采用小波函數做激勵函數,輸出層神經元采用Sigmoid 函數做激勵函數。
設輸入的樣本的個數為m,輸入層節(jié)點的個數為p,隱含層節(jié)點的個數為n,輸出層節(jié)點的個數為q; wij為連接輸出層節(jié)點與隱含層節(jié)點的連接權值,wjk為連接隱含層節(jié)點與輸入層節(jié)點的連接權值,θj為隱含層節(jié)點的閾值,θi為輸出層節(jié)點的閾值,aj和bj分別為第j個隱含層節(jié)點的伸縮系數和平移系數;則上述WNN 模型可表示為:
式中: f( x) 為Sigmoid 函數,即f(x) = 1/[1 + exp(- x) ]。
由于Morlet 小波基對干擾的魯棒性好、誤差小、計算穩(wěn)定等特點[10],ψ( x) 采用較多使用的Morlet 母小波
單結點輸出時,網絡輸出的均方誤差( mean square error,MSE) 為
WNN 模型采用梯度下降法訓練網絡,利用前饋網絡反向傳播誤差,不斷地調整、優(yōu)化、確定網絡的權值和尺度因子、平移因子,節(jié)點之間的權重值與閾值,使網絡計算輸出與期望輸出擬合最優(yōu),即MSE 最小。
2.2.1 確定算法的參數
根據WNN 模型的輸入輸出樣本集確定網絡的拓撲結構并作規(guī)范化處理,對優(yōu)化的網絡參數進行編碼,將神經網絡的各連接權值、各閾值、伸縮平移系數作為青蛙個體。
2.2.2 初次優(yōu)化網絡參數
利用免疫蛙跳算法對WNN 模型參數( 權值、閾值、伸縮平移系數) 進行初次優(yōu)化,代替了神經網絡參數初始的隨機賦值,克服了僅憑借誤差的傳播作為修正法則的弊端。
2.2.3 適應值評價
根據ISFLA 算法,以WNN 模型的均方差MSE 作為青蛙種群搜索性能的評價指標,適應度越高,網絡實際輸出和期望輸出的誤差越小,記錄最佳個體適應度值,及其對應的青蛙個體,該青蛙個體就是下次迭代中WNN 模型的最優(yōu)網絡參數。
2.2.4 判斷中止條件
判斷適應度值是否達到最大誤差設定值以及迭代次數是否達到最大迭代步數,若不滿足條件,按免疫蛙跳算法進行更新,并生成新一代種群,返回(2) ;如果滿足條件,將全局最優(yōu)青蛙個體映射為WNN 網絡的權值、域值、伸縮平移系數,得到一個建立好參數的WNN 網絡。
2.2.5 進行WNN 模型操作,生成最優(yōu)解
將上述方法得到的最優(yōu)解作為WNN 網絡的初始權值、域值、伸縮平移系數,對這些參數用WNN 模型的梯度下降法進行二次優(yōu)化訓練直到網絡達到性能指標,經過以上訓練,改進的免疫蛙跳算法優(yōu)化的小波神經網絡達到最佳狀態(tài),將該狀態(tài)下的最終網絡參數用于水稻的需水量預測,輸出預期結果。
本文選用文獻[11]中的實測數據,即三江平原腹地—富錦市1985—1999年的觀測資料來計算水稻的需水量。選擇1985年—1998年的日平均氣溫T、日照時數h、風速u、飽和差d、和天然水面蒸發(fā)量E 作為輸入變量,水稻需水量ET 作為單輸出變量,1999年的水稻需水量留為檢驗樣本集。根據輸入樣本水稻需水量及其相關影響因子,確定網絡的輸入層結點為5,輸出層結點個數為1,隱含層結點個數為10,經訓練后誤差精度達到0.01,擬合程度較好,所以網絡結構為5-10-1。選取青蛙總數F = 200 ,子群體數m = 20 ,子群體內更新次數為10,抗體濃度閾值th 為0.85。
用歸一化處理后的樣本對ISFLA—WNN 模型和傳統(tǒng)的WNN 模型的網絡分別進行學習與訓練,經過設定訓練次數后,網絡達到精度要求,誤差收斂到期望值。對1999年水稻需水量進行預測檢驗,ISFLA—WNN 模型預測結果與傳統(tǒng)的WNN 模型預測結果對比分析見表2,ISFLA—WNN 模型的擬合曲線見圖1。
表2 WNN、ISFLA-WNN 模型預測效果比較
分析結果表明,ISFLA-WNN 模型的預測值、均方誤差優(yōu)于傳統(tǒng)的WNN 模型; ISFLA-WNN 模型的水稻需水量網絡預測結果與實測結果十分吻合,表明該模型具有較高的準確性,可對生產實踐提供更為準確的理論依據。從整體分布可以看出,拔節(jié)孕穗期為水稻的需水臨界期,水稻自身的生長對需水量影響較大,ISFLA-WNN 模型與WNN 模型在拔節(jié)孕穗期預測值的均方誤差大于其它生育期預測值的均方誤差,表現出影響水稻需水量因素的復雜性和多變性,在今后的水稻需水量預測模型中不但要考慮氣象因素的影響,還加入水稻不同生育期的水分敏感指數,使預測預報模型更加全面、完善。
圖1 1999年水稻需水量的實測值與預測值擬合圖
免疫蛙跳算法( ISFLA) 在混合蛙跳算法的基礎上將免疫算子應用于混合蛙跳算法的進化中,引入了免疫調節(jié)機制,保持了青蛙群體的多樣性,在一定程度上防止個體退化,避免局部收斂,提高全局搜索能力和收斂速度。用ISFLA 優(yōu)化WNN 模型的連接權值、閾值、伸縮平移系數,建立了ISFLAWNN 的水稻需水量預測模型,與傳統(tǒng)的WNN 模型相比較具有更快的收斂速度和更高的預測精度,在水稻需水量預測方面具有較高的可靠性,為制定科學的水稻節(jié)水灌溉制度提供了強有力的理論依據。
[1]劉小軍,曹靜,李艷大,等. 水稻水分精確管理的知識模型研究[J].中國農業(yè)科學,2010,43(8) :1571-1572.
[2]方福平,程式華.論中國水稻生產能力[J].中國水稻科學,2009,23(6) :559-560.
[3]劉倩,熊麗榮.基于人工神經網絡算法對水稻需水量的預測[J].華中農業(yè)大學學報,2007,26(6) :885-887.
[4]付強,王志良,梁川.多變量自回歸模型在三江平原井灌水稻需水量預測中的應用[J].水利學報,2002(8) :107-112.
[5]馮艷,付強,李國良.水稻需水量預測的小波BP 網絡模型[J]. 農業(yè)工程學報,2007,23(4) :66-69.
[6]王輝,錢鋒. 群智能優(yōu)化算法[J]. 化工自動化及儀表,2007,34(5) :10.
[7]吳華麗,汪玉春,陳坤明,等.基于混合蛙跳算法的成品油管網優(yōu)化設計[J]. 石油工程建設,2008,34(1) :15.
[8]曹大有.一種免疫粒子群優(yōu)化算法及在小波神經網絡學習中的應用[J]. 計算機應用于軟件,2009,26(6) :189-191.
[9]毛鴻偉,潘宏俠,劉文禮.基于粒子群優(yōu)化的小波神經網絡及其在齒輪箱故障診斷中的應用[J]. 振動與沖擊,2007,26( 5) : 133-134.
[10]李界家,李世濤,王麗娜.基于遺傳小波神經網絡的故障預報應用[J]. 沈陽建筑大學學報( 自然科學版) ,2009,25( 2) : 381-382.
[11]付強.農業(yè)水土資源系統(tǒng)分析與綜合評價[M].北京: 中國水利水電出版社,2005:126-128.