王 濤
(天津工業(yè)大學(xué)控制科學(xué)與工程學(xué)院,天津 300387)
中國作為一個人口大國,糧食儲備不可或缺,正確的儲糧方式可以保證糧食安全長久的儲備在糧倉中。調(diào)研報告顯示,我國的糧食每年在存放、運(yùn)輸、制作這三方面損失的總量就高達(dá)350億kg,造成了許多不必要的糧食浪費(fèi)[1],可見正確的儲糧方式是多么重要。糧倉溫度是糧情檢測系統(tǒng)的重要指標(biāo)之一,溫度的變化會直接影響糧倉內(nèi)糧食的質(zhì)量,嚴(yán)重時會導(dǎo)致糧食變質(zhì)[2],因此,精準(zhǔn)的預(yù)測糧倉內(nèi)的溫度具有重大的意義。近年來,已經(jīng)有不少關(guān)于糧倉溫度預(yù)測的研究,溫度預(yù)測方法主要包含灰色預(yù)測、模糊預(yù)測、支持向量機(jī)法、神經(jīng)網(wǎng)絡(luò)算法等[3-5]。但是每種單一的算法都有一定的局限性,例如單一的預(yù)測模型會增大非線性度,導(dǎo)致預(yù)測結(jié)果有較大偏差。BP神經(jīng)網(wǎng)絡(luò)是目前應(yīng)用最廣泛的預(yù)測方法,但是該模型收斂速度不理想,且易陷入局部最優(yōu)[6]。徑向基函數(shù)(RBF)神經(jīng)網(wǎng)絡(luò)的非線性擬合能力較強(qiáng),可以非常準(zhǔn)確的靠近一個非線性函數(shù),而且它的收斂速度也較快,因此選擇RBF神經(jīng)網(wǎng)絡(luò)建立糧倉溫度預(yù)測模型,并利用PSO算法和LM算法優(yōu)化該網(wǎng)絡(luò)的參數(shù),既能提高預(yù)測的精度,使得預(yù)測值更加準(zhǔn)確,也可以減少算法運(yùn)行時間,從而給糧食的儲備提供可靠的溫度保證。
RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包括輸入層、隱含層和輸出層[7]。其結(jié)構(gòu)如圖1所示,其中輸入層作為第一層是該網(wǎng)絡(luò)的輸入環(huán)節(jié);隱含層大多采用高斯函數(shù)作為神經(jīng)元激活函數(shù);第三層是輸出層,是該網(wǎng)絡(luò)的輸出。
圖1 RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
x(t)=(x1,x2,…,xN)T為輸入向量,輸入向量的個數(shù)設(shè)為5個,x1~x5分別代表糧倉內(nèi)濕度、糧倉外溫度、糧倉內(nèi)二氧化碳濃度、糧倉外濕度、糧倉外風(fēng)力大小。輸入層到隱含層的輸出為非線性激活函數(shù)hj(t):
(1)
式中,cj為第j個節(jié)點(diǎn)的中心;σj為第j個節(jié)點(diǎn)的寬度;||x(t)-cj(t)||是二者之間的歐氏距離;m是隱層節(jié)點(diǎn)的個數(shù)。對隱層神經(jīng)元的輸出進(jìn)行加權(quán)得到:
(2)
式中,w為權(quán)值;n為網(wǎng)絡(luò)輸出的數(shù)量。
RBF神經(jīng)網(wǎng)絡(luò)的參數(shù)中cj,σj,w需要通過學(xué)習(xí)訓(xùn)練確定,為了提高神經(jīng)網(wǎng)絡(luò)的總體性能,欲采用PSO算法分別尋優(yōu)來確定參數(shù)。
PSO算法的產(chǎn)生和鳥群覓食相關(guān)[8],假想一群鳥正在尋食,每一只鳥都可能找到食物,把鳥看成粒子的話,則每一個粒子都代表一個解,所有解中最好的一個解是食物的位置,每個粒子都會在該區(qū)域內(nèi)尋找食物的位置,并且每個粒子會在尋找食物的過程中得到自身離食物最相近的一個位置,這個位置稱個體極值;全體粒子在尋找過程中會得到的一個最好的位置稱為全局極值。通過這兩個位置,這些粒子就會不斷調(diào)整自己的速度和方向去接近食物所在的位置。
粒子通過這兩個極值位置來更新每個粒子自身的速度和位置,更新公式如下:
(3)
(4)
權(quán)重w的作用體現(xiàn)在收斂性能和收斂速度上。伴隨著w增大,粒子的全局收斂性能會提高;當(dāng)w減小時,局部收斂性能就會加強(qiáng)。因此動態(tài)調(diào)整w是目前比較常用的一種方法。本研究采取線性遞減權(quán)值法來動態(tài)更新w值[9],這樣既可以加強(qiáng)算法前期的全局收斂能力,也可以保證后期的局部收斂性能。常用的權(quán)值更新公式為:
(5)
式中,k表示目前的迭代次數(shù),kmax則為最大次數(shù);wmax和wmin代表最大和最小權(quán)重,一般wmax=0.9,wmin=0.4。改進(jìn)PSO算法流程圖如圖2所示。
圖2 PSO算法流程圖
動態(tài)更新權(quán)值后,算法的收斂性能和收斂速度都會提高,但是由于種群的限制,該算法仍面臨著陷入局部最優(yōu)的問題,LM算法是目前常用的訓(xùn)練網(wǎng)絡(luò)的算法,其迭代時間少,收斂速度快,可以很大程度上避免陷入局部最優(yōu)解。
LM算法結(jié)合了梯度下降法和高斯-牛頓法的長處[10]。其迭代公式為:
(6)
式中,uk為第k次迭代時的控制輸入序列;uk+1為下一時刻的控制輸入序列;μ為比例系數(shù);ek為網(wǎng)絡(luò)預(yù)測值與真實(shí)值之間的誤差;Ak為雅克比矩陣:
LM算法實(shí)現(xiàn)過程:
(1)確定初值x0,令k=0,μ=μ0。設(shè)置誤差許可值ε和調(diào)整系數(shù)β。
(2)根據(jù)誤差指數(shù)公式計算網(wǎng)絡(luò)的誤差指數(shù)。
(3)計算出雅克比矩陣,并將其代入到迭代公式中求得網(wǎng)絡(luò)權(quán)值和閾值的變化量,得到新的權(quán)值和閾值。
(4)若誤差指數(shù)小于誤差許可值,滿足設(shè)定要求,則直接跳到第六步,否則回到第二步重新計算誤差指數(shù)。
(5)把兩次得到的誤差指數(shù)相比較,如果k+1次的誤差指數(shù)小于第k次的誤差指數(shù),則輸出k=k+1,μ=μ/β,再返回第二步重新計算。反之μ=μ·β,uk+1=uk。
(6)結(jié)束。
LM算法雖然有著收斂快,精度高的特點(diǎn),但是該算法比較依賴初值的選取。為此,將上述兩種算法組合在一起,利用PSO算法收斂性能好的優(yōu)點(diǎn)迅速尋找最優(yōu)值,再用得到的值當(dāng)作LM算法的初值,LM算法的高精度尋優(yōu)進(jìn)一步減小了誤差[11]。PSO-LM算法的結(jié)合既解決了LM算法的初值問題,又很大程度上解決了PSO算法易陷入局部最優(yōu)的問題。
以糧倉溫度監(jiān)測系統(tǒng)為仿真算例,搭建RBF神經(jīng)網(wǎng)絡(luò),并用PSO-LM算法進(jìn)行優(yōu)化,采用改進(jìn)的RBF網(wǎng)絡(luò)對糧倉溫度進(jìn)行預(yù)測,圖3所示為糧倉溫度預(yù)測過程。
圖3 PSO-LM-RBF神經(jīng)網(wǎng)絡(luò)溫度預(yù)測流程
針對構(gòu)建的RBF神經(jīng)網(wǎng)絡(luò)采用PSO-LM算法優(yōu)化網(wǎng)絡(luò)參數(shù)。PSO算法的種群規(guī)模設(shè)置為30,學(xué)習(xí)因子c1=c2=2,w采用式(5)動態(tài)更新,r1=0.5,r2=0.6,由于迭代次數(shù)的選擇會影響訓(xùn)練時間,因此在用模型預(yù)測糧倉溫度前先預(yù)設(shè)最大迭代次數(shù)為100,圖4為進(jìn)行訓(xùn)練后得到的適應(yīng)度曲線。由圖4可以看出,當(dāng)?shù)?0次時,改進(jìn)算法的適應(yīng)度曲線已經(jīng)基本平穩(wěn),故最大迭代次數(shù)定為30次。LM算法誤差許可值設(shè)為10-6,阻尼因子μ0=0.001,調(diào)整系數(shù)β=10。
圖4 改進(jìn)PSO算法適應(yīng)度變化曲線圖
以天津市某糧倉為采樣對象,每隔1 h進(jìn)行一次采樣,分別采集糧倉內(nèi)濕度、糧倉外溫度、糧倉內(nèi)二氧化碳濃度、糧倉外濕度、糧倉外風(fēng)速大小在15 d內(nèi)的數(shù)據(jù),每個輸入量每天可以收集24組數(shù)據(jù),一共360組,實(shí)驗(yàn)中選取前260組數(shù)據(jù)用作訓(xùn)練,剩余100組用于測試。
不同單位的數(shù)據(jù)會對結(jié)果產(chǎn)生影響,因此需要對這些采集的數(shù)據(jù)進(jìn)行處理,使得樣本數(shù)據(jù)映射到[0,1]之間,歸一化公式為
(7)
式中,xi為采集的樣本數(shù)據(jù),xmax,xmin分別為采集的樣本數(shù)據(jù)的最大樣本與最小樣本值。處理后的部分?jǐn)?shù)據(jù)如表1所示。
表1 部分處理后的數(shù)據(jù)
續(xù)表
本研究的仿真通過MATLAB實(shí)現(xiàn),為驗(yàn)證改進(jìn)RBF神經(jīng)網(wǎng)絡(luò)預(yù)測模型的優(yōu)越性,仿真搭建了RBF神經(jīng)網(wǎng)絡(luò)預(yù)測模型、PSO-RBF神經(jīng)網(wǎng)絡(luò)預(yù)測模型和PSO-LM-PSO神經(jīng)網(wǎng)絡(luò)預(yù)測模型,三者仿真后得到結(jié)果如圖5所示。
圖5 溫度預(yù)測效果圖對比
從圖5可以直觀看出,相對于單一的RBF神經(jīng)網(wǎng)絡(luò)和PSO優(yōu)化的RBF神經(jīng)網(wǎng)絡(luò)來說,PSO-LM-RBF神經(jīng)網(wǎng)絡(luò)預(yù)測模型的預(yù)測效果更好,更加貼近于糧倉的實(shí)際溫度。圖6為溫度相對誤差的示意圖,可以看出對糧倉溫度預(yù)測值的相對誤差低于2.5%。
圖6 溫度相對誤差
為進(jìn)一步檢驗(yàn)預(yù)測效果,采用均方誤差(MSE)、平均絕對誤差(MAE)、均方根誤差(RMSE)來進(jìn)行比較。它們的計算公式為:
(8)
(9)
(10)
表2 各模型的性能指標(biāo)
由表2可知,PSO-LM-RBF預(yù)測模型在糧倉溫度預(yù)測上表現(xiàn)出良好的性能,其MAE、MSE、RMSE的值均低于RBF和PSO-RBF神經(jīng)網(wǎng)絡(luò)模型,改進(jìn)RBF神經(jīng)網(wǎng)絡(luò)算法能夠進(jìn)一步提高預(yù)測模型的精確度。
采用改進(jìn)后的RBF神經(jīng)網(wǎng)絡(luò)對糧倉溫度預(yù)測模型進(jìn)行了搭建,通過PSO和LM算法相結(jié)合的方式進(jìn)行了網(wǎng)絡(luò)的優(yōu)化,兩種算法結(jié)合達(dá)到了理想的效果。通過實(shí)驗(yàn)結(jié)果可知,改進(jìn)后的RBF神經(jīng)網(wǎng)絡(luò)預(yù)測模型的預(yù)測精確度更高,效果更好,在糧情監(jiān)控方面有一定的參考價值。