郭利進,許瑞偉,李博侖
(天津工業大學大學控制科學與工程學院,天津 300387)
民以食為天,食以糧為先,保障糧食安全是國家的戰略需要[1]。據統計,我國因糧食霉變造成的損失約占糧食總產量的4%。為降低糧食損失,眾多科研人員致力于糧食霉變研究。Wang等[2]通過比色傳感器技術對捕獲小麥不同發霉程度的氣味信息,實現了小麥霉菌高精度檢測。萬立昊等[3]對稻谷儲藏中霉菌菌落數、脂肪酸、丙二醛等品質指標檢測,深入探究了稻谷霉變程度與品質指標的變化關系。以上研究成果側重于霉變檢測手段和霉變過程規律。而本研究側重于糧食霉變發生的預測研究,以稻谷為例,根據稻谷含水量、儲藏時間、溫度等已知信息,建立基于IFA-SVM的糧食霉變預測模型,通過預測結果制定相應對策,對降低糧食霉變風險、減少糧食損失有著重大意義。
對于預測算法主要包括神經網絡、支持向量機、灰色理論等方法。針對糧情霉變程度預測,國內學者不乏使用BP神經網絡算法進行預測,BP神經網絡屬于監督式算法,具有若干個彼此影響的非線性單元處理器,具有良好的非線性映射能力[4]。但是因為該算法本質是依據梯度下降法,所以導致收斂速度較慢,在區間范圍進一步擴大時,易出現陷入極值局部極小化現象。與BP神經網絡算法對比,支持向量機(SVM)具有訓練時間短、泛化能力強、預測精度高,并且克服了神經網絡算法在小樣本、非線性問題中的重復性差、過度擬合等不足,更適用于預測研究。然而SVM模型構建的關鍵是解決核參數δ和懲罰因子C的最優取值問題,初期算法參數選取多依賴于實驗人員的主觀經驗,缺乏嚴謹的數學依據,所以引入螢火蟲算法(FA)對 SVM 參數進行優化,同時提出一種基于高斯函數非線性變步長α的進化策略,改進FA算法尋優精度,有效提高模型的預測準確度。
HPS-250 生化培養箱,HG-9246A 型電熱恒溫鼓風干燥箱,DJSFM-1糧食水分測試粉碎磨,SMART顯微鏡。
將不同含水量的稻谷密封置于不同儲藏溫度(5、10、15、20、25、30 ℃)的生化培養箱模擬儲藏環境下180 d,采樣周期為10 d,每次檢測水稻的水分和真菌孢子數。其中水分和真菌孢子數的檢測方法分別依據GB 5009.3—2016《食品安全國家標準食品中水分的測定》[5]、 LS/T 6132—2018《糧油檢測儲糧真菌的檢測孢子計數法》[6]。
支持向量回歸機(SVM)的核心思想是在高維映射空間中找到1個間隔超平面,其學習策略是令其間隔最大化轉化為凸二次規劃問題的求解。
針對二分類問題,設N個輸入樣本xi(i=1,2,…,n),且yi∈{-1,1}。其中xi作為預測模型的相關輸入向量,yi為輸出向量。在本研究霉變預測中,yi為1時可代表未發生霉變,為-1時可代表發生霉變。決策面可表示為式(1)。
f(x)=ωTφ(x)+b
(1)
式中:ω為決策面法向量;φ(x)為原始樣本數據的非線性映射函數;b為偏置值。根據最小結構風險原則,最優超平面滿足式(2)。
yi(ωTφ(xi)+b)≥1
(2)
引入松弛變量ξi,目的是將分類誤差控制在一個有限范圍內,則可建立式(3)。
(3)
式中:c為懲罰因子,懲罰因子c的取值影響到模型的結構風險,取值過大時,結構風險越大;取值過小,模型會過于簡單化[7]。
引入拉格朗日乘子αi,將式(3)變換為對偶形式,見式(4)。
(4)
式中:K(xi,xj)=φ(xi)φ(xj)為核函數,其中核函數根據需要選取,本研究選用徑向核函數,表達式見式(5)。
K(xi,xj)=exp(-(xi-xj)2/2σ2)
(5)
式中:σ為徑向核函數的核參數,其取值大小也對模型的效果有所影響,取值過小會導致模型的泛化能力減弱,取值過大會令模型出現過擬合現象[8]。
因此,SVM模型構建的關鍵是解決核參數σ和懲罰因子c的最優取值問題。所以本研究引入螢火蟲算法對SVM模型參數進行優化,提高模型預測性能。
螢火蟲算法是一種啟發式算法,是根據自然界中螢火蟲的發光行為而提出的。在螢火蟲算法中,空間里的每1個解就好比螢火蟲種群里的每1只螢火蟲,空間里的初始解可以理解為螢火蟲種的初始位置,螢火蟲通過互相之間的吸引來進行移動,完成位置的更新即完成解的更新[9]。
搜索過程涉及到螢火蟲的發光亮度和相互吸引度這2個參數。這2個參數都與螢火蟲之間的距離成反比,這與自然現象中光在空間傳播時被傳播介質吸收而逐漸衰減的特性相一致[10]。
光強(I)與光源距離(r)的數學表達式見式(6)。
(6)
FA算法中螢火蟲的發光強度公式見式(7)。
(7)
式中:當與光源的距離逐漸趨近或接近于零時,則發光亮度最為明亮即為I0。
由于光的傳播中,不同的傳播介質也會影響到光的亮度。吸收系數γ的改變可以理解為不同的傳播介質,可以將其設置為常數;rij表示螢火蟲i與螢火蟲j之間的距離。螢火蟲的吸引度見式(8)。
(8)
與螢火蟲發光強度同理,當與光源的距離逐漸趨近或接近于零時,則吸引度最大即為β0。螢火蟲i被吸引向螢火蟲j移動的位置更新由式(9)決定。
xi=xi+β(xj-xi)
(9)
通常情況采用式(10)。
xi=xi+β(xj-xi)+α(rand-0.5)
(10)
式中:擾動項α(rand-0.5),α為步長因子,是介于0與1之間的常數;rand是[0,1]上服從均勻分布的隨機因子,擾動項的加入是為了擴大尋優區域。
因此,步長α與尋優精度有較大影響,但α為固定參數導致在進化后期難以尋找全局最優。因此應對α采用遞減的策略,在進化前期快速收斂,進化后期充分在局部進行尋優找到最優值。對于α進行線性遞減在解決非線性問題上通常尋找不到最優解。結合上述思想,本研究設計一種基于高斯函數的非線性變步長的進化策略,步長α迭代關系如式(11)所示。
(11)
式中:αmax為初始權重;αmin為最終權重;t為當前迭代次數;T為最大迭代次數;k為固定參數。
用IFA算法優化SVM參數的過程,就是螢火蟲尋找最佳位置X(c*,σ*)的過程,基本步驟為:
步驟一:對改進螢火蟲算法參數初始化設置:螢火蟲數量為M,初始吸引度β0,光強吸收系數γ,最大迭代次數T以及螢火蟲的初始位置為(c,σ)。
步驟二:[c,σ]作為SVM的初始參數,也代表螢火蟲的一個位置。將訓練集樣本作為SVM模型的輸入,并輸出預測集{y1,y2,…,yn}。
步驟三:將訓練集的預測錯誤率作為IFA-SVM算法的適應度函數。
步驟四:判斷終止條件:當前迭代次數大于設置的最大迭代次數。滿足終止條件則執行步驟六,若不滿足則執行下一步驟。
步驟五:根據螢火蟲的相對亮度決定到下一個位置的移動方向并調整步長α,若目標位置劣于之前的位置,螢火蟲位置保持不變,否則螢火蟲進行位置的更新,產生新的[c,σ],返回步驟二。
步驟六:將輸出的最優解代入SVM預測模型,獲得SVM模型的最佳參數(c*,σ*)。
研究選取稻谷水分、儲藏溫度、儲藏時間這3個特征變量作為FA-SVR預測模型的輸入,稻谷霉變情況作為預測模型的輸出。稻谷霉變程度共分為5個等級:{安全、臨界、危害、嚴重危害},分別與霉變等級{Ⅰ、Ⅱ、Ⅲ、Ⅳ}相映射,劃分依據見表1。

表1 儲糧安全分類標準
選取的樣本數據(稻谷水分、儲藏溫度、儲藏時間)通常不直接使用,因為不同類型的數據其量綱單位也不同,樣本數值波動較大時,不利于SVM模型的學習訓練,為了消除特征向量間的量綱影響及保證模型運行速度,應把訓練樣本數值進行歸一化處理,會改善SVM的學習效果,提高最終的預測精度,將數據映射到[0,1]空間,可通過歸一化公式實現,見式(12)。
(12)
式中:x為任意一組樣本的某一維數據;max(x)為最大值;min(x)為最小值。
采用IFA-SVM算法進行糧食霉變分類預測的結構圖如1所示。
建模方法:選取實驗臺原始數據,進行預處理。實驗共收集水稻樣本936,將“Ⅲ級-危害”作為判斷是否霉變的標準,將未發生霉變樣本用“1”標記,已發生霉變樣本用“-1”標記。隨機選取其中500組樣本作為預測模型的總樣本,將所選取的總樣本集按9∶1的比例劃分為訓練集和測試集,其中隨機選取450組實驗臺生化培養箱數據對模型進行訓練,將剩余50組樣本數據進行測試本研究的IFA-SVM預測模型效果。
設置IFA算法的初始參數,螢火蟲數目M=100,光強吸收系數γ=1.0,初始吸引度β0=0.8,步長因子設置為0.5,最大迭代次數T=100。對SVM進行離線參數尋優,得到最優核參數σ*=0.560 6,懲罰因子c*=46.068 5,從而建立最優的SVM預測模型結構,見圖1。

圖1 基于FA-SVM的糧情霉變預測結構圖
根據訓練集數據對得到的SVM預測模型進行訓練,當到達理想訓練精度后,輸入測試集進行驗證,并對輸出結果進行評估。
根據建模過程與初始參數,在MATLAB R2018b環境下借助支持向量回歸機工具箱及運行IFA-SVM模型,算法訓練的適應度曲線如圖2所示。

圖2 不同模型參數的適應度曲線對比
算法收斂速度越快,代表所建立的預測模型表現能力越好。圖2表明,FA算法對SVM的參數尋優速度很快,迭代次數在第10次時已經收斂,體現了FA-SVM良好的收斂性。動態變步長的IFA-SVM在第6次就已經收斂,但收斂的最優適應度僅比FA-SVM降低了0.004,說明通過動態調整步長可以有效地縮短收斂時間,在最優解的適應度上與FA算法結果相差不大,但具有參考意義。二者相比單一的SVM算法,引入的FA算法優化了c與σ這2個參數,大大降低了參數值選擇的隨機性。
選取了50組樣本數據進行測試,結果節選見表2。

表2 測試數據結果節選
圖3為50組測試樣本的霉變分類預測結果,可看出IFA-SVM預測模型的預測結果和實際結果基本符合,僅有2份數據的預測結果與實際不符,準確率高達96%。

圖3 IFA-SVM預測結果圖
為驗證IFA-SVM模型的優越性,使用相同的樣本數據,對比研究BP模型、SVM模型和FA-SVM的糧食霉變預測效果。不同算法預測準確率對比見表3。由表3可知,本研究所采用的IFA-SVM算法有較高的預測準確率,在糧食霉變預測領域具備一定可行性。

表3 不同算法預測準確率對比
本研究利用MATLAB建立了基于FA-SVM的糧食霉變預測分類模型。通過理論研究和實驗數據,利用生化培養箱對真實儲藏環境進行模擬,將IFA-SVM模型運用到生化培養箱進行存儲預測。相比BP神經網絡、普通SVM模型,IFA-SVM泛化能力強、預測準確率高;相比于傳統FA-SVM模型,IFA-SVM尋優時間降低,在預測準確率上二者相差不大,但為改進FA算法提供一定的參考。對于生化培養箱數據,IFA-SVM模型準確率高達96%。IFA-SVM模型的提出為實際糧食儲藏的霉變預測提供了一種新思路,具有一定實際應用意義。