郭利進, 惠培奇, 許瑞偉
(天津工業(yè)大學(xué)控制科學(xué)與工程學(xué)院,天津 300387)
收稿日期:2022-07-07
第一作者:郭利進,男,1970年出生,教授,數(shù)據(jù)融合及復(fù)雜系統(tǒng)建模研究,Doctor_guo@tiangong.edu.cn
通信作者:惠培奇,男,1997年出生,碩士,數(shù)據(jù)融合及復(fù)雜系統(tǒng)建模研究,Huipeiqi_1507@163.com
稻谷作為我國主要糧食作物之一,其儲存品質(zhì)直接關(guān)系我國糧食安全。由于目前糧食作物存儲的方式,糧倉內(nèi)農(nóng)作物質(zhì)量檢查復(fù)雜繁瑣,一般糧倉的質(zhì)量檢測往往每月1次,時間較長,及時檢測出稻谷的質(zhì)量變化可以提前使企業(yè)采取措施防止稻谷產(chǎn)生霉變造成經(jīng)濟損失和糧食浪費。因此,選擇適合的科學(xué)原理和預(yù)測方法對稻谷質(zhì)量進行一定的預(yù)測,對穩(wěn)定稻谷儲存、實現(xiàn)糧食安全目標(biāo)具有重要意義。
目前稻谷存儲質(zhì)量的檢測技術(shù)越來越成熟,但大都依賴傳感器的性能與監(jiān)測位置。稻谷存儲發(fā)生品質(zhì)變化不能僅由幾個數(shù)學(xué)關(guān)系進行表達(dá),各個因素之間關(guān)聯(lián)密切,該過程模型特點是非線性、強耦合。針對這一特點,很多學(xué)者展開廣泛的研究,商志根等[1]采用Logistic回歸與決策樹的技術(shù),根據(jù)現(xiàn)有數(shù)據(jù)構(gòu)建糧食存儲品質(zhì)預(yù)測模型,效果較好,在糧食品質(zhì)預(yù)測領(lǐng)域具有參考意義。姜友軍等[2]通過支持向量機構(gòu)建品質(zhì)預(yù)測模型,預(yù)測誤差在可接受范圍內(nèi),表明機器學(xué)習(xí)在糧食品質(zhì)預(yù)測是可行的。近年來,隨著計算機技術(shù)與大數(shù)據(jù)的發(fā)展,人工神經(jīng)網(wǎng)絡(luò)(ANN)[3]處理非線性映射問題具有較高的能力而被廣泛應(yīng)用到糧食儲藏領(lǐng)域[4]。蘭雪萍等[5]基于BP神經(jīng)網(wǎng)絡(luò)算法對多種糧食作物的儲存品質(zhì)進行預(yù)測,效果較好,但環(huán)境影響因素考慮較少。蔣華偉等[6]針對BP神經(jīng)網(wǎng)絡(luò)收斂速度慢的問題,提出改進粒子群算法(PSO)優(yōu)化BP預(yù)測模型,對小麥的預(yù)測結(jié)果較好;蔣華偉等[7]提出BroadAdaBoost機器學(xué)習(xí)算法,針對小麥品質(zhì)的生物特性變化,實現(xiàn)對小麥品質(zhì)的精準(zhǔn)預(yù)測。鄧玉睿等[8]根據(jù)實驗數(shù)據(jù)利用BP神經(jīng)網(wǎng)絡(luò)建立糧食霉變模型,并使用實際存儲數(shù)據(jù)進行驗證,效果較好。但這些方法采用的BP網(wǎng)絡(luò)參數(shù)眾多學(xué)習(xí)速率較慢[9],需要人為反復(fù)調(diào)試,使預(yù)測模型難以構(gòu)建并且精度有較大差異。由于徑向基神經(jīng)網(wǎng)絡(luò)(RBF)參數(shù)較少,泛化能力強[10],因此被廣泛使用。
研究針對稻谷在糧倉內(nèi)存儲問題,充分考慮存儲環(huán)境的影響的同時采用互信息法則選擇影響品質(zhì)較大的因素。針對傳統(tǒng)RBF算法易于陷入局部極小值的缺點,根據(jù)迭代次數(shù)動態(tài)改變PSO的學(xué)習(xí)因子與權(quán)重系數(shù),利用改進后的PSO算法與RBF神經(jīng)網(wǎng)絡(luò)構(gòu)建一種存儲環(huán)境-存儲品質(zhì)的預(yù)測模型,與傳統(tǒng)RBF算法和PSO-RBF相比,DPSO-RBF算法對于稻谷預(yù)測的精度最高。
研究對象為2016—2021年儲藏在天津某糧倉內(nèi)的稻谷,共12個稻谷糧倉,數(shù)據(jù)采集時間跨度為1個月。數(shù)據(jù)主要包含倉外氣溫、倉外氣濕、倉內(nèi)氣溫、倉內(nèi)氣濕、糧溫、糧食水分、CO2、O2和質(zhì)量評價指標(biāo)脂肪酸值[11],9維共720條數(shù)據(jù)。
數(shù)據(jù)維度為9維,若全部作為人工神經(jīng)網(wǎng)絡(luò)的輸入輸出不僅僅耗費大量時間,還會由于干擾變量對預(yù)測精度造成誤差。因此采用互信息法則(MI)對數(shù)據(jù)進行特征選取降維處理數(shù)據(jù)。互信息法是用來獲取每個特征與標(biāo)簽之間的線性或非線性關(guān)系的過濾方法[12],得到每個特征對于標(biāo)簽的相關(guān)度。對于連續(xù)型變量,互信息計算如式(1)所示:
(1)
式中:p(x,y)為x和y的聯(lián)合概率密度函數(shù);p(x)和p(y)為邊際密度函數(shù)。
互信息量確定聯(lián)合分布與分解的邊際分布的乘積有多相似。使用基于K近鄰的無參數(shù)方法,選擇X和Y方向上的歐式距離最大值作為選擇最近鄰的標(biāo)準(zhǔn),并進行統(tǒng)計計數(shù)和概率密度估計。使用MI法則計算環(huán)境特征與稻谷脂肪酸值之間的互信息值,選擇合適相關(guān)特征用于預(yù)測模型訓(xùn)練與驗證。
徑向基神經(jīng)網(wǎng)絡(luò)是用徑向基函數(shù)充當(dāng)隱含層單元的“基”構(gòu)成隱含層,使輸入層與隱含層之間實現(xiàn)非線性映射,隱含層與輸出層之間實現(xiàn)線性映射[10]。相比使用場合較多的BP神經(jīng)網(wǎng)絡(luò),RBF網(wǎng)絡(luò)在收斂速度上速度更快,解決非線性問題的能力更強。RBF由輸入層、隱含層和輸出層組成,典型RBF網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示。輸入層負(fù)責(zé)將輸入信號傳遞至網(wǎng)絡(luò)內(nèi)部,設(shè)輸入層有m個節(jié)點;作為網(wǎng)絡(luò)的關(guān)鍵部位,隱含層對輸入信號進行非線性運算,其神經(jīng)元數(shù)量與訓(xùn)練數(shù)據(jù)相關(guān),設(shè)隱含層有n個節(jié)點;隱含層與輸出層通過權(quán)值向量w連接。
圖1 RBF神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
實際應(yīng)用中常選擇任意空間內(nèi)正定的高斯基函數(shù)作為 RBFNN 隱含層函數(shù),如式(2)所示:
(2)
式中:pj為隱含層第j個神經(jīng)元節(jié)點向量;x為神經(jīng)網(wǎng)絡(luò)輸入樣本;cj為第j個隱藏層節(jié)點的中心矢量,其維數(shù)與輸入樣本相同;δj為第j個隱層節(jié)點的寬度。
RBF網(wǎng)絡(luò)輸出層的線性關(guān)系表達(dá)式如式(3)所示:
(3)
式中:y為神經(jīng)網(wǎng)絡(luò)的計算輸出值;wj為隱含層第j個神經(jīng)元與輸出層之間的權(quán)值向量;n為隱含層神經(jīng)元節(jié)點數(shù)量。
雖然RBF神經(jīng)網(wǎng)絡(luò)可以很好地處理非線性問題,但神經(jīng)網(wǎng)絡(luò)的參數(shù)的確定與模型的輸出有密切關(guān)系。因此徑向基函數(shù)中心cj、標(biāo)準(zhǔn)化常數(shù)和隱含層到輸出層的加權(quán)系數(shù)wij等幾個參數(shù)的確定尤為重要。
粒子群算法其主要思想是模擬鳥群覓食的行為,每個粒子的位置代表一個解,每經(jīng)過一次迭代后,各個粒子向個體歷史最優(yōu)解靠攏。假設(shè)在M維空間內(nèi)進行目標(biāo)求解,xi=(xi1,xi2,…,xiM)、vi=(vi1,vi2,…,viM)和pi=(pi1,pi2,…,piM)分別代表整個群體中第i個粒子的空間位置、飛行速度和最好位置,整個粒子群的全局最優(yōu)位置為g=(g1,g2,…,gM)。
該算法速度和位置的更新公式如式(4)、式(5)所示:
vμd(t+1)=w·vid(t)+c1·r1[pμd(t)-xit]+c2·r2[pgt(t)-xit(t)]
(4)
xid(t+1)=xid(t)+vid(t+1)
(5)
式中:vid∈[-vmax,vmax],vmax=k·xmax,d為種群的維數(shù);i為種群規(guī)模;t為迭代次數(shù);w為權(quán)重因子;c1和c2為學(xué)習(xí)因子;r1和r2為位處在(0,1)中間的隨機數(shù);Vid為最大速度。
w、c1和c2的大小影響粒子速度與位置,直接影響到算法的全局搜索能力和收斂速度。文獻(xiàn)[13]證明在搜索初期較大的w可以在較大的搜索范圍進行尋優(yōu),后期較小的w可以實現(xiàn)在局部精準(zhǔn)搜索。方國華等[14]提出一種隨著迭代次數(shù)線性變化的方法,但當(dāng)?shù)跗跊]能搜索全局就線性減小慣性系數(shù),后期容易陷入局部最優(yōu)。如式(6)所示,研究設(shè)計一種分段的非線性遞減的方式。若自學(xué)習(xí)因子c1取值過大,會使粒子游動在局部范圍,全局搜索能力不足;若社會學(xué)習(xí)因子c2取值過小,會導(dǎo)致粒子過早收斂到局部。結(jié)合這些特性,如式(7)所示。將c1進行線性遞減,c2進行線性遞增。
(6)
其中,
式中:wmax為慣性權(quán)重的上限;wmin為慣性權(quán)重的下限,一般取wmax=0.9,wmin=0.4;ger為最大迭代次數(shù),t為當(dāng)前迭代次數(shù)。
該方法保證了粒子初步搜索時以較高的速度完成全局搜索,在中期進行非線性遞減,即保證后期的精細(xì)搜索,又改善了直接線性遞減無法保證全局搜索完成的缺點;同時在粒子非線性空間內(nèi)利用非線性特性尋優(yōu),有利于跳出局部最優(yōu)。由式(7)可得,在尋優(yōu)過程中,搜索初期c1取較大值,c2取較小值,使得粒子在初期保證搜索速度充分搜索全局;在搜索后期c1變小,c2變大增強局部尋優(yōu)能力。
(7)
式中:ci_max為第i個學(xué)習(xí)因子的最大值;ci_min為第i個學(xué)習(xí)因子的最小值。
DPSO優(yōu)化RBF神經(jīng)網(wǎng)絡(luò)的原理是將參數(shù)映射為PSO中粒子目標(biāo),利用PSO尋優(yōu)功能找到最優(yōu)解后返回到RBF神經(jīng)網(wǎng)絡(luò)實現(xiàn)網(wǎng)絡(luò)模型的構(gòu)建,在尋優(yōu)的過程中,將均方誤差最小的作為適應(yīng)度函數(shù),當(dāng)其最小時,權(quán)重最優(yōu)。算法流程圖如圖2所示。
圖2 DPSO-RBF神經(jīng)網(wǎng)絡(luò)模型圖
比較9種指標(biāo)之間的相關(guān)度, MI數(shù)值越大代表序列之間的相關(guān)性越高。為減少不相關(guān)指標(biāo)對模型精度的影響,排除倉外氣溫(0.294 3)和倉外氣濕度(0.368 4)2個指標(biāo),故選取倉內(nèi)氣溫(0.592 6)、倉內(nèi)氣濕(0.732 3)、糧溫(0.720 0)、糧食濕度(0.671 9)、O2(0.723 2)和CO2(0.563 6)6種指標(biāo)作為模型中影響脂肪酸含量的特征變量。
因此將采集到的數(shù)據(jù)80%作為訓(xùn)練集,剩余20%為測試集輸入到存儲環(huán)境-存儲品質(zhì)的預(yù)測模型中,如圖3所示建立以倉內(nèi)氣溫、倉內(nèi)氣濕、糧溫、糧食濕度、O2和CO2作為輸入單元,稻谷脂肪酸含量為輸出,隱含層的參數(shù)由DPSO算法確定的六輸入單輸出的預(yù)測模型。
圖3 預(yù)測模型示意圖
數(shù)據(jù)采集時有丟失或有異常會造成預(yù)測誤差,采集到的數(shù)據(jù)首先要進行預(yù)處理。對于數(shù)據(jù)缺失值進行填補的方法主要利用缺失數(shù)據(jù)前后時間的均值進行填補,但是數(shù)據(jù)中若有長期缺失的數(shù)據(jù)為了防止人為填補造成誤差,需要將缺失值去掉;對于異常值的處理主要采用Pauta準(zhǔn)則,如果輸入數(shù)據(jù)x∈(μ-3σ,μ+3σ),該數(shù)據(jù)為正常數(shù)據(jù);若x不在該范圍,則該數(shù)據(jù)為異常數(shù)據(jù)將被剔除并被數(shù)據(jù)均值代替。隨機選取替換后的部分輸入輸出數(shù)據(jù)如表1所示。
表1 部分原始數(shù)據(jù)
由于影響脂肪酸含量的因素具有多個且不同的數(shù)據(jù)具有不同的范圍,為了消除量綱不同造成的影響,將各個數(shù)據(jù)采取歸一化處理:
(8)
式中:X為原始數(shù)據(jù)值;X#為歸一化后的取值;Xmax和Xmin分別為原始數(shù)據(jù)的最大值與最小值。
為驗證研究所提出的模型的性能,使用2個損失函數(shù)作為評價的標(biāo)準(zhǔn),包括均方根誤差(RMSE)和平均絕對誤差(MAE)。具體計算公式見式(9)、式(10):
(9)
(10)
利用Matlab搭建DPSO-RBF神經(jīng)網(wǎng)絡(luò)模型,將預(yù)處理后的數(shù)據(jù)輸入模型進行實驗。同時構(gòu)建RBF神經(jīng)網(wǎng)絡(luò)模型、PSO-RBF神經(jīng)網(wǎng)絡(luò)模型與DPSO-RBF進行對比。算法參數(shù)設(shè)置為:RBF的隱含層節(jié)點取20,初始種群數(shù)目N=50,最大迭代次數(shù)M=100。標(biāo)準(zhǔn)PSO模型中慣性權(quán)重w=0.9、學(xué)習(xí)因子c1=2、c2=2;DPSO模型中慣性參數(shù)wmax=0.9,wmin=0.1;c1_max=c2_max=2,c1_min=c2_min=1。
為降低神經(jīng)網(wǎng)絡(luò)尋優(yōu)的偶然性造成的誤差,采用3次重復(fù)獨立實驗取均值,其預(yù)測結(jié)果如圖4所示,3種模型對于稻谷的脂肪酸含量都能較好的實現(xiàn)預(yù)測,但DPSO-RBF模型預(yù)測精度優(yōu)于其余2種模型,并且從圖4可清晰看出預(yù)測曲線與實際曲線擬合最貼近,波動最小。
圖4 稻谷脂肪酸值實際值與預(yù)測值比較
為更直觀地對比模型的精度,比較3種預(yù)測模型的評價指標(biāo),如表2所示,傳統(tǒng)RBF由于參數(shù)設(shè)置有誤差,導(dǎo)致預(yù)測精度較差;在加入PSO算法進行參數(shù)尋優(yōu)后,模型的預(yù)測精度有所提升,相比未加入PSO算法尋優(yōu)的RMSE降低29.4%,MAE降低29.8%,但由于傳統(tǒng)PSO算法容易陷入局部最優(yōu),導(dǎo)致模型精度提升有限;將改進參數(shù)確定方法的DPSO算法加入后,在克服局部最優(yōu)的同時,尋找到了最優(yōu)權(quán)重,相比于PSO-RBF預(yù)測模型,RMSE降低38.1%,MAE降低37.8%,說明改進后的DPSO算法可以使模型精度提升較多,進一步驗證了該模型的可行性。
表2 模型評級指標(biāo)
研究根據(jù)稻谷實際存儲的特點,構(gòu)建出關(guān)于稻谷儲存過程中環(huán)境因素與內(nèi)部脂肪酸含量的DPSO-RBF預(yù)測模型。利用PSO算法對RBF神經(jīng)網(wǎng)絡(luò)隱含層中難以確定的參數(shù)進行全局尋優(yōu),同時針對PSO算法全局搜索不充分、易于陷入局部最優(yōu)的缺點,提出一種改變參數(shù)確定方式的改進方法。DPSO-RBF模型根據(jù)儲存環(huán)境可以有效實現(xiàn)對稻谷存儲質(zhì)量的有效預(yù)測,對稻谷存儲提供一定的實際參考。但該模型沒有考慮時間序列模型的影響,后續(xù)研究可以以此作為研究重點。