本發(fā)明屬于設(shè)施農(nóng)業(yè)環(huán)境預(yù)測(cè)領(lǐng)域,尤其是一種基于滾動(dòng)bp神經(jīng)網(wǎng)絡(luò)的溫室小氣候中長(zhǎng)期預(yù)測(cè)方法。
背景技術(shù):
溫室的高效生產(chǎn)依賴于適宜的溫室小氣候環(huán)境,建立高精度的溫室小氣候中長(zhǎng)期預(yù)測(cè)模型對(duì)實(shí)現(xiàn)溫室環(huán)境優(yōu)化調(diào)控具有重要意義。目前溫室中常用的閾值調(diào)控法雖然簡(jiǎn)單易行,但能耗高、系統(tǒng)穩(wěn)定性差?;诒壤?積分-微分(proportion-integral-derivative,pid)控制器和模型預(yù)測(cè)控制(modelpredictivecontrol,mpc)等自動(dòng)控制方法,可靠性高、能耗較低,但需要提前預(yù)測(cè)多個(gè)時(shí)段的環(huán)境參數(shù)。溫室小氣候模擬模型主要分為兩類:一是機(jī)理模型,其參數(shù)較難確定,不適用于溫室環(huán)境控制。二是實(shí)驗(yàn)?zāi)P?,也稱系統(tǒng)辨識(shí),可以對(duì)模型參數(shù)進(jìn)行在線調(diào)整,以滿足控制的要求。實(shí)驗(yàn)?zāi)P椭谐S玫氖侨斯ど窠?jīng)網(wǎng)絡(luò)模型,由于bp神經(jīng)網(wǎng)絡(luò)簡(jiǎn)單且容錯(cuò)能力強(qiáng),在溫室小氣候預(yù)測(cè)中應(yīng)用最為廣泛。
目前國(guó)內(nèi)外學(xué)者針對(duì)不同溫室環(huán)境建立了基于bp神經(jīng)網(wǎng)絡(luò)的小氣候模擬模型,取得了良好的效果,研究表明人工神經(jīng)網(wǎng)絡(luò)在溫室小氣候環(huán)境預(yù)測(cè)方面切實(shí)可行,但這些預(yù)測(cè)模型多數(shù)只能進(jìn)行單步預(yù)測(cè),即短期預(yù)測(cè),無(wú)法實(shí)現(xiàn)中長(zhǎng)期預(yù)測(cè),不能滿足優(yōu)化調(diào)控的要求。另外,采用bp神經(jīng)網(wǎng)絡(luò)建模具有一定的優(yōu)勢(shì),但是其也有一些缺陷與不足,如易陷入局部最小值、過(guò)分依賴初始權(quán)值的選取以及泛化能力差等問(wèn)題,因此bp神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的精度仍有很大的提升空間。以往的很多研究者針對(duì)bp神經(jīng)網(wǎng)絡(luò)的缺陷沒(méi)有提出改進(jìn)的方法,僅選取最優(yōu)的結(jié)果展示出來(lái),事實(shí)上這些結(jié)果在一定程度上并沒(méi)有說(shuō)服力。如何提高bp神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)精度,并實(shí)現(xiàn)溫室小氣候的中長(zhǎng)期預(yù)測(cè),值得進(jìn)一步研究和探討。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所解決的技術(shù)問(wèn)題在于提供一種基于滾動(dòng)bp神經(jīng)網(wǎng)絡(luò)的溫室小氣候中長(zhǎng)期預(yù)測(cè)方法,根據(jù)預(yù)測(cè)時(shí)間構(gòu)建一個(gè)滾動(dòng)的bp神經(jīng)網(wǎng)絡(luò)群,將前一個(gè)網(wǎng)絡(luò)的輸出作為后一個(gè)網(wǎng)絡(luò)的部分輸入進(jìn)行滾動(dòng)式的訓(xùn)練和預(yù)測(cè),有效提高溫室小氣候的預(yù)測(cè)精度。
實(shí)現(xiàn)本發(fā)明目的的技術(shù)解決方案為:
基于滾動(dòng)bp神經(jīng)網(wǎng)絡(luò)的溫室小氣候中長(zhǎng)期預(yù)測(cè)方法,包括以下步驟:
步驟1:建立初始bp神經(jīng)網(wǎng)絡(luò)f1,設(shè)當(dāng)前時(shí)刻為t,輸入t時(shí)刻的溫室內(nèi)部溫濕度,輸出預(yù)測(cè)的t+1時(shí)刻的溫室內(nèi)部溫濕度,并得到f1的網(wǎng)絡(luò)參數(shù);
步驟2:建立滾動(dòng)的bp神經(jīng)網(wǎng)絡(luò)群,包括n-1個(gè)神經(jīng)網(wǎng)絡(luò)fn,每個(gè)神經(jīng)網(wǎng)絡(luò)fn包含訓(xùn)練集train_xn和測(cè)試集test_xn,相鄰兩個(gè)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練集和測(cè)試集之間均相隔一個(gè)時(shí)刻,其中,train_xn表示t+n-1時(shí)刻的訓(xùn)練集,test_xn表示t+n-1時(shí)刻的測(cè)試集,n≥2;
步驟3:利用train_xn和網(wǎng)絡(luò)參數(shù)結(jié)合梯度下降法訓(xùn)練fn模型,訓(xùn)練完成后,再將train_xn輸入到fn模型中,輸出模擬結(jié)果train_yn;將test_xn輸入到fn模型中,輸出預(yù)測(cè)結(jié)果test_yn;
步驟4:令n=n+1,轉(zhuǎn)到步驟3。
進(jìn)一步的,本發(fā)明的基于滾動(dòng)bp神經(jīng)網(wǎng)絡(luò)的溫室小氣候中長(zhǎng)期預(yù)測(cè)方法,步驟1具體包括:
步驟1-1:基于無(wú)監(jiān)督學(xué)習(xí)模型對(duì)t時(shí)刻的溫室內(nèi)部溫濕度進(jìn)行預(yù)訓(xùn)練,抽取輸入數(shù)據(jù)的特征,并重構(gòu)后輸出;
步驟1-2:將數(shù)據(jù)的特征作為bp神經(jīng)網(wǎng)絡(luò)的初始化參數(shù),進(jìn)行有監(jiān)督的目標(biāo)學(xué)習(xí),采用改進(jìn)的局部粒子群優(yōu)化方法結(jié)合遺傳算法優(yōu)化該bp神經(jīng)網(wǎng)絡(luò)的權(quán)重和閾值參數(shù);
步驟1-3:采用最優(yōu)權(quán)重和閾值參數(shù)建立初始bp神經(jīng)網(wǎng)絡(luò)f1,輸出預(yù)測(cè)的t+1時(shí)刻的溫室內(nèi)部溫濕度。
進(jìn)一步的,本發(fā)明的基于滾動(dòng)bp神經(jīng)網(wǎng)絡(luò)的溫室小氣候中長(zhǎng)期預(yù)測(cè)方法,步驟1-1所述的對(duì)輸入數(shù)據(jù)重構(gòu)的方法具體為:將輸入層與隱藏層之間的權(quán)重和閾值{w(1),b(1)}作為編碼器,編碼函數(shù)采用sigmoid函數(shù);將隱藏層與輸出層之間的權(quán)重和閾值{w(2),b(2)}作為譯碼器,譯碼函數(shù)采用tanh函數(shù)。
進(jìn)一步的,本發(fā)明的基于滾動(dòng)bp神經(jīng)網(wǎng)絡(luò)的溫室小氣候中長(zhǎng)期預(yù)測(cè)方法,步驟1-2的具體步驟為:
步驟1-2-1:將種群分為兩個(gè)子群,在spmd并行結(jié)構(gòu)中同時(shí)進(jìn)行計(jì)算,初始化種群速度和位置、學(xué)習(xí)率c1和c2、慣性權(quán)重;
步驟1-2-2:將次數(shù)低于平均值的粒子次數(shù)清零,全局最優(yōu)賦給子群全局最優(yōu),即badnum[n]=0,plg=pg,badnum為粒子次數(shù),n為次數(shù)低于平均數(shù)的粒子編號(hào),plg為子群全局最優(yōu),pg為全局最優(yōu);
步驟1-2-3:更新粒子的速度和位置:
vi(t+1)=ωvi(t)+c1r1(pavg-xi(t))+c2r2(plg-xi(t)),xi(t+1)=xi(t)+vi(t+1),其中,i=1,2,…,n,t為當(dāng)前迭代次數(shù),ω是慣性權(quán)重,c1、c2是加速因子,r1、r2是[0,1]區(qū)間的隨機(jī)數(shù),vi(t)為粒子原速度,vi(t+1)為更新后的粒子速度,pavg為個(gè)體極值中心點(diǎn),plg為每個(gè)子群的全局最優(yōu)位置,xi(t)為粒子原位置,xi(t+1)為更新后的粒子位置;
步驟1-2-4:引入交叉算子,若產(chǎn)生的隨機(jī)數(shù)小于交叉概率pc,則兩個(gè)子群執(zhí)行交叉操作:xik=plg1k,xjl=plg2l,其中,xik為第一個(gè)子群中第i個(gè)粒子位置的第k維元素,plg1k為第一個(gè)子群全局最優(yōu)位置的第k維元素,xjl為第二個(gè)子群中第j個(gè)粒子位置的第l維元素,plg2l為第二個(gè)子群全局最優(yōu)位置的第l維元素,i、j=1,2,…,n/2且i≠j,k∈[(in+1)*hn+1,d],l∈[1,(in+1)*hn],in為神經(jīng)網(wǎng)絡(luò)的輸入層神經(jīng)元個(gè)數(shù),hn為隱藏層神經(jīng)元個(gè)數(shù),d為粒子的維度,并計(jì)算每個(gè)粒子的適應(yīng)度j(i),若隨機(jī)數(shù)大于交叉概率pc,則不進(jìn)行任何操作;
步驟1-2-5:更新局部最優(yōu)pi,若更新后的粒子位置優(yōu)于原來(lái)的粒子位置,則將新粒子位置作為該粒子的pi,并作為本次迭代中的全局最優(yōu)plg,更新個(gè)體機(jī)制中心點(diǎn)pavg,計(jì)算每個(gè)子群平均適應(yīng)度f(wàn)it_avg,若更新后的粒子位置未優(yōu)于原來(lái)的粒子位置,則不進(jìn)行任何操作;
步驟1-2-6:引入變異算子,若j(i)<fit_avg,則令badnum(i)+1,若badnum(i)≥badnumlimit,則隨機(jī)初始化粒子的位置和速度:xid=a+(b-a)*rand,vid=m+(n-m)*rand,其中d=1,2,…,d,a和b是限定粒子的最小和最大位置,m和n是限定粒子的最小和最大速度,rand為[0,1)之間的均勻隨機(jī)數(shù);
步驟1-2-7:判斷是否達(dá)到預(yù)設(shè)的內(nèi)部迭代次數(shù),若是,則比較兩子群的子群最優(yōu),獲得全局最優(yōu),若否,則轉(zhuǎn)步驟1-2-3;
步驟1-2-8:判斷是否達(dá)到最大迭代次數(shù)或滿足gbest(n)-gbest(n-4)<=0.0001,若是,則停止迭代,若否,則磚步驟1-2-2。
進(jìn)一步的,本發(fā)明的基于滾動(dòng)bp神經(jīng)網(wǎng)絡(luò)的溫室小氣候中長(zhǎng)期預(yù)測(cè)方法,步驟1的預(yù)測(cè)公式為:
其中,(p)t為t時(shí)刻環(huán)境參數(shù),(tin)t為t時(shí)刻溫室實(shí)測(cè)溫度,(hin)t為t時(shí)刻溫室實(shí)測(cè)濕度,
進(jìn)一步的,本發(fā)明的基于滾動(dòng)bp神經(jīng)網(wǎng)絡(luò)的溫室小氣候中長(zhǎng)期預(yù)測(cè)方法,步驟2中的一個(gè)時(shí)刻為15min。
進(jìn)一步的,本發(fā)明的基于滾動(dòng)bp神經(jīng)網(wǎng)絡(luò)的溫室小氣候中長(zhǎng)期預(yù)測(cè)方法,訓(xùn)練集train_xn包括t+n-1時(shí)刻的溫室外部環(huán)境影響因素(p)t+n-1和神經(jīng)網(wǎng)絡(luò)fn-1的訓(xùn)練集模擬結(jié)果train_yn-1,其中train_yn-1包括預(yù)測(cè)的t+n-1時(shí)刻的溫室內(nèi)部溫濕度。
進(jìn)一步的,本發(fā)明的基于滾動(dòng)bp神經(jīng)網(wǎng)絡(luò)的溫室小氣候中長(zhǎng)期預(yù)測(cè)方法,滾動(dòng)的bp神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)公式為:
其中,(p)t+n-1為t+n-1時(shí)刻的環(huán)境參數(shù),
本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:
1、本發(fā)明的方法可連續(xù)預(yù)測(cè)未來(lái)6-12小時(shí)的溫室小氣候,實(shí)驗(yàn)結(jié)果表明,與傳統(tǒng)的bp單步提前滾動(dòng)預(yù)測(cè)模型相比,滾動(dòng)bp模型預(yù)測(cè)未來(lái)6小時(shí)溫濕度誤差可降低50%以上,大大降低了中長(zhǎng)期滾動(dòng)預(yù)測(cè)的累計(jì)誤差,能夠較準(zhǔn)確地預(yù)測(cè)不同季節(jié)不同地域下的溫室中長(zhǎng)期環(huán)境變化趨勢(shì),為制定合理的小氣候調(diào)控方案提供了依據(jù)。
2、本發(fā)明的方法第一階段采用改進(jìn)的bp神經(jīng)網(wǎng)絡(luò),實(shí)驗(yàn)結(jié)果表明,與初始神經(jīng)網(wǎng)絡(luò)模型采用傳統(tǒng)bp網(wǎng)絡(luò)相比,本發(fā)明提出的滾動(dòng)bp模型預(yù)測(cè)未來(lái)6小時(shí)溫濕度誤差可降低9.3%~45%,說(shuō)明改進(jìn)的bp神經(jīng)網(wǎng)絡(luò)是十分有效的,可切實(shí)提高滾動(dòng)bp模型的整體預(yù)測(cè)精度。
3、本發(fā)明的方法首次將無(wú)監(jiān)督學(xué)習(xí)模型用于溫室小氣候中長(zhǎng)期預(yù)測(cè)中,實(shí)驗(yàn)結(jié)果表明,預(yù)測(cè)誤差降低了10%左右,運(yùn)行效率提高了20%以上。
4、本發(fā)明的方法采用改進(jìn)的局部粒子群優(yōu)化方法對(duì)bp神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,與標(biāo)準(zhǔn)的局部粒子群優(yōu)化方法相比,預(yù)測(cè)溫濕度誤差降低10%~30%。
附圖說(shuō)明
圖1是本發(fā)明的基于滾動(dòng)bp神經(jīng)網(wǎng)絡(luò)的溫室小氣候中長(zhǎng)期預(yù)測(cè)方法的模型結(jié)構(gòu)圖;
圖2是本發(fā)明的改進(jìn)的局部粒子群優(yōu)化方法流程圖;
圖3是本發(fā)明的基于滾動(dòng)bp神經(jīng)網(wǎng)絡(luò)的溫室小氣候中長(zhǎng)期預(yù)測(cè)方法的第n個(gè)bp神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)和預(yù)測(cè)流程圖。
具體實(shí)施方式
下面詳細(xì)描述本發(fā)明的實(shí)施方式,所述實(shí)施方式的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過(guò)參考附圖描述的實(shí)施方式是示例性的,僅用于解釋本發(fā)明,而不能解釋為對(duì)本發(fā)明的限制。
基于滾動(dòng)bp神經(jīng)網(wǎng)絡(luò)的溫室小氣候中長(zhǎng)期預(yù)測(cè)方法的結(jié)構(gòu)圖如圖1所示,模型分為兩個(gè)階段,即建立初始bp神經(jīng)網(wǎng)絡(luò)和滾動(dòng)的bp神經(jīng)網(wǎng)絡(luò)群。第一階段的初始神經(jīng)網(wǎng)絡(luò)包括兩步,即ae無(wú)監(jiān)督學(xué)習(xí)和bp神經(jīng)網(wǎng)絡(luò)有監(jiān)督學(xué)習(xí)。第二階段構(gòu)建滾動(dòng)的bp神經(jīng)網(wǎng)絡(luò)群,fn-1(n>=2)模型的模擬輸出將作為fn模型的部分輸入,fn-1訓(xùn)練完成后,將fn-1的網(wǎng)絡(luò)參數(shù)作為fn的初始網(wǎng)絡(luò)參數(shù),由于連續(xù)兩個(gè)模型的預(yù)測(cè)時(shí)間間隔較短(15分鐘),網(wǎng)絡(luò)參數(shù)差異較小,而bp神經(jīng)網(wǎng)絡(luò)有較強(qiáng)的反向微調(diào)能力,因此f2~fn均采用bp神經(jīng)網(wǎng)絡(luò),進(jìn)一步縮小預(yù)測(cè)模型的誤差。
根據(jù)室內(nèi)外影響因子建立溫室小氣候的函數(shù)模型。設(shè)當(dāng)前時(shí)刻為t,連續(xù)預(yù)測(cè)t+1~t+n時(shí)刻的數(shù)據(jù),下式中,f1表示初始bp神經(jīng)網(wǎng)絡(luò),采用t時(shí)刻的真實(shí)數(shù)據(jù)進(jìn)行訓(xùn)練,網(wǎng)絡(luò)輸出為t+1時(shí)刻的溫室內(nèi)部溫濕度;fn表示滾動(dòng)bp神經(jīng)網(wǎng)絡(luò)中的第n(n>=2)個(gè)模型,采用t+n-1時(shí)刻的外界環(huán)境參數(shù)和fn-1模型室內(nèi)溫濕度模擬值進(jìn)行訓(xùn)練,網(wǎng)絡(luò)輸出為t+n時(shí)刻的溫室內(nèi)部溫濕度。
訓(xùn)練完n個(gè)網(wǎng)絡(luò)后,保存每個(gè)bp神經(jīng)網(wǎng)絡(luò)的權(quán)重和閾值參數(shù),再進(jìn)行中長(zhǎng)期滾動(dòng)預(yù)測(cè)。預(yù)測(cè)過(guò)程是將fn-1的預(yù)測(cè)結(jié)果作為fn的部分輸入進(jìn)行不斷滾動(dòng)預(yù)測(cè)。
其中,p代表外界環(huán)境參數(shù)和溫室內(nèi)部設(shè)備狀態(tài),包含[tout,hout,ws,sr,fs,vs]中的任意多個(gè)參數(shù),(p)t為t時(shí)刻環(huán)境參數(shù),(tin)t為t時(shí)刻溫室實(shí)測(cè)溫度,(hin)t為t時(shí)刻溫室實(shí)測(cè)濕度,
以下為實(shí)施滾動(dòng)bp神經(jīng)網(wǎng)絡(luò)溫室小氣候中長(zhǎng)期預(yù)測(cè)的具體過(guò)程。
1、構(gòu)建初始bp神經(jīng)網(wǎng)絡(luò)
初始bp神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果和網(wǎng)絡(luò)參數(shù)將分別作為第二個(gè)模型的部分輸入和初始網(wǎng)絡(luò)參數(shù),進(jìn)而影響滾動(dòng)bp模型整體的預(yù)測(cè)結(jié)果。為提高預(yù)測(cè)精度,初始bp神經(jīng)網(wǎng)絡(luò)首先利用無(wú)監(jiān)督學(xué)習(xí)模型ae進(jìn)行無(wú)監(jiān)督學(xué)習(xí),抽取數(shù)據(jù)的特征;然后將ae的特征表達(dá)作為bp神經(jīng)網(wǎng)絡(luò)的初始化參數(shù),再進(jìn)行有監(jiān)督的目標(biāo)學(xué)習(xí),并采用改進(jìn)的局部粒子群優(yōu)化方法來(lái)優(yōu)化該網(wǎng)絡(luò)權(quán)重和閾值。由于標(biāo)準(zhǔn)pso算法存在易早熟、穩(wěn)定性差等問(wèn)題,因此本發(fā)明提出了一種改進(jìn)的局部粒子群優(yōu)化方法(ipso)。最后將測(cè)試集輸入訓(xùn)練完成的模型中驗(yàn)證網(wǎng)絡(luò)的泛化能力。
(1)基于ae的bp神經(jīng)網(wǎng)絡(luò)初始參數(shù)優(yōu)化
首先建立三層自動(dòng)編碼器網(wǎng)絡(luò),輸入向量與輸出向量各元素相等。輸入層與隱藏層之間的權(quán)重和閾值{w(1),b(1)}為編碼器,編碼函數(shù)采用sigmoid函數(shù);隱藏層與輸出層之間的權(quán)重和閾值{w(2),b(2)}為譯碼器,譯碼函數(shù)采用tanh函數(shù),則有:
hi=sigmoid(w(1)xi+b(1))
yi=tanh(w(2)hi+b(2))
ae是一種無(wú)監(jiān)督學(xué)習(xí)模型,即訓(xùn)練數(shù)據(jù)是無(wú)標(biāo)簽的,輸出為輸入的重構(gòu),通過(guò)計(jì)算重構(gòu)誤差得到ae的權(quán)重參數(shù),獲得輸入數(shù)據(jù)的特征表達(dá)。重構(gòu)誤差函數(shù)j(θ)下式所示。
式中m為訓(xùn)練樣本的數(shù)量,n為網(wǎng)絡(luò)層數(shù),θ為神經(jīng)網(wǎng)絡(luò)的參數(shù),包括權(quán)重和偏置項(xiàng)。大括號(hào)內(nèi)第一項(xiàng)為模型輸出值和期望值之間的均方差,第二項(xiàng)l2為正則項(xiàng),用以減小權(quán)重變化幅度,避免過(guò)擬合。
(2)基于ipso算法的bp神經(jīng)網(wǎng)絡(luò)參數(shù)優(yōu)化
傳統(tǒng)bp神經(jīng)網(wǎng)絡(luò)利用梯度下降法進(jìn)行訓(xùn)練,局部微調(diào)性較強(qiáng),但易陷入局部最優(yōu)點(diǎn)。且由于網(wǎng)絡(luò)參數(shù)較多,粒子的維度較高,在一定的粒子種群數(shù)量下pso算法的性能會(huì)隨著被優(yōu)化問(wèn)題維數(shù)的增加而降低,為了不增加算法的復(fù)雜度并提高精度,本發(fā)明提出了ipso算法,包括:
(a)采取局部粒子群優(yōu)化方法。即通過(guò)并行算法將種群分成多個(gè)子群,粒子的速度基于個(gè)體最優(yōu)和子群全局最優(yōu)更新,以加強(qiáng)全局搜索能力,同時(shí)提高算法的效率。由于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)較為復(fù)雜,粒子維度較高,因此本發(fā)明的方法將粒子速度更新公式基于個(gè)體極值中心點(diǎn)和全局極值。個(gè)體極值中心點(diǎn)為pavg=[pavg1,pavg2,…,pavgd],其中
vi(t+1)=ωvi(t)+c1r1(pavg-xi(t))+c2r2(plg-xi(t))
其中,plg為每個(gè)子群的全局最優(yōu)位置。
(b)引入遺傳算法的交叉算子。即對(duì)粒子位置執(zhí)行交叉操作,以增加種群多樣性,避免算法早熟收斂。交叉時(shí)將網(wǎng)絡(luò)參數(shù)分為兩個(gè)部分,第一部分即神經(jīng)網(wǎng)絡(luò)輸入層到隱藏層的參數(shù){w(1),b(1)},第二部分為神經(jīng)網(wǎng)絡(luò)隱藏層到輸出層的參數(shù){w(2),b(2)}。設(shè)交叉概率為pc,第一個(gè)子群的個(gè)體xi=[xi1,xi2,…,xid]以pc的概率與第一個(gè)子群的全局最優(yōu)位置plg1第二部分參數(shù)交叉;第二個(gè)子群的個(gè)體xj=[xj1,xj2,…,xjd]以pc的概率與第二個(gè)子群的全局最優(yōu)位置plg2第一部分參數(shù)交叉,公式如下所示。
xik=plg1k
xjl=plg2l
其中,i,j=1,2,…,n/2且i≠j,k∈[(in+1)*hn+1,d],l∈[1,(in+1)*hn],in為神經(jīng)網(wǎng)絡(luò)的輸入層神經(jīng)元個(gè)數(shù),hn為隱藏層神經(jīng)元個(gè)數(shù),d為粒子的維度,即神經(jīng)網(wǎng)絡(luò)的權(quán)重和閾值參數(shù)個(gè)數(shù)之和,設(shè)輸出層神經(jīng)元個(gè)數(shù)為on,則d=in*hn+hn*on+hn+on。
(c)引入變異算子。種群進(jìn)化過(guò)程中如果某個(gè)粒子的適應(yīng)值多次低于群體平均適應(yīng)值,則表明粒子的進(jìn)化方向已經(jīng)遠(yuǎn)遠(yuǎn)偏離最優(yōu)解,不再適應(yīng)當(dāng)前的搜索環(huán)境,因此引入遺傳算法的變異算子對(duì)該粒子執(zhí)行變異操作,使陷入局部值的粒子跳出并繼續(xù)尋找最優(yōu)解,其他粒子則保持原狀態(tài)繼續(xù)進(jìn)化,直至收斂。變異方式下式所示,即按初始化方式改變粒子的位置和速度。
xid=a+(b-a)*rand
vid=m+(n-m)*rand
其中,d=1,2,…,d,a和b是限定粒子的最小和最大位置,也即神經(jīng)網(wǎng)絡(luò)參數(shù)的范圍;m和n是限定粒子的最小和最大速度,決定了粒子位子變化的幅度;rand為[0,1)之間的均勻隨機(jī)數(shù)。
ipso算法流程圖如圖2所示。具體算法流程如下:
步驟1:將種群分為兩個(gè)子群,在spmd并行結(jié)構(gòu)中同時(shí)計(jì)算,初始化種群速度和位置,初始化學(xué)習(xí)率c1、c2,慣性權(quán)重ω等參數(shù);
步驟2:把統(tǒng)計(jì)每個(gè)粒子低于平均值的次數(shù)清0,即badnum[n]=0;把全局最優(yōu)賦給子群全局最優(yōu)plg=pg;
步驟3:更新粒子的位置和速度;
步驟4:引入交叉算子。若產(chǎn)生的隨機(jī)數(shù)小于交叉概率pc,兩個(gè)子群分別執(zhí)行交叉操作;
步驟5:計(jì)算每個(gè)粒子的適應(yīng)度j(i);
步驟6:更新局部最優(yōu)pi,如果粒子位置更新后優(yōu)于原來(lái)的粒子,則將新的粒子的位置作為該粒子的pi;
步驟7:①更新子群全局最優(yōu),如果位置更新后粒子優(yōu)于原來(lái)的子群全局最優(yōu)位置,則將該粒子的位置作為本次迭代中的全局最優(yōu)plg;②更新個(gè)體極值中心點(diǎn)pavg。
步驟8:計(jì)算每個(gè)子群平均適應(yīng)度f(wàn)it_avg;
步驟9:引入變異算子:若j(i)<fit_avg,則令badnum(i)+1;若badnum(i)>=badnumlimit,則隨機(jī)初始化粒子的位置和速度。
步驟10:達(dá)到內(nèi)部迭代次數(shù)后,兩個(gè)子群交互,即比較子群最優(yōu),從而得到全局最優(yōu);未達(dá)到則跳轉(zhuǎn)步驟3;
步驟11:達(dá)到最大迭代次數(shù)或滿足gbest(n)-gbest(n-4)<=0.0001(即適應(yīng)度函數(shù)連續(xù)5次不變)即停止迭代。循環(huán)回到步驟2,直至滿足終止條件。
2、構(gòu)建滾動(dòng)的bp神經(jīng)網(wǎng)絡(luò)群
滾動(dòng)bp模型第二階段是建立滾動(dòng)的bp神經(jīng)網(wǎng)絡(luò)群,即連續(xù)建立n個(gè)單步預(yù)測(cè)模型,每個(gè)網(wǎng)絡(luò)模型都有對(duì)應(yīng)的訓(xùn)練集train_xn(n>=2)和測(cè)試集test_xn,train_xn和test_xn代表t+n-1時(shí)刻的數(shù)據(jù),包含(p)t+n-1、
第n個(gè)bp神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)和預(yù)測(cè)過(guò)程如圖3所示,采用t+n-1(n>=2)時(shí)刻訓(xùn)練集train_xn訓(xùn)練fn模型,該訓(xùn)練集包括t+n-1時(shí)刻的溫室內(nèi)外環(huán)境影響因素(p)t+n-1,以及fn-1模型的訓(xùn)練集的模擬結(jié)果train_yn-1。網(wǎng)絡(luò)輸出為t+n時(shí)刻的實(shí)測(cè)數(shù)據(jù),采用梯度下降法訓(xùn)練網(wǎng)絡(luò)。訓(xùn)練完成后將訓(xùn)練集train_xn再次輸入fn模型中,得到訓(xùn)練集的模擬結(jié)果train_yn,即t+n時(shí)刻的溫室內(nèi)部溫濕度模擬結(jié)果集,將作為train_xn+1的一部分用于訓(xùn)練fn+1模型。然后將t+n-1時(shí)刻測(cè)試集test_xn輸入模型中得到t+n時(shí)刻室內(nèi)溫濕度預(yù)測(cè)結(jié)果test_yn,并作為test_xn+1的一部分,用于預(yù)測(cè)t+n+1時(shí)刻的室內(nèi)溫濕度。如此滾動(dòng)訓(xùn)練和預(yù)測(cè),實(shí)現(xiàn)溫室小氣候的中長(zhǎng)期預(yù)測(cè)。訓(xùn)練多個(gè)網(wǎng)絡(luò)的目的是為了使訓(xùn)練集和測(cè)試集來(lái)源一致,提高預(yù)測(cè)模型的精度,即fn(n>=2)模型的訓(xùn)練樣本和測(cè)試樣本中的室內(nèi)溫濕度數(shù)據(jù)均來(lái)自fn-1模型的模擬結(jié)果。
以上所述僅是本發(fā)明的部分實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn),這些改進(jìn)應(yīng)視為本發(fā)明的保護(hù)范圍。