張 杰,張子蓬
(湖北工業大學計算機學院,湖北 武漢 430068)
中國白酒文化源遠流長,采用純糧谷類作物固態發酵釀造工藝[1]的中國白酒也是世界六大蒸餾酒之一,釀造好品質白酒的核心工藝是蒸餾,而上甑工藝[2]的好壞直接決定了蒸餾出白酒的質量。目前白酒蒸汽狀態還處于依靠檢測的方法,無法避免酒損。因此,準確地預測白酒蒸汽狀態具有顯著應用價值。然而白酒蒸汽狀態的變化受多種因素的影響,給白酒蒸汽狀態預測帶來很大的困難,同時也使其成為具有重要意義的工業問題。
近年來,部分釀酒企業開始采用上甑機器人進行上甑操作,其中武漢奮進智能機器有限公司首創了定制化上甑機器人[3]。機器人在探汽上甑過程中,需要時刻通過紅外熱成像儀獲取白酒蒸汽紅外輻射來監測白酒蒸汽的運行狀態,通過鋪料上甑來阻止白酒蒸汽跑出。目前機器學習技術已經常被用于許多個領域,其中基于機器學習的模型在蒸汽類預測中也獲得了一些不錯的效果,比如有:支持向量機回歸(SVM regression)[4]、決策樹回歸(Decision Tree regression)[5]、隨機森林回歸(Random Forest regression)[6]、人工神經網絡回歸(ANN regression)[7]。其中,人工神經網絡可以模擬人腦神經元進行工作,常被使用在各種復雜工作場景下進行預測。在蒸汽預測中,陳小強等[8]提出了一種基于GMDH神經網絡的超臨界機組的過熱蒸汽溫度預測模型,與線性神經網絡和BP神經網絡相比,預測精度有顯著提升。朱清智等[9]使用混沌搜索策略鯨魚優化算法(CAWOA)和并行極限學習機(PELM)對主蒸汽流量進行預測,獲得了較好的預測效果。謝七月等[10]介紹了基于改進自適應GPC的鍋爐主蒸汽溫度預測控制方法,相較于常規PID方法和GPC方法,對蒸汽溫度的預測取得了很好的效果。Valsalam等[11]使用卡爾曼濾波方法優化了鍋爐電廠的主蒸汽溫度預測模型。劉祥杰等[12]提出了基于NFGPC模糊神經網絡的非線性廣泛預測模型對過熱蒸汽溫度進行預測。Golob等[13]使用神經網絡模型預測了鍋爐蒸汽的分布。Nguyen等[14]提出了基于LSTM神經網絡模型和自動優化參數方法對蒸汽相關的時間序列數據進行預測。Alizamair等[15]使用多種機器學習模型和多種神經網絡模型對不同深度土壤溫度進行預測。Delcroix等[16]使用具有外源變量的自動回歸神經網絡模型對建筑物室內溫度進行預測。Asmaa等[17]使用LSTM對溫室作物的內部氣候變化進行預測。。
在以上研究中,大多使用人工神經網絡等模型實現蒸汽預測。而且對于白酒蒸汽狀態預測的方法缺少其他機器學習模型和深度學習模型的研究,比如門控循環單元模型(Gate Recurrent Unit)[18]。門控循環單元模型具有記憶神經元,能同時記憶短期行為和長期行為。這種模式使得門控循環單元很適合模擬自然過程的行為。同時,梯度提升樹(Gradient Boosting Decision Tree)是基于梯度下降算法[19],使用多個弱學習器加權求和組合成一個強學習器,這種集成學習的模式使得梯度提升樹在各個領域的預測研究得到普遍的使用。同時,白酒蒸汽狀態的特征因子很多,如:空氣濕度、酒醅濕度等,目前基于機器學習模型的特征因子重要性研究評估還沒有展開,另外在預測模型中各種蒸汽狀態特征因子的不同組合會高度影響預測模型的預測能力。
本文使用茅臺酒廠上甑機器人工作數據進行實驗,首先基于梯度提升樹計算白酒蒸汽狀態預測中每個特征因子的重要性大小,然后依此對特征因子進行多種組合,最后將各種特征因子輸入預測模型,本文使用梯度提升樹改進的門控循環單元作為蒸汽狀態預測模型,通過不同因素組合的最終預測性能來確定最終的重要特征因子集合。
本文在茅臺酒廠進行了測試。在上甑機器人(圖1)上下載了兩秒一采樣的半年數據(2020年1月1日至2020年6月30日),其特征因子分別為酒醅表面溫度(Surface Temperature),酒醅相對濕度(Relative Humidity),酒廠環境溫度(Ambient Temperature),甑桶內酒蒸汽氣壓(Steam Pressure),機器人輔料速度(Loading Speed),甑桶出酒量(Wine Yield),甑桶出酒速度(Production Speed),其中酒醅表面溫度是通過紅外熱成像儀在距甑桶頂70 cm處得到。茅臺鎮是我國重要的醬酒圣地,鎮內資源奇特,微生物體系奇異,具有得天獨厚的釀造環境,以盛產美酒而聞名海內外,被譽為中國第一酒鎮[20]。茅臺鎮屬于亞熱帶季風氣候,全年冬暖夏熱,高溫少雨,平均氣溫為18℃,夏季最高溫度為40℃,這種特殊氣候十分有利于釀造醬酒微生物的棲息和繁殖,核心產區內多達百余種微生物參與了醬酒的釀造過程。并且酒廠環境溫度、酒醅相對濕度對這些微生物在參與上甑蒸餾的釀造過程的蒸汽生成有很大影響,而目前白酒蒸汽狀態還依靠檢測,無法避免酒損,故白酒蒸汽預測對于白酒的釀造具有重要意義。

圖1 上甑機器人結構圖
本文主要研究兩個問題:
1)對于白酒蒸汽狀態預測時,每個特征因子的功能是不一樣的,白酒蒸汽狀態與每個特征因子和其組合之間的關系是怎樣的?
2)白酒蒸汽狀態預測是一種多維時間序列預測,什么樣的算法適合白酒蒸汽變化的規律?
面對以上疑問,本文提出了改進的門控循環單元融合模型(圖2)。對于多個上甑過程中的特征因子,不同的特征因子與白酒蒸汽狀態之間的相關性不一樣。先使用GBDT對每個特征因子進行重要性排序,對于排序后的特征因子,根據重要性來完成不同的組合,然后輸入門控循環單元模型,找到預測效果最優的特征因子輸入組合,最后基于門控循環單元模型分析白酒蒸汽狀態與其特征因子之間的關聯,得到預測結果。

圖2 改進的GRU模型的白酒蒸汽狀態預測流程圖
門控循環單元模型(GRU)是一種結構簡單,性能優良的循環神經網絡。具有記憶神經元的GRU可以同時記憶白酒蒸汽狀態與特征因子間的短期行為信息和長行為期信息。循環神經網絡可以讓輸入信息在神經元里被保存下來,但這種保存是無目的性的,且會產生梯度消失和梯度爆炸問題,因此后來出現了LSTM[21],有針對性的將重要信息記憶下來,不相關信息遺忘,這個過程通過LSTM的3個門函數:輸入門,遺忘門和輸出門來確定輸入值,遺忘值和輸出值,這樣就一定程度解決了循環神經網絡的序列訓練過程中的梯度爆炸和梯度消失問題,多用來進行時間序列的預測。
GRU的發展借鑒了LSTM神經網絡的門結構,與LSTM相比,GRU神經網絡的結構更簡單,效果也不錯,GRU模型通過兩個門函數:更新門和重置門完成和LSTM相似的過程,其中更新門值和重置門值的大小與上一時刻狀態信息權重正相關,門控制信號的范圍是0~1,更新門值越接近1,則上一時刻記憶下來的信息越多,反之則遺忘的信息更多,重置門值越接近0,則上一時刻信息遺忘的越多,從模型復雜度上來看,長序列訓練過程中需要適當遺忘一些信息,否則模型復雜度會增加,模型計算時間也會變長。GRU模型結構如圖3所示,其中,Xt是t時刻的輸入,ht是t時刻的輸出,zt是t時刻的更新門,rt是t時刻的重置門,σ是sigmoid函數,tanh是雙曲正切函數,?表示兩個矩陣的張量積,⊙表示兩矩陣對應位置元素相乘。

圖3 門控循環單元模型結構圖
更新門zt:用于確定上一時刻的狀態信息在當前狀態ht中的權重大小,通過sigmoid函數將數據變成0~1之間的數值,表示更新門控信號,越接近1說明上一時刻信息帶入的越多,即:
zt=σ(WzXt+Uzht-1+bz)
重置門rt:用于確定前一時刻的狀態信息在當前狀態下遺忘的的權重大小,通過sigmoid函數將數據變成0~1之間的數值,表示重置門控信號,越接近0說明上一時刻信息遺忘的越多,即:
rt=σ(WrXt+Urht-1+br)
得到門控信號后,使用重置門確定上一時刻狀態信息ht-1要遺忘的狀態信息權重,然后將重置之后的數據與當前的狀態信息輸入xt拼接,再一起輸入tanh激活函數將數據變成-1~1之間的數值,即:
最后在GRU中進行狀態信息的更新操作,使用求得的更新門控信號zt,對歷史狀態信息和當前狀態信息同時進行重置和更新兩個步驟,其中(1-zt)*ht-1表示對歷史狀態信息選擇性遺忘,zt*ht-1表示對當前狀態信息選擇性記憶,通過一個更新門控zt使遺忘和記憶始終處于一種穩態,即:
梯度提升樹模型(GBDT)是一種基于Boosting思想的集成學習模型,迭代地使用多個弱學習器加權求和組合成一個強學習器,將每一步的殘差訓練成下一輪的弱學習器,串行訓練以獲得較高的精度,誤差小于給定閾值時停止訓練,以優化預測效果。本文使用梯度提升樹算法計算特征因子在本模型的貢獻率,從而評估該特征因子對于模型的重要性。流程為:首先求出特征因子a對于一個弱學習器的重要性,原因是當特征因子a作為每一輪弱學習器生成條件,若模型損失函數值變化越大,說明該特征因子越重要,N-1是非葉子節點,qi是與節點i關聯的特征因子,計算得到特征因子a的損失值,將每個平方損失值累加起來,得到每一個弱學習器中特征因子a的重要性。然后計算特征因子a對于整個強學習器的影響程度,對每個含有特征因子a的弱學習器的重要程度求和,然后求均值。對每個特征因子進行上述操作,得到所有特征因子的重要性排序,對于排序后的特征因子,根據重要性來完成不同的組合:
2.2.1數據采集本文選取酒廠上甑機器人上甑過程相關數據,采集茅臺酒廠某車間1號上甑機器人半年的上甑數據,約八萬個樣本。本文數據集按照時間順序將樣本劃分為訓練集、驗證集和測試集,劃分比例為7∶2∶1,54 600條數據作為訓練集,15 600條數據作為驗證集,7800條數據作為測試集。
均方根誤差:
平均絕對誤差:
可決系數:
按照時間順序將樣本劃分為訓練集X_train、驗證集X_val和測試集X_test,劃分比例為7∶2∶1。
2.2.2搭建門控循環單元神經網絡模型本文改進的門控循環單元網絡中的超參數有每一批訓練個數、訓練輪數,每一層隱藏層神經元個數、舍棄率、學習率、特征因子的選取,這些超參數都和預測性能高度相關。在確定門控循環單元個數時,初始化每一批訓練個數100,訓練輪數150,學習率0.001,舍棄率0.5,選取特征因子有酒醅表面溫度,酒醅相對濕度,甑桶內酒蒸汽氣壓。選取[16,32,64,128]來分別測試門控循環單元神經元個數,進一步確定最優的門控循環單元的神經元個數,然后用相同的思想來通過選取[50,150,200,250,300,350,400]進而來確定最優的每一批訓練個數,然后再從[50,250,350,450,550,650,800]選取最優的訓練輪數,從[0.0001,0.00001,0.000001]中選取最優的學習率,從[0.4,0.3,0.2,0.1]中選取最優的舍棄率。將以上超參數確定之后,也確定了門控循環單元預測模型的最優結構。下一步對特征因子進行選取測試,根據梯度提升樹算法模型計算每個特征因子(酒醅表面溫度,酒醅相對濕度,酒廠環境溫度,甑桶內酒蒸汽氣壓,機器人輔料速度,甑桶出酒量,甑桶出酒速度)的重要性值大小,然后依此對特征因子進行各種組合,然后輸入門控循環單元預測模型中,根據預測結果判斷哪些特征因子組合對白酒蒸汽狀態預測的影響更大。其中,門控循環單元預測模型輸入特征的維度(input_dim)是特征因子的個數。本文選取茅臺酒廠上甑機器人上甑過程相關數據進行實驗,門控循環單元神經元個數(node_size),訓練輪數(train_epoch),每一批訓練個數(batch_size),學習率(learning_rate),舍棄率(dropout)的預測結果見表1-表5。

表1 神經元個數對于白酒蒸汽狀態預測結果

表2 訓練輪數對白酒蒸汽狀態預測結果

表3 每一批訓練個數對白酒蒸汽狀態預測結果

表4 學習率對白酒蒸汽狀態預測結果

表5 舍棄率對白酒蒸汽狀態預測結果
根據表1觀察得到,不同的超參數構建的模型的預測能力也是不同的,當神經元節點個數過多時容易使模型產生過擬合,即偏差小、方差大,模型弱化了對新數據的預測能力,而當神經元節點過少時就容易使模型失去一定的擬合能力,進而不能準確表現出白酒蒸汽狀態與其他特征因子之間的相關性,當神經元節點個數為32時,模型預測最優;根據表2觀察得到,訓練輪數過小會讓模型不能收斂,訓練輪數過大會使模型產生過擬合,同時預測能力不再變高,當訓練輪數為650輪時,此時模型預測最優;類似的,根據表3觀察得到,每一批訓練個數決定了一次處理多少的訓練樣本信息,批次處理量過小會使模型無法收斂,當批次處理個數為350時,模型最優;根據表4觀察得到,當學習率過小時收斂過程十分緩慢,且容易陷入局部最優,當學習率過大時容易在最優值附近來回震蕩,當學習率為0.00001時,模型最優,由此得到最優模型主要超參數,進而也得到了門控循環單元預測模型結構。
2.2.3模型選取特征因子在確定門控循環單元預測模型結構后,進一步分析不同特征因子的組合對模型的預測效果,改進的門控循環單元模型的整體數據處理流程見圖2,首先計算得到所有特征因子的重要性(圖4)。在使用梯度提升樹計算特征因子時,對梯度提升樹模型的三個重要超參數(學習率(learning_rate),回歸樹的個數(sub_tree),每棵獨立樹最大深度(max_depth))進行相應的損失減少值測試,方便確定最優參數,經過計算如表6所示,確定超參數取值(加粗為最優超參數)。

表6 各種超參數的梯度提升樹對比

圖4 特征因子重要性
根據實驗分析得到,特征因子按照其重要性降序排序為:酒醅表面溫度、酒廠環境溫度、甑桶內酒蒸汽氣壓、機器人輔料速度、甑桶內酒蒸汽氣壓、甑桶出酒速度、甑桶出酒量。按照特征因子的重要性依次組合出預測模型的輸入:酒醅表面溫度(input_1),酒醅表面溫度+酒廠環境溫度(input_2),酒醅表面溫度+酒廠環境溫度+甑桶內酒蒸汽氣壓(input_3),酒醅表面溫度+酒廠環境溫度+甑桶內酒蒸汽氣壓+機器人輔料速度(input_4),酒醅表面溫度+酒廠環境溫度+甑桶內酒蒸汽氣壓+機器人輔料速度+甑桶內酒蒸汽氣壓(input_5),酒醅表面溫度+酒廠環境溫度+甑桶內酒蒸汽氣壓+機器人輔料速度+甑桶內酒蒸汽氣壓+甑桶出酒速度(input_6),酒醅表面溫度+酒廠環境溫度+甑桶內酒蒸汽氣壓+機器人輔料速度+甑桶內酒蒸汽氣壓+甑桶出酒速度+甑桶出酒量(input_7)。使用改進的門控循環單元預測模型對以上的各種組合進行測試,來確定最優的特征因子組合,如表7所示。由測試得到,使用酒醅表面溫度、酒廠環境溫度和甑桶內酒蒸汽氣壓的組合輸入,能夠讓模型的預測效果最優。

表7 特征因子組合的預測結果
2.2.4不同模型效果比較本文模型與幾種常見模型進行了比較,如表8所示。本文模型與其他模型相比,RMSE,MAE均更小,可決系數更大。因此,本文的方法在白酒蒸汽狀態的預測中是優于其他模型的。

表8 本模型與常見模型結果比較
本文提出了使用梯度提升樹改進的門控循環單元預測模型,來實現白酒蒸汽狀態的預測,目前白酒蒸汽狀態還處于依靠檢測的方法,無法避免酒損,因此,白酒蒸汽預測對于白酒的釀造意義重大。本文模型基于茅臺酒廠上甑機器人上甑數據進行訓練和測試,首先使用梯度提升樹計算白酒蒸汽狀態預測中每個特征因子的重要性大小,然后依此對特征因子進行多種組合,最后將各種特征因子輸入預測模型,本文中使用門控循環單元作為預測模型,根據各種特征因子組合的預測效果來確定最重要的特征因子。實驗結果表明:本文提出的改進的門控循環單元模型與常見預測模型相比,預測效果更優。由于數據采集限制,本文主要是對2020年1月1日至2020年6月30日的半年數據進行分析,全年不同月份氣候對預測模型性能的影響還需要進一步探索。