郭麗麗,劉 勇,*,令狐琛,孫海洋
(1.黑龍江大學(xué) 電子工程學(xué)院,哈爾濱 150080,2.黑龍江東部節(jié)水設(shè)備有限公司,黑龍江 綏化 150000)
本文提出將改進(jìn)的粒子群算法與BP神經(jīng)網(wǎng)絡(luò)結(jié)合,將其應(yīng)用在農(nóng)作物空氣濕度的預(yù)測(cè)中。1986年,Rumelhart等[1]提出了BP神經(jīng)網(wǎng)絡(luò)算法,系統(tǒng)地解決了多層神經(jīng)網(wǎng)絡(luò)中隱單元連接權(quán)的問題,并在數(shù)學(xué)上給出了完整的推導(dǎo),同時(shí)也得到了廣泛的應(yīng)用,但是基于梯度下降的BP算法存在容易陷入局部極值、收斂速度慢等無法克服的缺陷;1995年美國(guó)學(xué)者Kennedy等[2]提出的粒子群優(yōu)化算法PSO引入神經(jīng)網(wǎng)絡(luò)的訓(xùn)練當(dāng)中,受到了研究者們的廣泛關(guān)注;邱曾帥[3]對(duì)溫室大棚的空氣濕度通過建立數(shù)學(xué)模型,應(yīng)用非線性控制理論中輸入輸出精確狀態(tài)反饋線性化處理;宋曉萌[4]將物聯(lián)網(wǎng)技術(shù)、模糊PID控制引入到草莓溫室大棚環(huán)境監(jiān)控系統(tǒng)中,從低成本、精準(zhǔn)控制、操作簡(jiǎn)便等方面入手,實(shí)現(xiàn)草莓溫室大棚的智能監(jiān)控;王耀東[5]提出構(gòu)建了基于改進(jìn)粒子群神經(jīng)網(wǎng)絡(luò)的地震預(yù)測(cè)模型,采用了慣性權(quán)重和學(xué)習(xí)因子動(dòng)態(tài)調(diào)整策略平衡算法,得到了較低的平均誤差率;張二梅[6]從彈藥貯存可靠性的特點(diǎn)出發(fā),建立了粒子群與神經(jīng)網(wǎng)絡(luò)結(jié)合的預(yù)測(cè)模型,該方法加入了動(dòng)量項(xiàng)和變學(xué)習(xí)率參數(shù),實(shí)現(xiàn)了彈藥貯存可靠性評(píng)估與預(yù)測(cè)的功能;李松等[7]人提出了改進(jìn)粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的短時(shí)交通流預(yù)測(cè),在算法中加入自適應(yīng)變異算子,對(duì)實(shí)測(cè)交通流具有更好的非線性擬合能力和更高的預(yù)測(cè)精度;鄭玲[8]提出了基于神經(jīng)網(wǎng)絡(luò)的電影票房預(yù)測(cè)模型,引入遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,實(shí)驗(yàn)結(jié)果平均絕對(duì)誤差低于15%,預(yù)測(cè)效果良好。
本文將PSO算法中的慣性權(quán)值進(jìn)行改進(jìn),與BP算法結(jié)合應(yīng)用在農(nóng)作物空氣濕度的預(yù)測(cè)中,目的是通過智能算法控制農(nóng)作物不同生長(zhǎng)時(shí)期對(duì)空氣濕度的需求,Korner等[9]和王佳琦等[10]的研究表明溫室內(nèi)濕度的變化會(huì)影響生農(nóng)作物的生長(zhǎng)狀態(tài)與產(chǎn)量,在濕度很高的情況下,農(nóng)作物容易被真菌病害所腐蝕,直接影響農(nóng)作物的質(zhì)量和產(chǎn)量,相反濕度過低的情況下,會(huì)造成農(nóng)作物的嚴(yán)重失水而導(dǎo)致作物生長(zhǎng)不良甚至死亡,所以對(duì)空氣濕度的有效控制是必要的,而且大棚內(nèi)空氣溫度和濕度具有一定的耦合關(guān)系,在把空氣溫度穩(wěn)定的情況下,將BP智能算法運(yùn)用到空氣濕度中。
BP(反向傳播)神經(jīng)網(wǎng)絡(luò)即輸入信號(hào)正向傳播、誤差反向傳播,此過程不斷迭代,最后使得誤差信號(hào)減小到更接近期望值。BP神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的非線性逼近能力、并行分布式處理能力、自學(xué)習(xí)和自適應(yīng)能力等特性,受到了廣泛的使用[11-12]。設(shè)輸入層有n個(gè)單元,網(wǎng)絡(luò)的輸入模式為x=(x1,x2,…,xn)T,隱含層有h個(gè)單元,隱含層的輸出為y=(y1,y2,…,yh)T,輸出層有m個(gè)單元,輸出為z=(z1,z2,…,zm)T,目標(biāo)輸出為t=(t1,t2,…,tm)T,隱含層到輸出層的傳遞函數(shù)為f,輸出層的傳遞函數(shù)為g,可得:
(1)
式中yj為隱含層第j個(gè)神經(jīng)元的輸出,w0j=θ,x0=-1
(2)
式中zk為輸出層第k個(gè)神經(jīng)元的輸出,此時(shí)網(wǎng)絡(luò)輸出和目標(biāo)輸出的誤差為:
(3)
然后進(jìn)行權(quán)值和閾值的不斷調(diào)整,使ε值減小。
wjk(t+1)=wjk(t)+ηδkyj
(4)
上式為隱含層到輸出層的權(quán)值調(diào)整迭代公式:
wij(t+1)=wij(t)+ηδjxi
(5)
上式為輸入層到隱含層的權(quán)值調(diào)整迭代公式。
雖然BP算法已被廣泛應(yīng)用,然而,基于梯度下降的BP算法存在容易陷入局部極值、收斂速度慢等無法克服的缺陷,因此,一個(gè)全局優(yōu)化的算法自然而然地被引進(jìn)到神經(jīng)網(wǎng)絡(luò)的訓(xùn)練中,PSO粒子群算法的計(jì)算速度快且算法本身涉及的參數(shù)少,這種算法被廣泛地應(yīng)用于各個(gè)領(lǐng)域,所以在解決實(shí)際問題中展示了其優(yōu)越性。為了更好地提高算法的收斂速度和精度,本文還提出了非線性權(quán)值遞減策略,試驗(yàn)結(jié)果表示效果最佳[13-14]。
假設(shè)在一個(gè)維度為d的目標(biāo)空間,粒子群的個(gè)數(shù)為n,則粒子群中第i個(gè)粒子的位置和速度均可用一個(gè)d維向量表示,
Xi=(xi1,xi2,…,xid)
(6)
Vi=(vi1,vi2,…,vid)
(7)
為了平衡算法全局搜索和局部搜索能力,解決算法收斂度不高且已陷入局部極值的缺點(diǎn),1998年,Shi等[15]將慣性權(quán)重引入PSO算法,對(duì)粒子群算法進(jìn)行了改進(jìn),該算法能夠保證較好的收斂效果,進(jìn)化過程:
Vij(t+1)=wVij(t)+c1r1[Vij(t)-Xij(t)]+c2r2[Pgj(t)-Xij(t)]
(8)
Xij(t+1)=Xij(t)+Vij(t+1)
(9)
其中i=1,2,…,n,j=1,2,…,d,n為粒子群中粒子的數(shù)量,d為目標(biāo)空間的維度;c1和c2為學(xué)習(xí)因子;r1和r2均為隨機(jī)數(shù),取值范圍為[0,1];w為慣性權(quán)重,式(8)中第一部分為粒子先前的速度,用于保證全局收斂性;第二、三部分則使算法具有局部收斂能力??梢詮氖?8)看出慣性權(quán)重w為在多大程度上保留原來的速度:w較大,則全局收斂能力較強(qiáng);w較小,則局部收斂能力較強(qiáng)。
標(biāo)準(zhǔn)粒子群算法常用的是Shi等人提出的線性遞減權(quán)值策略表達(dá)式:
(10)
搜索過程是一個(gè)非線性的復(fù)雜過程,本文將線性遞減權(quán)值策略改成非線性遞減權(quán)值策略,來增強(qiáng)局部和全局的搜索能力,可以表示為:
(11)
其中,Tmax為最大進(jìn)化代數(shù);ws為初始慣性權(quán)重值,we為進(jìn)化到最大允許迭代次數(shù)的慣性權(quán)重,t為當(dāng)前迭代次數(shù),f1為控制因子,取ws=0.95,we=0.4。當(dāng)t=0時(shí),函數(shù)值等于初始權(quán)值ws,當(dāng)t=Tmax時(shí),f1取不同的值會(huì)得到不同的下降效果,f1取值較大時(shí)會(huì)使w在算法早期較快減小到接近we,迫使算法早期陷入局部搜索;取值較小時(shí),會(huì)使得t=Tmax時(shí),w仍遠(yuǎn)大于we,經(jīng)實(shí)驗(yàn)測(cè)試f1取值為0.9時(shí),實(shí)驗(yàn)效果最好,本文中f1取值為0.9,實(shí)驗(yàn)結(jié)果表示該改進(jìn)策略可以較好的維護(hù)全局搜索和局部搜索的平衡。
1)初始化參數(shù):BP神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),粒子個(gè)數(shù)n=30,粒子維數(shù)d=21,最大迭代次數(shù)Tmax=1 000,學(xué)習(xí)因子c1=c2=2,慣性權(quán)重ws=0.95、we=0.40,學(xué)習(xí)率lr=0.05,目標(biāo)誤差goal=0.000 1,粒子的最大速度vmax=1和最小速度vmin=-1等參數(shù)。
圖1 整體算法流程圖Fig.1 Overall algorithm flow chart
3)根據(jù)式(8)和式(9)更新每個(gè)粒子的速度與位置,并判斷更新后粒子的速度與位置是否在限定范圍內(nèi)。
4)檢查算法迭代停止條件,若結(jié)果理想,則停止迭代輸出BP神經(jīng)網(wǎng)絡(luò)的權(quán)值或閾值,使得BP網(wǎng)絡(luò)更好地減小誤差,否則轉(zhuǎn)步驟2)。
算法流程見圖1。
以黑龍江省綏化市大棚溫室草莓的種植為例,研究大棚內(nèi)草莓不同生長(zhǎng)時(shí)期的空氣濕度需求。草莓的開花期對(duì)空氣濕度比較嚴(yán)格,濕度過大過小都會(huì)造成授粉不良,此時(shí)空氣相對(duì)濕度控制在40%左右;草莓的保溫初期為防止草莓進(jìn)入休眠期,需要的溫度相對(duì)高一些,此時(shí)空氣相對(duì)濕度控制在85%~90%;草莓的果實(shí)膨大和成熟期,受溫度影響較大,濕度可控制在60%~70%。
根據(jù)這些控制要求,本文以草莓開花期的空氣濕度做試驗(yàn),用優(yōu)化的智能算法來控制,構(gòu)建了一個(gè)3層BP神經(jīng)網(wǎng)絡(luò)應(yīng)用到大棚空氣濕度的預(yù)測(cè)中,其中輸入層節(jié)點(diǎn)為2個(gè),隱含層節(jié)點(diǎn)為5個(gè),隱含層的激活函數(shù)為‘tansig’,輸出層節(jié)點(diǎn)為1個(gè),輸出層激活函數(shù)為‘logsig’。應(yīng)用中把太陽光照和棚內(nèi)空氣溫度兩個(gè)參數(shù)作為輸入變量,草莓所需要的的最適宜空氣濕度作為輸出變量來進(jìn)行仿真測(cè)試,仿真試驗(yàn)選取了冬季溫室草莓的30個(gè)數(shù)據(jù),前20個(gè)數(shù)據(jù)為訓(xùn)練數(shù)據(jù),后10個(gè)數(shù)據(jù)為測(cè)試數(shù)據(jù),為了更好地體現(xiàn)結(jié)果的優(yōu)良值,將BP網(wǎng)絡(luò)算法、線性PSO-BP網(wǎng)絡(luò)算法和非線性PSO-BP網(wǎng)絡(luò)算法的結(jié)果進(jìn)行對(duì)比,仿真結(jié)果見圖2~圖4。3種算法的平均誤差率見表1。
圖2 BP網(wǎng)絡(luò)預(yù)測(cè)輸出和目標(biāo)輸出相關(guān)誤差圖Fig.2 Error map between BP network prediction output and target output
圖3 線性 PSO-BP網(wǎng)絡(luò)預(yù)測(cè)輸出和目標(biāo)輸出及相關(guān)誤差圖Fig.3 Error map between linear PSO-BP network prediction output and target output
圖4 非線性PSO-BP網(wǎng)絡(luò)預(yù)測(cè)輸出和目標(biāo)輸出及相關(guān)誤差圖Fig.4 Error map between nonlinear PSO-BP network prediction output and target output
由表1可見,非線性PSO優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)在訓(xùn)練誤差上比其他2種算法小很多,表明非線性PSO-BP算法具有很強(qiáng)的學(xué)習(xí)能力和泛化能力;由圖4和表1可見,傳統(tǒng)BP容易陷入極值尤其是樣本的目標(biāo)輸出值超過了預(yù)測(cè)輸出值,誤差率也是3種算法最高的;線性PSO-BP網(wǎng)絡(luò)和非線性PSO-BP網(wǎng)絡(luò)整體看訓(xùn)練效果相近,但非線性PSO-BP網(wǎng)絡(luò)比線性的誤差率小,非線性PSO-BP網(wǎng)絡(luò)訓(xùn)練效果最好;非線性PSO-BP網(wǎng)絡(luò)相對(duì)誤差最小,精確度最高,全局搜索能力也較好。綜上所述,本文提出的優(yōu)化方案是可行的。
表1 3種算法平均誤差率比較
針對(duì)農(nóng)業(yè)種植空氣濕度的預(yù)測(cè),本文提出了用粒子群算法PSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的智能優(yōu)化算法。該算法融合了種群活動(dòng)機(jī)制與反向傳播神經(jīng)網(wǎng)絡(luò)的思想,在一定程度上提高了算法的全局搜索能力、收斂精度和速度,這樣以便較快地控制農(nóng)作物不同生長(zhǎng)時(shí)期對(duì)空氣濕度的需求,使農(nóng)作物擁有一個(gè)較好的生長(zhǎng)環(huán)境。