任亞飛,田 帥,邵馨葉,2,邵建龍
(1.昆明理工大學(xué)信息工程與自動(dòng)化學(xué)院,昆明 650500;2.佛羅里達(dá)理工學(xué)院科學(xué)與工程學(xué)院,美國 墨爾本 32901)
參考作物騰發(fā)量(ET0)的精確預(yù)測對農(nóng)業(yè)的發(fā)展起著重要的作用,其預(yù)測結(jié)果將對植物的生長和灌溉方案的設(shè)計(jì)產(chǎn)生直接的影響。國內(nèi)外的學(xué)者對此做了大量的研究工作。目前用于定量預(yù)測的方法主要有回歸分析、時(shí)間序列和灰色系統(tǒng)等。其中回歸分析的計(jì)算量大,且對非線性系統(tǒng)的建模比較困難;時(shí)間序列預(yù)測法主要利用ET0的已有數(shù)據(jù)對未來情況進(jìn)行預(yù)測,并不能反映外部因素對結(jié)果的影響,預(yù)測精度差;灰色系統(tǒng)預(yù)測法所需的資料較少,導(dǎo)致其預(yù)測精度不高[1-3]。1998年由聯(lián)合國糧農(nóng)組織提出的經(jīng)典Peman-Monteith公式是目前最常用的計(jì)算方法[4]。然而,由于該方法計(jì)算所需的相關(guān)氣象數(shù)據(jù)的獲取難度較大,并存在計(jì)算復(fù)雜的缺陷,導(dǎo)致實(shí)用性不強(qiáng)。
近年來,隨著神經(jīng)網(wǎng)絡(luò)理論的迅速發(fā)展,在此基礎(chǔ)上構(gòu)建的BP神經(jīng)網(wǎng)絡(luò)模型,在針對ET0的預(yù)測工作方面,已經(jīng)獲得相對廣泛的實(shí)際應(yīng)用。然而該算法在實(shí)際使用過程中通常具有對初始權(quán)重和閾值過分敏感的情況,并表現(xiàn)出較為緩慢的收斂速度。相比之下,PSO算法所含的全局尋優(yōu)能力尤為顯著,此外無需設(shè)置過多的各項(xiàng)參數(shù),計(jì)算過程簡單。正因如此,國內(nèi)外許多學(xué)者選擇通過PSO算法對BP神經(jīng)網(wǎng)絡(luò)所涉及的初始連接權(quán)重進(jìn)行必要的優(yōu)化,以此增強(qiáng)神經(jīng)網(wǎng)絡(luò)所具備的泛化能力及其相應(yīng)的學(xué)習(xí)能力。張志政[5]等以PSO-BP神經(jīng)網(wǎng)絡(luò)為基礎(chǔ),成功建立了西安地區(qū)參考作物騰發(fā)量的預(yù)測模型,并根據(jù)影響因素的多種排列方式,分析了不同組合因素對預(yù)測精度的影響。吳復(fù)昌[6]提出了基于PSO算法的中型灌區(qū)輸水調(diào)度模型,證明PSO算法能夠快速地獲得模型的全局最優(yōu)解,并且提高了灌溉效率。這些都證明了PSO-BP算法在灌溉量預(yù)測上的應(yīng)用是可行有效的。然而,由于存在自身的局限,過去所沿用的傳統(tǒng)PSO算法,一般會(huì)出現(xiàn)過早收斂的情況,影響預(yù)測結(jié)果的精度。
本文提出一種通過非線性權(quán)重遞減策略來降低算法陷入局部極值可能性的改進(jìn)PSO-BP算法,并借助于商丘地區(qū)氣象站的數(shù)據(jù)進(jìn)行驗(yàn)證,結(jié)果表明ADAPPSO-BP模型在ET0預(yù)測方面具有比BP模型、PSO-BP模型具有更高的預(yù)測精度。
通常情況下,PSO算法在實(shí)際使用過程中,由于迭代時(shí)每一個(gè)粒子均會(huì)朝著自身及其整個(gè)群體記錄的歷史最優(yōu)位置不斷聚集,使得粒子群出現(xiàn)快速趨同效應(yīng)。在此情況下,極易導(dǎo)致局部極值、早熟收斂和停滯等現(xiàn)象的發(fā)生[7]。標(biāo)準(zhǔn)PSO算法,為有效應(yīng)對這種情況,通常選擇借助于線性遞減的慣性權(quán)重來解決,此時(shí)W隨迭代次數(shù)變化的表達(dá)式為:
(1)
式中:Wmax為最大慣性權(quán)重;Wmin為最小慣性權(quán)重;t為算法運(yùn)行的實(shí)際次數(shù);tmax為算法所能運(yùn)行次數(shù)的最大值。
一般情況下,當(dāng)Wmax=0.9,Wmin=0.4時(shí),可以取得較好的優(yōu)化效果。
事實(shí)上,線性遞減PSO算法在某種程度上確實(shí)能夠有效調(diào)節(jié)自身的局部收斂能力,然而,如果在計(jì)算初期,該算法未找到自身的最佳點(diǎn),則一旦W值持續(xù)下降,該算法的局部收斂能力將持續(xù)增強(qiáng),導(dǎo)致極易出現(xiàn)局部最優(yōu)的情況。值得一提的是,如果能夠在算法初期探測到次好點(diǎn),則W值相對取小,就能盡快找出最佳點(diǎn)。但是,如果W一直表現(xiàn)為線性遞減的趨勢,將會(huì)延緩算法的收斂速度。故本文選擇借助于非線性遞減函數(shù)的特點(diǎn),對W進(jìn)行動(dòng)態(tài)地自適應(yīng)調(diào)整,來降低算法在全局最優(yōu)解附近陷于早熟收斂的概率,此時(shí)慣性權(quán)重的表達(dá)式為:
W=Wmax-(t/tmax)20.3
(2)
基于公式(2)得知,非線性遞減能在一定程度上于算法初期延緩慣性權(quán)重持續(xù)降低的速率,從而使慣性權(quán)重得以維持較長時(shí)間的較大值,以此來探索更多的區(qū)域,盡可能地減少局部極值現(xiàn)象的發(fā)生。而在算法后期W值將會(huì)急劇降低,這將會(huì)促進(jìn)粒子的局部搜索能力不斷增強(qiáng),可以進(jìn)一步提高發(fā)現(xiàn)全局最優(yōu)值的概率[8]。
為切實(shí)增強(qiáng)BP神經(jīng)網(wǎng)絡(luò)的預(yù)測精度,克服傳統(tǒng)PSO算法所含有的局限性,在上述改進(jìn)算法的基礎(chǔ)上,提出了ADAPPSO-BP混合算法來進(jìn)行ET0的預(yù)測。該算法的流程如下:
(1)初始化粒子群維數(shù),基于BP神經(jīng)網(wǎng)絡(luò)的自身結(jié)構(gòu),亟待優(yōu)化的PSO粒子群維數(shù)為:
D=(m+1)n+(n+1)p
式中:m代表輸入層所含的節(jié)點(diǎn)數(shù);n代表隱含層所含的節(jié)點(diǎn)數(shù);p代表輸出層所含的節(jié)點(diǎn)數(shù)[9]。
(2)對粒子群的相關(guān)參數(shù)進(jìn)行初始化。粒子數(shù)量設(shè)定為N=20,粒子的位置范圍在BP神經(jīng)網(wǎng)絡(luò)所求的權(quán)閾值基礎(chǔ)上上下浮動(dòng)50%,粒子的速度限制區(qū)域?yàn)槲恢孟拗频?,同時(shí),tmax=100,學(xué)習(xí)因子設(shè)定為c1=c2=2,Wmax=0.7,其范圍為[0.7,0.4]。
(3)確定適應(yīng)度函數(shù)。其適應(yīng)度函數(shù)為:
(3)
(4)基于公式(3)可求出粒子自身的適應(yīng)度函數(shù),隨后可將其與個(gè)體極值之間進(jìn)行對比,如果更小則作為新的個(gè)體極值;然后將個(gè)體極值與全局極值進(jìn)行比較,如果小于該極值,則將其視為新的全局極值。
(5)根據(jù)式(4)、式(5)更新粒子的速度和位置:
Vt+1=WVt+c1r1(pbest-Xt)+c2r2(gbest-Xt)
(4)
Xt+1=Xt+Vt+1
(5)
式中:Xt表示粒子的實(shí)際位置;Vt表示粒子的速度;r1=r2代表在[0,1]范圍內(nèi)的隨機(jī)數(shù);其余符號(hào)意義同前。
(6)判斷是否滿足算法終止條件,如果滿足,則BP神經(jīng)網(wǎng)絡(luò)的最佳權(quán)重及其閾值,即為算法所求得的全局最優(yōu)解位置。
(7)最后,將最佳權(quán)重及其相應(yīng)的閾值傳遞至BP神經(jīng)網(wǎng)絡(luò),完成必要的網(wǎng)絡(luò)預(yù)測工作,構(gòu)建改進(jìn)后的APAPPSO-BP模型。
整個(gè)模型的算法實(shí)現(xiàn)流程如圖1所示。
圖1 ADAPPSO-BP算法流程
本文中的實(shí)驗(yàn)數(shù)據(jù)來源于中國氣象數(shù)據(jù)網(wǎng)提供的中國地面氣候資料日值數(shù)據(jù)集(V3.0)中商丘站2014-01-01-2016-06-17共900 d的逐日風(fēng)速、日照時(shí)長、平均氣溫、最高氣溫、最低氣溫和平均相對濕度6個(gè)氣象資料,并以此作為原始數(shù)據(jù),采用修正后的Peman-Monteith公式計(jì)算ET0,具體數(shù)據(jù)見表1。
表1 2014-01-01-2016-06-17商丘地區(qū)逐日氣象數(shù)據(jù)與ET0
由上面的分析可知計(jì)算ET0時(shí)涉及到的參數(shù)較多,且彼此之間的獨(dú)立性較差,存在著彼此相關(guān)的信息,不宜直接使用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測。本文將平均影響值(MIV)與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合,篩選出對ET0影響較大的參數(shù)進(jìn)行建模。
MIV的主要原理是在網(wǎng)絡(luò)模型中訓(xùn)練自變量,通過觀察不同變量的對應(yīng)變化來確定參數(shù)對預(yù)測結(jié)果的影響。其具體計(jì)算過程是:首先將全部的變量輸入訓(xùn)練好的一個(gè)BP神經(jīng)網(wǎng)絡(luò),然后將每個(gè)變量分別增加10%和減少10%,得到2個(gè)新的參數(shù)變量A1和A2。然后用新數(shù)據(jù)A1和A2分別使用已經(jīng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測得出2組預(yù)測值B1和B2,其差值即為影響變化值(IV),2者之和的平均即為平均影響值(MIV)。值得一提的是,MIV的絕對值大小代表各類參數(shù)相對于因變量產(chǎn)生的實(shí)際影響大小,正負(fù)值則代表相關(guān)的方向。此時(shí)可將MIV絕對值較大的參數(shù)挑選出來進(jìn)行建模,從而實(shí)現(xiàn)對自變量的篩選[10]。對上文中提到的影響ET0的6個(gè)氣象因素進(jìn)行MIV變量篩選,其結(jié)果見表2。
表2 各影響因素MIV特征值
MIV絕對值數(shù)值越大時(shí),其相對于網(wǎng)絡(luò)實(shí)際輸出結(jié)果所產(chǎn)生的影響也越大。由表 2可知,對ET0預(yù)測結(jié)果產(chǎn)生顯著影響的參數(shù)為風(fēng)速、平均氣溫和平均相對濕度,3者所占比例之和達(dá)到了91.63%。故本文選擇將這3個(gè)參數(shù)作為輸入變量,且將ET0設(shè)定為相應(yīng)的輸出變量。
由上一節(jié)可知BP神經(jīng)網(wǎng)絡(luò)的輸入和輸出變量個(gè)數(shù)分別為3和1,然而,至今尚未存在明確的理論方法來確定隱含層的節(jié)點(diǎn)數(shù)量。通常情況下,實(shí)驗(yàn)者會(huì)先基于經(jīng)驗(yàn)公式劃分粗略的范圍,然后將其代入神經(jīng)網(wǎng)絡(luò)進(jìn)行逐一的驗(yàn)證,從中選擇預(yù)測誤差最小的隱含層節(jié)點(diǎn)數(shù)[11],即:
(6)
式中:m為隱含層所含的節(jié)點(diǎn)數(shù);n為輸入變量的數(shù)量;a∈[0,10]。
由式(6)可以確定隱含層節(jié)點(diǎn)數(shù)m的范圍為[2,12],取該區(qū)間的整數(shù)值依次進(jìn)行實(shí)驗(yàn),其結(jié)果見圖2。
圖2 不同隱含層節(jié)點(diǎn)數(shù)的預(yù)測誤差對比
由圖 2可知,使BP神經(jīng)網(wǎng)絡(luò)誤差最小的隱含層節(jié)點(diǎn)數(shù)為6,故BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)為3-6-1。
根據(jù)以上分析,我們分別建立BP模型、PSO-BP模型和ADAPPSO-BP模型對ET0進(jìn)行預(yù)測。其中BP模型主要基于3-6-1網(wǎng)絡(luò)結(jié)構(gòu),隱含層選用tansig傳遞函數(shù),輸出層則選用purelin傳遞函數(shù)。該模型的學(xué)習(xí)速率為0.01,最大運(yùn)行次數(shù)為1 000次。訓(xùn)練樣本選擇實(shí)驗(yàn)數(shù)據(jù)中的675組,剩余的225組作為模型的檢驗(yàn)樣本,對模型進(jìn)行預(yù)測效果驗(yàn)證。圖3為3種模型的預(yù)測結(jié)果與實(shí)際結(jié)果的對比圖。同時(shí)為了更加明顯地說明3種模型的預(yù)測效果,本文選取以下指標(biāo)作為評(píng)價(jià)模型的標(biāo)準(zhǔn),其計(jì)算公式如下。
均方誤差(MSE):
(7)
平均絕對誤差(MAE):
(8)
平均相對誤差(MRE):
(9)
(4)決定系數(shù):
(10)
由圖3可以看出,在3種預(yù)測模型中,ADAPPSO-BP模型的預(yù)測結(jié)果整體最接近真實(shí)值,其次是PSO-BP模型,BP模型的預(yù)測結(jié)果最差。這說明PSO可以很好地改善BP模型預(yù)測精度低的缺點(diǎn),但同時(shí)由于自身的局限性,導(dǎo)致其在一些突變處的預(yù)測結(jié)果與真實(shí)值相比具有較大的誤差。而ADAPPSO-BP算法則很好地改善了這一缺陷。
由表3中可以看出,ADAPPSO-BP模型的MSE、MAE和MRE分別為2.273 2、0.205 6和0.113 8,均小于BP模型和PSO-BP模型,而ADAPPSO-BP模型的R2為0.960 6,高于BP模型和PSO-BP模型,表明ADAPPSO-BP模型在3種模型中具有最高的擬合度和最小的預(yù)測誤差。與PSO-BP相比,MSE、MAE和MRE分別降低了14.37%、10.60%和8.6%,進(jìn)一步證明提出的算法與傳統(tǒng)PSO算法相比可以提高預(yù)測的精度。
圖3 不同模型預(yù)測曲線比較
表3 模型指標(biāo)對比
針對標(biāo)準(zhǔn)PSO算法在應(yīng)用時(shí)容易陷于局部極值的缺陷,本文提出了一種非線性遞減權(quán)重的策略(ADAPPSO)來減少其陷于局部極值的概率,同時(shí)利用平均影響值法篩選出影響ET0的主要因素,構(gòu)建基于ADAPPSO-BP的ET0預(yù)測模型。計(jì)算結(jié)果表明,ADAPPSO-BP模型可以克服BP神經(jīng)網(wǎng)絡(luò)在ET0預(yù)測中精度不高的缺點(diǎn),同時(shí)與PSO-BP模型相比,ET0的預(yù)測精度得到了進(jìn)一步的提高,對發(fā)展節(jié)能高效的新型灌溉技術(shù)具有一定的指導(dǎo)作用。