余天陽
(江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院 無錫 214122)
白酒發(fā)酵過程中的酒醅溫度影響酵母菌的生長繁殖,進(jìn)而影響白酒的產(chǎn)量[1~2]。同時(shí),入窖水分、入窖酸度和入窖淀粉濃度也會影響白酒的產(chǎn)量[3~5]。如何準(zhǔn)確有效地預(yù)測白酒產(chǎn)量、保證白酒質(zhì)量成為固態(tài)白酒發(fā)酵亟待解決的問題。常規(guī)優(yōu)質(zhì)固態(tài)白酒發(fā)酵溫度曲線應(yīng)符合“前緩、中挺、后緩落”的規(guī)律[6],是一系列復(fù)雜生化反應(yīng)的宏觀體現(xiàn),其中蘊(yùn)含重要的演化信息,故期望從中找出演化規(guī)律,利用已知的檢測數(shù)據(jù)預(yù)測白酒產(chǎn)量,為下一輪的入窖工藝優(yōu)化提供依據(jù)。
目前關(guān)于預(yù)測的方法主要有時(shí)間序列法、小波分析法、人工神經(jīng)網(wǎng)絡(luò)等。1989年Baldi P通過研究發(fā)現(xiàn),在處理非線性數(shù)據(jù)上,神經(jīng)網(wǎng)絡(luò)的預(yù)測能力要優(yōu)于傳統(tǒng)模型[7]。但是L.Kaastra在1995年發(fā)現(xiàn)神經(jīng)網(wǎng)絡(luò)存在過擬合、難收斂和模型訓(xùn)練困難等問題[8],與此同時(shí)Vapink在神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上首次提出了以結(jié)構(gòu)風(fēng)險(xiǎn)最小化為原則的SVM(Support Vecor Machine,SVM)算法[9],該方法較好地解決小樣本、非線性等實(shí)際問題,并且在很多領(lǐng)域已經(jīng)開始得到應(yīng)用,如兩相流行識別[10]、故障診斷[11]、模式識別[12]等領(lǐng)域。但SVM的訓(xùn)練需要求解二次規(guī)劃問題,影響計(jì)算速度。為此,Suykens等[13]提出了最小二乘支持向量機(jī)(Least Squares Support Vector Machine,LSSVM)方法。最小二乘支持向量機(jī)(LSSVM)是標(biāo)準(zhǔn)支持向量機(jī)的一種擴(kuò)展,通過求解線性方程,有效簡化計(jì)算過程,提高運(yùn)算速度。但是,在LSSVM建模過程中模型的懲罰參數(shù)γ和核參數(shù)σ對模型的擬合精度和泛化能力有著較大影響。傳統(tǒng)的取值方法是依據(jù)經(jīng)驗(yàn)通過試湊法進(jìn)行調(diào)試,沒有統(tǒng)一的規(guī)則。粒子群(Particle Swarm Optimization,PSO)算法[14]是基于種群的并行全局搜索策略,概念簡單、易于實(shí)現(xiàn),且沒有許多參數(shù)需要調(diào)整,具有更快的收斂速度,對處理高維數(shù)據(jù)具有一定的優(yōu)勢,常應(yīng)用于支持向量機(jī)的參數(shù)優(yōu)化。從已有的研究成果來看,基于機(jī)器學(xué)習(xí)方法進(jìn)行預(yù)測已經(jīng)越來越常見,但所采用的的方法多為常規(guī)方法,如SVM、神經(jīng)網(wǎng)絡(luò)、LSSVM等經(jīng)典方法,Chen(2016)[15]提出了一種新的 XGBoost的機(jī)器學(xué)習(xí)算法,該方法是大規(guī)模并行boosted tree的工具,是目前最好的開源boosted tree工具包,比常見方法快數(shù)倍以上,已經(jīng)逐漸應(yīng)用于數(shù)據(jù)的分析預(yù)測中。
本文在XGBoost建模方法的基礎(chǔ)上,通過分析樣本間的馬氏距離[16~17],剔除原始樣本中相關(guān)性較小的樣本點(diǎn),并將該方法應(yīng)用于固態(tài)白酒發(fā)酵的產(chǎn)量預(yù)測當(dāng)中,測試結(jié)果表明該方法符合預(yù)測精度,能夠應(yīng)用于實(shí)際工程應(yīng)用。
本文預(yù)測模型所需要的訓(xùn)練樣本和測試樣本來自于2018年2月江蘇某酒廠生產(chǎn)區(qū)域內(nèi)1168口窖池。該廠采用物聯(lián)網(wǎng)無線測溫技術(shù)對生產(chǎn)區(qū)域內(nèi)全部窖池的糟醅溫度進(jìn)行實(shí)時(shí)在線監(jiān)控。其中,物聯(lián)網(wǎng)無線溫度傳感器統(tǒng)一安插位置為每口窖池中心點(diǎn)往下1.5m處(離窖底0.5m),采用PT100溫度傳感器每隔1h自動采集1次糟醅發(fā)酵溫度,并發(fā)送到各自的無線路由器上,再由無線路由器將搜集到的溫度數(shù)據(jù)傳送到工控機(jī)中進(jìn)行數(shù)據(jù)交換和數(shù)據(jù)處理。此次共采集樣本522份,數(shù)據(jù)特征為522*1440。
相關(guān)性樣本剔除是將樣本空間中相關(guān)性較小的樣本采用一定的辦法去除,再利用剩余樣本進(jìn)行建模。這種方法可以簡化模型結(jié)構(gòu),提高在線計(jì)算的速度與精度。歐氏距離和馬氏距離常被用來度量樣本間的相似度。歐氏距離法表達(dá)的是數(shù)據(jù)在特征維度空間中的真實(shí)距離;馬氏距離法表達(dá)了數(shù)據(jù)的協(xié)方差距離,即標(biāo)準(zhǔn)化數(shù)據(jù)與中心化數(shù)據(jù)之差,以此來考量樣本間的相似程度。
本文原始樣本共有522個(gè)發(fā)酵數(shù)據(jù),采用馬氏距離法和歐氏距離法作為樣本相似的判別依據(jù)。在保證模型精度的情況下,通過經(jīng)驗(yàn)法選取ε1=0.01,剔除相關(guān)性較小的樣本序號如表1所示。
表1 剔除樣本對比
為了更好地評價(jià)相關(guān)性樣本剔除算法的優(yōu)劣,采用均方根誤差RMSE指標(biāo)對其進(jìn)行檢驗(yàn):
其中l(wèi)是測試樣本的個(gè)數(shù),yi為測試樣本的原始值,y?i為測試樣本的預(yù)測值。如表2所示,剔除相關(guān)性較小的樣本后,模型的精度明顯增加,而采用馬氏距離法精度最高。
表2 剔除算法比較
XGBoost[10]的 全 稱 是 eXtreme Gradient Boost?ing,即極端梯度提升樹,是梯度提升機(jī)器算法(Gra?dient Boosting Machine)的擴(kuò)展。Boosting分類器屬于集成學(xué)習(xí)模型,其基本思想是把成百上千個(gè)分類準(zhǔn)確率較低的樹模型組合成一個(gè)準(zhǔn)確率較高的模型。該模型不斷迭代,每次迭代生成一棵新的樹,通過不斷加入子樹使模型不斷逼近樣本分布,過程如下:
結(jié)合上述兩式的最小殘差值為(結(jié)構(gòu)分?jǐn)?shù)):
一次迭代要增加一棵樹擬合樣本集,暴力的方法就是枚舉所有的樹,然后選擇結(jié)構(gòu)分?jǐn)?shù)最小的。
XGBoost模型有3種類型的參數(shù):通用參數(shù)、輔助參數(shù)和任務(wù)參數(shù)。通用參數(shù)確定上升過程中上升模型類型,常用樹或線性模型;輔助參數(shù)取決于所選的上升模型;任務(wù)參數(shù)定義學(xué)習(xí)任務(wù)和相應(yīng)的學(xué)習(xí)目標(biāo)。
XGBoost模型中,常用的參數(shù)說明如下:
1)booster:設(shè)置需要使用的上升模型??蛇xgbtree(樹)或gblinear(線性函數(shù)),默認(rèn)為gbtree。
2)nthread:XGBoost運(yùn)行時(shí)的并行線程數(shù),默認(rèn)為當(dāng)前系統(tǒng)可以獲得的最大可用線程。
3)eta:收縮步長,即學(xué)習(xí)速率,取值范圍是[0 , 1],默認(rèn)為0.3。在更新葉子節(jié)點(diǎn)的時(shí)候,權(quán)重乘以eta,以避免在更新過程中出現(xiàn)過擬合的現(xiàn)象。
4)max_depth:每棵樹的最大深度,取值范圍為[1 , ∞] ,默認(rèn)為6。樹越深,越容易過擬合。
5)subsample:訓(xùn)練的實(shí)例樣本占總體實(shí)例樣本的比例,取值范圍為[ ]0,1 ,默認(rèn)為1,值為0.5時(shí)意味著XGBoost隨機(jī)抽取一半的數(shù)據(jù)實(shí)例來生成樹模型,這樣能防止過擬合。
6)objective:默認(rèn)為reg:linear。
seed:隨機(jī)數(shù)種子,為確保數(shù)據(jù)的可重現(xiàn)性,默認(rèn)為0。
論文采用K折交叉驗(yàn)證的方法。將原始數(shù)據(jù)分為K個(gè)子集,每個(gè)子集分別驗(yàn)證一次,剩余的K-1組子集作為訓(xùn)練數(shù)據(jù),這樣可以得到K組訓(xùn)練集和測試集,以最終的回歸平均精度作為性能指標(biāo)。在實(shí)際應(yīng)用中K值一般大于等于2,需要建立K個(gè)模型來進(jìn)行K折交叉驗(yàn)證的實(shí)驗(yàn),并計(jì)算K次測試集的平均回歸精度。
K折交叉驗(yàn)證的結(jié)果能較好的說明模型效果,有效的避免了過擬合和欠擬合問題。在XGboost中,通過使用xgb.cv函數(shù)來做交叉驗(yàn)證。
固態(tài)白酒發(fā)酵是一系列復(fù)雜生化反應(yīng)的過程。白酒發(fā)酵過程中酒醅溫度變化是導(dǎo)致白酒產(chǎn)量變化的直接原因。此外,白酒產(chǎn)量還受到入窖酸度、入窖水分、入窖淀粉等因素的影響[16]。因此,建立能夠反映這些因素的確定性固態(tài)白酒發(fā)酵產(chǎn)量預(yù)測模型比較困難。
目前我國的固態(tài)白酒發(fā)酵產(chǎn)量監(jiān)控還是以經(jīng)驗(yàn)為主,通過監(jiān)控發(fā)酵過程中的酒醅溫度曲線來大致推測窖池的發(fā)酵情況,從而針對性地做好下一輪入窖配料的調(diào)整工作。傳統(tǒng)方法認(rèn)為只要酒醅溫度曲線保持“前緩、中挺、后緩落”的規(guī)律便意味著白酒發(fā)酵的正常。但是在這種模式下,酒醅溫度的監(jiān)控信息反饋具有滯后性,不能有效分析窖池內(nèi)的發(fā)酵信息,從而直接影響下一輪的白酒發(fā)酵的產(chǎn)量。因此,根據(jù)完整的歷史監(jiān)測數(shù)據(jù)建立預(yù)測模型,對優(yōu)化入窖配料方案、保障白酒發(fā)酵的高質(zhì)高產(chǎn)具有重要意義。
有效地劃分樣本集可以提高模型的泛化能力,本文通過馬氏距離進(jìn)行異常樣本剔除后共得到515組樣本數(shù)據(jù),再加上各自窖池發(fā)酵的入窖水分、入窖酸度、入窖淀粉和產(chǎn)量組成新的數(shù)據(jù)樣本,數(shù)據(jù)特征為515*1444。按照校正集和驗(yàn)證集大約9:1的比例,將515個(gè)樣本劃分465個(gè)作為訓(xùn)練樣本,50個(gè)作為測試樣本,檢驗(yàn)預(yù)測結(jié)果的真實(shí)性。
采用預(yù)測均方根誤差RMSEP和希爾不等系數(shù)TIC對模型性能進(jìn)行評估。RMSE表示預(yù)測值與真實(shí)值之間的標(biāo)準(zhǔn)差,越小代表準(zhǔn)確性越高;希爾不等系數(shù)是評價(jià)預(yù)測結(jié)果相對真實(shí)結(jié)果擬合誤差的指標(biāo),值介于[0,1],越接近0,擬合誤差越小。然而單一的RMSE并不能表明模型的實(shí)用價(jià)值,因此根據(jù)上述評價(jià)指標(biāo),對模型進(jìn)行綜合評價(jià),其公式如下:
在預(yù)處理數(shù)據(jù)的基礎(chǔ)上,采用XGBoost模型進(jìn)行訓(xùn)練,具體參數(shù)如表3所示。
表3 單XGBoost模型參數(shù)
采用訓(xùn)練好的XGBoost模型對固態(tài)白酒發(fā)酵產(chǎn)量進(jìn)行產(chǎn)量預(yù)測,具體結(jié)果如圖1所示。為了更科學(xué)地評價(jià)預(yù)測方法的準(zhǔn)確性,本文將XGBoost模型預(yù)測結(jié)果與BP、SVM、LSSVM、PSO-LSSVM模型預(yù)測結(jié)果進(jìn)行比較。
PSO-LSSVM、LSSVM、SVM、BP預(yù)測的結(jié)果圖分別如圖2、圖3、圖4和圖5所示。其中所有的測試數(shù)據(jù)與預(yù)測數(shù)據(jù)均已歸一化處理。
圖1 XGBoost模型白酒產(chǎn)量預(yù)測
圖2 PSO-LSSVM模型白酒產(chǎn)量預(yù)測
圖3 LSSVM模型白酒產(chǎn)量預(yù)測
圖4 SVM模型白酒產(chǎn)量預(yù)測
圖5 BP模型白酒產(chǎn)量預(yù)測
為了更好地閱讀各個(gè)算法的差別,本文使用均方根誤差RMSE和希爾不等系數(shù)TIC兩個(gè)參數(shù)對產(chǎn)量預(yù)測結(jié)果進(jìn)行量化分析。兩種評價(jià)指標(biāo)從不同方面揭示了模型預(yù)測精度和擬合誤差的程度。表4給出了五種算法在產(chǎn)量預(yù)測方面的對比。其中,XGBoost模型的均方根誤差為41.2799,分別比PSO-LSSVM、LSSVM、SVM和BP低10.8%、18.3%、23%和27.3%。因此,XGBoost模型無論是在預(yù)測精度還是在擬合誤差上都高于其他模型,表明XG?Boost模型預(yù)測的結(jié)果更加理想,在工程應(yīng)用中更具優(yōu)勢。
表4 四種模型與預(yù)測結(jié)果對比
本文將神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)、最小二乘支持向量機(jī)、粒子群優(yōu)化的最小二乘支持向量機(jī)以及XGBoost應(yīng)用到固態(tài)白酒發(fā)酵的產(chǎn)量預(yù)測中,并且系統(tǒng)地比較了幾種機(jī)器學(xué)習(xí)的有效性,并得出以下結(jié)論:
1)從數(shù)據(jù)本身來看,發(fā)酵過程中的酒醅溫度時(shí)序數(shù)據(jù)、入窖淀粉、入窖酸度和入窖水分能夠較好地反映固態(tài)白酒發(fā)酵的產(chǎn)量情況,利用其作為機(jī)器學(xué)習(xí)的輸入特征可以較好地預(yù)測白酒產(chǎn)量,證明了機(jī)器學(xué)習(xí)在固態(tài)白酒發(fā)酵產(chǎn)量預(yù)測領(lǐng)域的有效性。
2)從預(yù)測結(jié)果和擬合誤差來看,XGBoost模型的預(yù)測精度相對于其他模型而言,在擬合誤差指數(shù)、均方根誤差指數(shù)方面都有不同程度的提高,證明了XGBoost的預(yù)測能力的優(yōu)越性。
3)從本文的實(shí)驗(yàn)結(jié)果來看,XGBoost方法在損失函數(shù)尋優(yōu)過程中用到了一階和二階導(dǎo)數(shù),并且加入了正則項(xiàng)來控制過擬合現(xiàn)象,提升了模型的預(yù)測精度。XGBoost預(yù)測能力要優(yōu)于傳統(tǒng)的機(jī)器學(xué)習(xí)算法,但由于該方法在白酒產(chǎn)量預(yù)測方面的研究較為匱乏,如何將XGBoost方法應(yīng)用到實(shí)際生產(chǎn)過程中去將是本文后續(xù)的研究方向。