張坤鰲 趙 凱
(西安科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 陜西 西安 710054)
農(nóng)業(yè)技術(shù)水平和人工智能水平的不斷提高促進(jìn)了溫室農(nóng)業(yè)的迅速發(fā)展,溫室溫度預(yù)測(cè)模型日趨完善。但是,在溫室環(huán)境中,由于溫室環(huán)境是一個(gè)隨時(shí)間變化而緩慢變化的動(dòng)態(tài)環(huán)境,并且各種環(huán)境因子之間具有很強(qiáng)的耦合作用,一種環(huán)境因子往往隨著另一種環(huán)境因子的變化產(chǎn)生較大波動(dòng),所以建立精確的溫室氣候模型存在很大困難[1]。大量的理論和實(shí)踐研究結(jié)果表明[2-4]:在科學(xué)控制溫室環(huán)境的情況下,溫室農(nóng)業(yè)既可以實(shí)現(xiàn)農(nóng)作物的高產(chǎn)又可以保證農(nóng)作物的質(zhì)量,但是因?yàn)闇厥噎h(huán)境系統(tǒng)的復(fù)雜性,以及各種環(huán)境因子之間的耦合性等原因,溫室環(huán)境的最佳控制效果采用傳統(tǒng)的控制方法很難達(dá)到標(biāo)準(zhǔn)。
目前,溫室溫度預(yù)測(cè)模型的研究主要是針對(duì)能量和物質(zhì)平衡方程的研究[5-7],其中徑向基函數(shù)(Radial Basis Function,RBF)神經(jīng)網(wǎng)絡(luò)因?yàn)榫哂辛己玫姆蔷€性映射能力,以及在不使用先驗(yàn)知識(shí)的情況下,能快速對(duì)模型進(jìn)行無(wú)限逼近等特點(diǎn),成為目前應(yīng)用最為廣泛的溫室溫度預(yù)測(cè)模型[8-10]。但在實(shí)際模型中,該模型的隱層節(jié)點(diǎn)個(gè)數(shù)、隱層基函數(shù)中心和隱層場(chǎng)域?qū)挾热齻€(gè)主要參數(shù)難以確定,預(yù)測(cè)精度也存在較大偏差。針對(duì)以上缺陷,夏爽等[11]使用粒子群-RBF神經(jīng)網(wǎng)絡(luò)算法設(shè)計(jì)溫室溫度預(yù)測(cè)應(yīng)用模型,但隨著樣本數(shù)據(jù)、模型迭代次數(shù)和粒子規(guī)模的不斷增加,預(yù)測(cè)模型易陷入局部最優(yōu);王媛媛[12]使用改進(jìn)粒子群-RBF神經(jīng)網(wǎng)絡(luò)算法,提升了網(wǎng)絡(luò)模型的預(yù)測(cè)精度,但該算法并未對(duì)隱層節(jié)點(diǎn)個(gè)數(shù)進(jìn)行優(yōu)化;段其昌等[13]使用改進(jìn)粒子群-RBF神經(jīng)網(wǎng)絡(luò)算法,引入慣性權(quán)值和收縮因子,使模型的學(xué)習(xí)速度變快的同時(shí),預(yù)測(cè)精度也有所提高,但在確定隱層節(jié)點(diǎn)個(gè)數(shù)時(shí),采用了最近鄰聚類(lèi)算法,導(dǎo)致模型的學(xué)習(xí)時(shí)間延長(zhǎng)。
針對(duì)上述問(wèn)題,本文在采集溫室內(nèi)外主要環(huán)境因子的前提下,使用改進(jìn)收縮因子粒子群-RBF神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型,指導(dǎo)農(nóng)戶在室內(nèi)環(huán)境不理想的情況下,合理地調(diào)整溫室裝置,從而提高農(nóng)作物的質(zhì)量和產(chǎn)量,避免了農(nóng)戶的經(jīng)濟(jì)損失。
RBF神經(jīng)網(wǎng)絡(luò)是一個(gè)前饋型神經(jīng)網(wǎng)絡(luò),具有單個(gè)隱含層,可以任意精度逼近任何連續(xù)函數(shù),其包括輸入層、隱含層和輸出層[14]。輸入層到隱含層是非線性變換,隱含層到輸出層是線性變換,圖1為RBF神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖。
圖1 RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
RBF神經(jīng)網(wǎng)絡(luò)完成如下非線性映射:
(1)
隱含層采用高斯核函數(shù)作為基函數(shù),其定義如下:
(2)
RBF神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)分為結(jié)構(gòu)設(shè)計(jì)和參數(shù)設(shè)計(jì):
1) 結(jié)構(gòu)設(shè)計(jì):使用聚類(lèi)算法劃分所有的輸入樣本,確定合適的隱層節(jié)點(diǎn)個(gè)數(shù)m。
2) 參數(shù)設(shè)計(jì):用于求解網(wǎng)絡(luò)的各個(gè)參數(shù)。由式(1)、式(2)分析可知,網(wǎng)絡(luò)參數(shù)包括徑向基函數(shù)的中心cj、場(chǎng)域?qū)挾圈膉和隱含層到輸出層的連接權(quán)值wj。
研究表明,隱層節(jié)點(diǎn)個(gè)數(shù)體現(xiàn)了RBF神經(jīng)網(wǎng)絡(luò)的非線性映射能力[15]。當(dāng)隱層節(jié)點(diǎn)數(shù)量過(guò)少時(shí),網(wǎng)絡(luò)的收斂誤差將增加。相反,當(dāng)隱層節(jié)點(diǎn)數(shù)量過(guò)多時(shí),網(wǎng)絡(luò)的訓(xùn)練時(shí)間將延長(zhǎng),導(dǎo)致預(yù)測(cè)結(jié)果過(guò)度擬合,從而降低網(wǎng)絡(luò)的泛化能力。因此,為克服人工選取隱層節(jié)點(diǎn)個(gè)數(shù)帶來(lái)的弊端,本文采用最大最小距離算法確定合適的隱層節(jié)點(diǎn)個(gè)數(shù)。
在處理分類(lèi)模式時(shí),最大最小距離算法以歐式距離為基礎(chǔ),根據(jù)最大距離原則選擇新的聚類(lèi)中心,利用最小距離原則對(duì)模式進(jìn)行分類(lèi)。首先設(shè)定距離閾值,將初始的一個(gè)樣本對(duì)象設(shè)置為第一個(gè)聚類(lèi)中心。然后選擇距離第一個(gè)聚類(lèi)中心最遠(yuǎn)的樣本作為第二個(gè)聚類(lèi)中心,再確定其他聚類(lèi)中心,直到?jīng)]有新的聚類(lèi)中心產(chǎn)生。最后將剩余樣本根據(jù)最近鄰規(guī)則劃分到各聚類(lèi)中心對(duì)應(yīng)的類(lèi)別中。
算法描述:
1) 從n個(gè)樣本中,隨機(jī)選擇一個(gè)樣本,作為第一個(gè)聚類(lèi)中心c1。
2) 選取距離c1最遠(yuǎn)的樣本,作為第二個(gè)聚類(lèi)中心c2。
3) 計(jì)算其余樣本與c1、c2之間的距離,并求出最小值,即:
(3)
di=min[di1,di2]i=1,2,…,n
(4)
4) 若:(θ為比例系數(shù))
(5)
則第三個(gè)聚類(lèi)中心c3為xi相應(yīng)的樣本,跳轉(zhuǎn)到步驟5),判斷是否含有新的聚類(lèi)中心,否則跳轉(zhuǎn)到步驟6)。
5) 假設(shè)已經(jīng)有k個(gè)聚類(lèi)中心,計(jì)算每個(gè)樣本與所有聚類(lèi)中心的距離,并判斷:
(6)
若式(6)成立,則ck+1=xi,并循環(huán)該步驟,繼續(xù)判斷是否存在新的聚類(lèi)中心。
6) 經(jīng)過(guò)判斷,確定不再有新的聚類(lèi)中心時(shí),將剩余樣本根據(jù)最近鄰規(guī)則,劃分到各類(lèi)中,即計(jì)算:
(7)
通過(guò)上述算法確定RBF神經(jīng)網(wǎng)絡(luò)隱層節(jié)點(diǎn)個(gè)數(shù)后,為了使RBF神經(jīng)網(wǎng)絡(luò)的訓(xùn)練性能進(jìn)一步提高,即尋找到最優(yōu)的RBF神經(jīng)網(wǎng)絡(luò)參數(shù),本文提出一種改進(jìn)收縮因子粒子群算法。
(1) 粒子群優(yōu)化算法。粒子群優(yōu)化(Particle Swarm Optimization,PSO)算法是Kennedy和Eberhart在人工生命研究結(jié)果的啟發(fā)下,通過(guò)模擬鳥(niǎo)群覓食過(guò)程中遷徙和群聚行為,提出的一種基于群體智能的全局隨機(jī)搜索算法[16]。假設(shè)搜索空間為D維,粒子總數(shù)為N,第i個(gè)粒子在D維空間中的位置為xi=(xi1,xi2,…,xiD),飛行速度為vi=(vi1,vi2,…,viD),粒子個(gè)體經(jīng)歷過(guò)的最好位置為pbesti=(pi1,pi2,…,piD),種群經(jīng)歷過(guò)的最好位置為gbest=(g1,g2,…,gD)。PSO算法流程如圖2所示。
圖2 PSO算法流程圖
粒子i的速度和位置更新公式為:
(8)
(9)
為解決此問(wèn)題,許榮斌等[17]提出新的慣性權(quán)重非線性遞減策略,使算法在迭代前期全局收斂能力強(qiáng),迭代后期局部收斂能力強(qiáng)。新的慣性權(quán)重更新公式為:
(10)
式中:wmin為最小慣性權(quán)重;wmax為最大慣性權(quán)重;t為當(dāng)前迭代次數(shù);T為最大迭代次數(shù);η為曲線調(diào)整因子。
(2) 引入收縮因子的PSO算法。Clerc為了使粒子整體的飛行速度得到有效控制,構(gòu)造了引入收縮因子的PSO算法(CFA PSO算法)[18],使算法能在全局探測(cè)和局部開(kāi)采間達(dá)到有效的平衡。其改進(jìn)公式如下:
(11)
式中:k稱(chēng)為收縮因子。
(12)
(3) 改進(jìn)CFA PSO算法。分析式(8)可知,粒子速度的更新公式由“慣性”部分、“認(rèn)知”部分和“社會(huì)”部分組成。“慣性”部分表明粒子對(duì)當(dāng)前速度繼承的程度;“認(rèn)知”部分表明粒子向自身最佳位置逼近的趨勢(shì);“社會(huì)”部分表明粒子向群體最佳位置逼近的趨勢(shì)。
當(dāng)問(wèn)題空間較大時(shí),為了平衡算法的全局探測(cè)能力和局部挖掘能力,在算法迭代前期,粒子的全局尋優(yōu)能力較強(qiáng),在算法迭代后期,粒子的局部尋優(yōu)能力較強(qiáng)。本文首先對(duì)粒子更新公式的“慣性”部分進(jìn)行改進(jìn),引用式(10)作為改進(jìn)算法的第一步,使算法在迭代前期w值較大,在迭代后期w值較小。
此外,為了有效地控制粒子整體的飛行速度,并確保算法在全局探測(cè)和局部挖掘之間實(shí)現(xiàn)有效平衡,本文結(jié)合CFA PSO算法,提出一種新的改進(jìn)CFA PSO算法,其粒子速度更新公式為:
(13)
改進(jìn)CFA PSO-RBF神經(jīng)網(wǎng)絡(luò)模型的實(shí)現(xiàn)步驟如下:
1) 采集樣本,對(duì)樣本進(jìn)行歸一化處理。
2) 使用最大最小距離算法,對(duì)樣本數(shù)據(jù)進(jìn)行聚類(lèi),確定隱層節(jié)點(diǎn)個(gè)數(shù)。
3) 初始化粒子群:設(shè)定粒子個(gè)數(shù),迭代次數(shù),曲線調(diào)整因子,隨機(jī)產(chǎn)生各粒子的初始速度vi和初始位置xi。
4) 比較每個(gè)粒子和它經(jīng)歷的最好位置的適應(yīng)度,更新pbesti。
5) 比較每個(gè)粒子與其群體經(jīng)歷的最好位置的適應(yīng)度,更新gbest。
6) 更新粒子的位置和速度。
7) 重復(fù)步驟4)-步驟6),直到達(dá)到計(jì)算精度為止。
8) 解碼群體經(jīng)歷的最好位置,并將該值作為RBF神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)參數(shù),對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
本文實(shí)驗(yàn)數(shù)據(jù)來(lái)源于涇陽(yáng)欣悅蔬菜示范園,園區(qū)已建成大棚64個(gè),日光溫室8個(gè),全部采用鋼架結(jié)構(gòu),大棚內(nèi)設(shè)施包括溫室檢測(cè)系統(tǒng)、遮陽(yáng)系統(tǒng)、通風(fēng)系統(tǒng)等。本文以1小時(shí)為時(shí)間間隔,采集2018年12月15日至2019年1月13日之間的室外氣壓、溫度、相對(duì)濕度、降水量、風(fēng)力數(shù)據(jù),以及室內(nèi)溫度、濕度數(shù)據(jù)。每個(gè)影響因子每天共采集24組數(shù)據(jù),共計(jì)30天,從該數(shù)據(jù)中選擇前520組數(shù)據(jù)作為訓(xùn)練樣本,剩余200組數(shù)據(jù)作為測(cè)試樣本。
不同的量綱和量綱單位會(huì)產(chǎn)生不同的評(píng)價(jià)指標(biāo),從而影響數(shù)據(jù)分析的結(jié)果。為了消除量綱對(duì)指標(biāo)的影響,本文對(duì)數(shù)據(jù)進(jìn)行歸一化處理,使樣本數(shù)據(jù)映射到[0,1]之間,歸一化公式為:
(14)
式中:xi為輸入樣本數(shù)據(jù);xmin、xmax分別為輸入樣本數(shù)據(jù)的最小值和最大值。
(1) RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)求解。通過(guò)獲取樣本數(shù)據(jù)的規(guī)模,運(yùn)用最大最小距離算法確定隱層節(jié)點(diǎn)個(gè)數(shù)為12個(gè),因而確定RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為6-12-1,即RBF神經(jīng)網(wǎng)絡(luò)輸入層特征為6個(gè),分別是室外氣壓、溫度、相對(duì)濕度、降水量、風(fēng)力數(shù)據(jù)和室內(nèi)濕度數(shù)據(jù),隱層節(jié)點(diǎn)個(gè)數(shù)為12個(gè),輸出層特征為1個(gè),特征為室內(nèi)溫度數(shù)據(jù)。
(2) 改進(jìn)CFA PSO算法各參數(shù)的初始值求解。在初始化粒子群階段,設(shè)定粒子個(gè)數(shù)為35個(gè),由于PSO算法的迭代次數(shù),會(huì)影響模型的訓(xùn)練時(shí)間,為提高模型的訓(xùn)練效率,減少模型的訓(xùn)練耗時(shí),本實(shí)驗(yàn)預(yù)設(shè)置算法的最大迭代次數(shù)為T(mén)=100,改進(jìn)CFA PSO算法的適應(yīng)值變化曲線如圖3所示。
圖3 改進(jìn)CFA PSO算法適應(yīng)度變化曲線圖
由圖3可知,當(dāng)?shù)螖?shù)為40時(shí),改進(jìn)CFA PSO算法的適應(yīng)度曲線基本收斂,算法適應(yīng)度達(dá)到最優(yōu)值,如果繼續(xù)搜索,算法的搜索時(shí)間開(kāi)銷(xiāo)將會(huì)增加,因此本文實(shí)驗(yàn)中的進(jìn)化迭代次數(shù)均設(shè)置為40次。
在改進(jìn)CFA PSO算法中,收縮因子和慣性權(quán)重控制整個(gè)粒子的飛行速度和尋優(yōu)能力,由式(13)知,加速常數(shù)c1、c2和最大、最小慣性權(quán)重wmax、wmin確定時(shí),曲線調(diào)整因子η是確定整個(gè)粒子飛行速度和尋優(yōu)能力的關(guān)鍵。一般情況下,wmax=0.9,wmin=0.4,c1=2.8,c2=1.3,圖4為η取不同值時(shí),收縮因子結(jié)合慣性權(quán)重的遞減函數(shù)對(duì)比曲線。
圖4 收縮因子結(jié)合慣性權(quán)重遞減函數(shù)對(duì)比曲線
由圖4可知,不同η值使算法的尋優(yōu)能力不同。當(dāng)η=1.6時(shí),與線性遞減函數(shù)變化曲線相比,改進(jìn)CFA PSO算法的收縮因子結(jié)合慣性權(quán)重的非線性曲線,在保證粒子整體飛行速度的基礎(chǔ)上,在算法搜索前期,獲得較大值概率較高,有利于算法的全局搜索。在算法搜索后期,獲得較小值概率較高,有利于算法的局部搜索。
綜上,確定改進(jìn)CFA PSO算法的特征參數(shù)分別是粒子個(gè)數(shù)為35個(gè),迭代次數(shù)為40次,wmax=0.9,wmin=0.4,c1=2.8,c2=1.3,η=1.6。
為檢驗(yàn)神經(jīng)網(wǎng)絡(luò)模型的預(yù)測(cè)效果,本文采用平均絕對(duì)誤差(MAE)、均方誤差(MSE)和均方根誤差(RMSE)作為神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)性能的評(píng)價(jià)標(biāo)準(zhǔn)。各評(píng)價(jià)指標(biāo)計(jì)算公式如下:
(15)
(16)
(17)
對(duì)RBF、PSO-RBF、CFA PSO-RBF、改進(jìn)CFA PSO-RBF神經(jīng)網(wǎng)絡(luò)模型的測(cè)試樣本進(jìn)行預(yù)測(cè),得到的預(yù)測(cè)結(jié)果如圖5所示。
圖5 各模型對(duì)測(cè)試樣本的預(yù)測(cè)結(jié)果
由圖5可知,相對(duì)于RBF、PSO-RBF、CFA PSO-RBF,改進(jìn)CFA PSO-RBF神經(jīng)網(wǎng)絡(luò)模型的預(yù)測(cè)效果明顯更優(yōu),預(yù)測(cè)值和真實(shí)值之間的誤差更小。這主要是因?yàn)楦倪M(jìn)的CFA PSO-RBF結(jié)合了PSO-RBF和CFA PSO-RBF的優(yōu)點(diǎn),在選取了合適的參數(shù)后,一方面使算法的尋優(yōu)能力處于前期注重全局尋優(yōu),后期注重局部尋優(yōu),另一方面由于控制了粒子的速度,使算法能達(dá)到全局性與局部性的平衡。
為進(jìn)一步評(píng)價(jià)預(yù)測(cè)精度,對(duì)4種模型的預(yù)測(cè)精度性能指標(biāo)計(jì)算如表1所示。
表1 各模型的預(yù)測(cè)精度性能指標(biāo)
由表1可知,改進(jìn)CFA PSO-RBF神經(jīng)網(wǎng)絡(luò)模型的MAE、MSE、RMSE值均低于RBF、PSO-RBF和CFA PSO-RBF神經(jīng)網(wǎng)絡(luò)模型。實(shí)驗(yàn)證明,在神經(jīng)網(wǎng)絡(luò)參數(shù)選擇合理的情況下,與RBF、PSO-RBF和CFA PSO-RBF神經(jīng)網(wǎng)絡(luò)模型相比,改進(jìn)CFA PSO-RBF神經(jīng)網(wǎng)絡(luò)模型具有更好的預(yù)測(cè)效果。
本文在對(duì)溫室內(nèi)外氣象因子進(jìn)行分析的基礎(chǔ)上,選擇影響溫室內(nèi)外的主要?dú)庀笠蜃幼鳛檩斎肓?,以溫室?nèi)的溫度作為輸出量,首先使用最大最小距離算法,計(jì)算出隱層節(jié)點(diǎn)個(gè)數(shù),然后使用改進(jìn)CFA PSO算法對(duì)RBF神經(jīng)網(wǎng)絡(luò)隱層場(chǎng)中心、場(chǎng)域?qū)挾冗M(jìn)行優(yōu)化,建立溫室溫度預(yù)測(cè)模型。實(shí)驗(yàn)結(jié)果表明,改進(jìn)CFA PSO-RBF溫室溫度預(yù)測(cè)模型的預(yù)測(cè)精度有了明顯提高,預(yù)測(cè)結(jié)果在溫室溫度管理方面有一定的參考價(jià)值。