許少新 杜漸 鄭堅欽 李舒丹 黃麗燕 梁永圖
1中國石化銷售有限公司華南分公司
2中國石油大學(北京)
建立油庫出庫量的預測模型能有效維持出入庫的平衡,同時指導、規劃石油企業的生產計劃以適應市場需要,使石油企業的生產運營更加規范化,合理地制定生產計劃,提高生產效益[1-5]。擁有穩定的庫存管理策略和定量分析方法,可減少人為因素對企業決策的干擾,提高決策的效率和科學性,可增加庫存的敏捷性和彈性,提升物流運作效率,使倉儲和庫存配置更加合理,進而提高油庫利用效率[6-10]。
中化格力有限公司利用油庫出租率和油庫周轉系數建立關于油庫入庫量的經驗公式,預測得到每年的入庫量后,基于歷史出入庫量之間的平均比值關系對出庫量進行預測[11]。PRAVEEN 等[12]引入人工神經網絡(ANN)算法,并結合數據趨勢(線性趨勢、二次趨勢)對庫存進行預測。CRONE[13]基于庫存歷史數據存在的時間序列特性,利用ANN 算法優化了庫存管理模型。
目前出庫量的預測對于年出庫量預測具有一定的參考價值,但仍有以下幾點不足:①預測的時間周期主要是年預測,對于油庫短期內的出庫計劃指導能力有限;②對于出庫量影響因素的考慮不夠充分;③基于公式法的預測對于數據非線性關系的擬合能力較差。
通過對成品油出庫量的歷史數據進行分析和調研,注意到天氣和國際油價對于出庫量的變化有較大影響[14]。ANN 作為一種深度學習算法,其對于非線性數據有著優良的學習能力,且對于變量間相互的依賴關系有著較強的分析處理能力,同時由于網絡自身所具有的自適應、自學習、自組織特性和高速計算能力[15],使得ANN 在分析和處理油庫出庫量以及影響出庫量的自變量(天氣、油價)時能夠得到較為準確的結果。目前,ANN 在油氣智能化領域獲得了較為廣泛的應用[16-17]?;诖耍疚睦肁NN 算法,同時考慮自變量對出庫量的影響規律建立關于油庫出庫量的預測模型。
一個基本的ANN 神經元如圖1 所示,在接收到上一層所有神經元的輸入后,先將其匯總為之后通過本單元的激活函數將匯總到的輸入轉化為輸出,并將輸出值傳遞給下一層的神經元。

圖1 ANN 神經元基本結構示意圖Fig.1 Schematic diagram of basic structure of ANN neuron

式中:w1j~wnj為神經元各個突觸的權值,x1~xn為輸入神經元的多個分量;θ為偏置;yi為神經元的輸出值;f為激活函數[18]。
人工神經網絡包含多個神經元和多個層結構,基本的三層神經網絡結構如圖2 所示。首先在輸入層給定天氣、國際油價等自變量后,輸入層將信息整合并傳遞給隱藏層,隱藏層的每一個神經元都會對上一層的信息進行匯總并通過激活函數將其轉為輸出傳遞給輸出層,最后由輸出層的神經元將接收到的值處理為最終的出庫量結果,這是一個信息正向進行傳遞的過程。而神經網絡為了優化自身的學習情況和輸出結果,還會將網絡輸出的出庫量與訓練集的因變量(出庫量)進行對比得到偏差,這個偏差會沿網絡進行反向傳遞,并不斷更新各層的權值大小,直到最后偏差收斂,網絡學習結束。

圖2 三層神經網絡結構Fig.2 ANN architecture with 3 layers
基于ANN 的出庫量預測模型構建流程如圖3 所示。首先統計出庫量數據,剔除冗余項并爬取天氣以及油價數據,對數據中存在的異常值和缺失值進行處理,并通過最大-最?。╩ax-min)歸一化方法對數據進行標準化處理。將處理好的數據劃分為訓練集和測試集,利用訓練集對ANN 模型進行訓練更新其權值使網絡的偏差收斂,之后將測試集放入模型中計算得到出庫量預測結果,并計算預測效果的評價指標。

圖3 ANN 建模流程Fig.3 Modeling process of ANN
在統計并匯總出庫量數據后,為使數據更加平穩,將原始以kg 為單位的出庫量數據轉化為以t 為單位。在實際獲取數據時,人為疏漏以及測量儀器的故障都會導致數據中出現一些異常值和缺失值,實驗中通過求取平均值對異常值和缺失值進行填充。
數據歸一化即數據標準化,是將數據中每個值通過等比例的方法縮小到某一特定區間內,數據歸一化對于提高模型收斂速度以及求解精度有著十分重要的作用。本實驗采用的數據歸一化方法是最大-最?。╩ax-min)歸一化方法,出庫量數據X={x1,x2,...,xn},對其中每個x進行如下處理:

式中:xmin為出庫量數據中x的最小值;xmax為出庫量數據中x的最大值;xinput為處理后的模型輸入數據;xi為輸入的原始出庫量數據。
采用平均絕對百分比誤差(MAPE)和擬合系數(R2)來評估模型的預測效果。
平均絕對百分比誤差可以反映出預測值與真實值之間的偏差情況。

擬合系數用以表征預測結果相較于真實值的擬合情況。

式中:m為預測樣本個數;yi為第i個預測樣本的真實值;為預測樣本的平均計算結果;為第i個預測樣本的預測值[19]。
本文選取的數據是某地成品油油庫1 年內的出庫量,原始數據中包含冗余信息,首先對數據進行預處理得到2019 年的出庫量數據,部分數據見表1。

表1 某地出庫量部分數據統計結果Tab.1 Partial statistical results of output in a certain area
通過調研和分析出庫量的歷史數據,發現出庫量的大小受諸多因素的影響,例如天氣情況以及國際油價的影響??紤]到引入自變量對于模型整體求解精度帶來的較大提升作用,利用python 編程環境對當地2019 年天氣情況和油價數據進行爬取,表2是匯總的部分自變量數據。

表2 自變量部分統計結果Tab.2 Partial statistical results of independent variable
HECHT-NIELSON 等對神經網絡對于非線性問題的逼近和分析能力進行了研究,結果證明,三層神經網絡的分析處理結果精度較高[20],所以本文中的ANN 設置為單隱藏層和輸入輸出層共同組成三層神經網絡結構。在神經元數量的選取上,輸入層神經元數量對應于自變量的數據維度個數,本文中為5。對于一般的非線性回歸問題,輸出層神經元一般設置為1 個;而對于隱藏層神經元個數的選取,如果數量過少,會導致模型出現欠擬合的情況,如果過多則會出現過擬合并使得模型訓練時間增加的情況,所以在實際選取隱藏層節點個數時,通常采取試湊法和經驗法[21]。對于本文中的非線性問題,當輸入層與隱藏層之間選擇tanh 函數,隱藏層與輸出層之間選擇relu函數時,可以得到最優的模型擬合效果,同時為防止使用relu激活函數產生梯度消失的情況,設置學習率為0.001并進行初始化。
通過對三種油品進行預測建模后得到如圖4~圖6的預測結果。在進行預測模型訓練時,將原始數據單位轉化為t 以提高數據平穩性。由圖4、圖5 以及圖6 可看出,借助ANN 對于非線性數據良好的學習性,同時引入自變量與因變量之間相互的變化關系,得到的出庫量預測模型精度較高,92#和95#汽油預測誤差較小,總體誤差小于15%,0#柴油的預測誤差偏大。三種油品的預測效果對比見表3。

圖4 0#柴油預測結果Fig.4 Prediction results of 0# diesel

圖5 92#汽油預測結果Fig.5 Prediction results of 92# gasoline

圖6 95#汽油預測結果Fig.6 Prediction results of 95# gasoline

表3 預測效果對比Tab.3 Comparison of prediction results
對于油庫出庫量的預測以得到較高可信度的預測模型為目的。本文提出了一種基于ANN 算法并結合多個對油庫出庫量存在影響的自變量(天氣、油價)的出庫量預測模型,不同于經驗公式法,基于機器學習算法的預測模型能夠很好地擬合數據的非線性特點,并且對于自變量的影響規律有著較強的學習和分析能力。在構建ANN 預測模型時通過對神經網絡層結構、各層神經元數量的確定以及激勵函數的選取,不斷優化預測模型的擬合效果。結果表明,基于ANN 的油庫出庫量預測模型總體誤差小于15%,預測結果的擬合程度整體能達到90%以上,這對于未來出庫量能夠提供較為準確的參考依據,有助于指導現場生產管理。