胡艷娟,胡 偉,潘雷霆
(長春工業(yè)大學(xué) 機電工程學(xué)院, 吉林 長春 130012)
在云制造環(huán)境下物流資源配置得到了優(yōu)化,企業(yè)實現(xiàn)了信息、資源共享,這對物流企業(yè)也提出了新的挑戰(zhàn)。物流企業(yè)為了增強整體實力和競爭力,需要有效解決供需雙方不斷變化的需求。
物流運輸過程的供需雙方為了防止缺貨而人為地增加安全庫存。同時,物流配送服務(wù)中產(chǎn)生的服務(wù)成本以及配送時路況變化的影響也是不容忽視的。這些問題累加到一定程度將會導(dǎo)致牛鞭效應(yīng)的產(chǎn)生,為了預(yù)防這一情況,需要對物流需求進(jìn)行預(yù)測。
在云制造平臺上,匯集了大量的物流資源與服務(wù),并實現(xiàn)了物流資源信息共享。物流資源調(diào)度過程中,云制造平臺通過對客戶未來需求進(jìn)行預(yù)測,并結(jié)合用戶所需服務(wù)容量評估平臺內(nèi)物流資源提供方的服務(wù)能力。這種模式下,用戶可以根據(jù)自身需求,以租賃的方式從云平臺獲取對應(yīng)的資源與服務(wù)。因此,云制造模式下的物流資源需求預(yù)測方法需要考慮客戶需求信息多變性、物流任務(wù)時序的不確定性和物流服務(wù)的其他性質(zhì),使得物品屬性與物流資源屬性相匹配。
物流企業(yè)大多采用經(jīng)驗預(yù)測法和傳統(tǒng)預(yù)測法[1]預(yù)測所需的物流資源。但是,經(jīng)驗預(yù)測法過于主觀、缺乏科學(xué)依據(jù),對客戶需求進(jìn)行長期預(yù)測時,存在較大的誤差。傳統(tǒng)預(yù)測法在處理離散型數(shù)據(jù)時,難以取得理想的預(yù)測效果。此外,傳統(tǒng)需求預(yù)測方法很少考慮到需求量和相關(guān)影響因素的內(nèi)在影響關(guān)系。近年來,眾多學(xué)者對深度學(xué)習(xí)理論在資源需求預(yù)測方面進(jìn)行了深入研究。
文中在云制造環(huán)境下采用一種基于LSTM框架的需求預(yù)測模型,該模型與其他預(yù)測模型相比,能夠更好地利用平臺閑置的物流資源,實現(xiàn)物流資源信息精準(zhǔn)預(yù)測。
物流運輸過程中受時間變化、突發(fā)事件等非線性因素影響,單一物流需求預(yù)測模型的預(yù)測效果差,難以滿足物流管理的實際要求。為解決上述問題,國內(nèi)外學(xué)者紛紛對物流資源需求預(yù)測進(jìn)行研究。楊建成[2]分析了ARIMA與SVM的優(yōu)缺點,并在此基礎(chǔ)上提出了基于ARIMA-SVM的物流需求預(yù)測模型,該模型可有效提高物流需求預(yù)測精度;牛思佳等[3]提出利用熵權(quán)法和灰色預(yù)測法相結(jié)合,對北京大興機場航空物流吞吐量進(jìn)行預(yù)測,得出在未來5年內(nèi)機場貨郵吞吐量預(yù)測值,但是這種方法在處理較大數(shù)據(jù)時缺少魯棒性,其模型在進(jìn)行大數(shù)據(jù)和長期預(yù)測時缺乏長效性和擴展能力;Kohestani V R等[4]采用隨機森林和 Keras回歸神經(jīng)網(wǎng)絡(luò)算法對食品需求量進(jìn)行預(yù)測,實驗表明,采用隨機森林算法模型的性能優(yōu)于人工神經(jīng)網(wǎng)絡(luò)模型的性能。深度學(xué)習(xí)是一種模仿人類大腦來認(rèn)識數(shù)據(jù)模式的學(xué)習(xí)算法[5]。在處理非結(jié)構(gòu)化數(shù)據(jù)(如圖像、文本、語音等)方面體現(xiàn)出極為優(yōu)越的性能。如Zhuo Q Z[6]等提出的有長短時記憶(LSTM)神經(jīng)網(wǎng)絡(luò)模型;劉明宇等[7]提出門控循環(huán)單元(GRU);Zhao X等[8]提出神經(jīng)網(wǎng)絡(luò)模型和棧式自編碼(SAE)神經(jīng)網(wǎng)絡(luò)模型等優(yōu)化模型參數(shù),不斷逼近理想?yún)?shù)值,優(yōu)化模型整體性能;Altche F等[9]提出使用長短期記憶(LSTM)網(wǎng)絡(luò)能夠有效處理關(guān)于時間序列的相關(guān)問題。也有學(xué)者發(fā)現(xiàn)其他深度學(xué)習(xí)的方法,如量子生成對抗網(wǎng)絡(luò)[10](QGANs),它是利用量子信息原理把輸入特征映射到輸出分類,Wang G等[11]將其改進(jìn)提出了前饋神經(jīng)網(wǎng)絡(luò)(FNN)等,這些方法都可以運用到物流資源需求預(yù)測中。
在其他領(lǐng)域中,深度學(xué)習(xí)方法在需求預(yù)測方面也有一定的借鑒意義。 戴穩(wěn)等[12]為了預(yù)測銑刀磨損損耗程度,簡化了傳統(tǒng)信號處理過程,并提出基于堆疊稀疏自動編碼網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的兩種預(yù)測模型,實驗驗證了其模型具有更好的效率與更優(yōu)的精度;張陽等[13]提出一種改進(jìn)小波包分析和長短時記憶神經(jīng)網(wǎng)絡(luò)組合(IWPA-LSTM)的短時交通流預(yù)測方法,來克服交通流在不穩(wěn)定狀態(tài)下,較短時間內(nèi)交通流預(yù)測精度不高、過分依賴大量的歷史數(shù)據(jù)等缺陷。
云制造環(huán)境下物流資源調(diào)度系統(tǒng)如圖1 所示。
圖1中,云平臺根據(jù)獲取需求方的歷史物流需求數(shù)據(jù)及其相關(guān)數(shù)據(jù)(a),利用自身強大的計算能力將這些數(shù)據(jù)轉(zhuǎn)化為多個物流任務(wù),形成任務(wù)池(b),并考慮到極端天氣(雨、雪等)和交通堵塞等影響物流需求因素。把這些物流任務(wù)及其影響因素代入到物流資源預(yù)測模型(c)。將這些預(yù)測結(jié)果和原先等待的物流任務(wù)匯集起來形成新的任務(wù)池(d),評估該任務(wù)池中物流任務(wù)所需的物流服務(wù)容量和類型,同時,評估云制造平臺上閑置的物流服務(wù),根據(jù)不同的物流服務(wù)特征來劃分物流服務(wù)類型,并融合到平臺的資源池(e)中。根據(jù)資源池中的物流服務(wù)類型與任務(wù)池中的物流任務(wù),按照時間順序進(jìn)行對應(yīng)(f),實現(xiàn)物流資源實時調(diào)度(g)。然而,在物流資源智能調(diào)度過程中,到達(dá)云平臺中物流任務(wù)的類型、時間等都具有不可預(yù)測性。所以,需要對所需的物流資源進(jìn)行預(yù)測,以滿足即將到達(dá)云平臺的物流任務(wù)所需要的物流服務(wù)。另外,在云制造環(huán)境下,除了需要預(yù)測即將達(dá)到的物流任務(wù),并及時提供需求方所需的物流服務(wù),還需要充分考慮與物流資源需求量相關(guān)因素的內(nèi)在關(guān)聯(lián),并選擇所需要預(yù)測的目標(biāo)和采用合適的算法。
圖1 云制造平臺中物流資源調(diào)度系統(tǒng)
與傳統(tǒng)的機器學(xué)習(xí)相比,基于長短期記憶網(wǎng)絡(luò)(LSTM)建立的模型面對復(fù)雜多變的環(huán)境,仍然可以有效預(yù)測物流需求。而且LSTM模型還能有效避免RNN模型在預(yù)測過程中出現(xiàn)梯度消失與梯度爆炸的現(xiàn)象。它包含輸入層、隱藏層和輸出層,同時,層與層之間連接方式是全連接的,且序列數(shù)據(jù)將隨時間步長遞增。
影響需求變化的因素主要為三類:需求方所需服務(wù)類型發(fā)生變化、市場行情對需求的擾動、極端天氣和不可抗拒災(zāi)害。文中記錄5種影響因素判斷指標(biāo),分別是客戶滿意度、市場期望值和雨、雪、交通事故的記錄次數(shù),并對其進(jìn)行歸一化處理[14],將其轉(zhuǎn)化為監(jiān)督問題。
(1)
式中:Xi----評估結(jié)果i;
Ei----相對重要程度i。
預(yù)測目標(biāo)是預(yù)測即將達(dá)到任務(wù)所需的物流資源需求量(見圖1)。根據(jù)周期性到達(dá)平臺的配送需求歷史數(shù)據(jù),預(yù)測接下來配送服務(wù)需求量,據(jù)此產(chǎn)生虛擬需求量補充到調(diào)度模塊的決策隊列中??梢酝ㄟ^使用上一個時間步長t0的需求量z0作為輸入,預(yù)測當(dāng)前時間步長t1的需求量z1作為輸出來實現(xiàn)。
采用單步預(yù)測方式對預(yù)測系統(tǒng)中的模型進(jìn)行訓(xùn)練,設(shè)定1 h為一個單位時間步長,用過去三個時間單位步長的樣本數(shù)據(jù)zm、zm+1、zm+2預(yù)測當(dāng)下一個單位時間步長的樣本數(shù)據(jù)zm+3。采用標(biāo)簽編碼方式對樣本數(shù)據(jù)按時序進(jìn)行編碼,輸出時也按照時序輸出預(yù)測的數(shù)據(jù),并標(biāo)記標(biāo)簽,即:
(2)
Γ(z0,z1,z2,z3,…,zn)≈Outn,
(3)
式中:datan----n時刻需求數(shù)據(jù);
j----影響需求預(yù)測因素的類型;
tm----m時刻的時間步長。
z0,z1,z2,z3,…,zn----分別為樣本在0~n時刻輸入的序列樣本;
Outn----樣本在0~n時刻輸出標(biāo)簽。
模型權(quán)重參數(shù)求解采用常見的梯度下降法,通過迭代逼近求取權(quán)重參數(shù)最佳值。文中采用sigmoid函數(shù)f(z)和tanh函數(shù)g(z)作為預(yù)測模型訓(xùn)練的激活函數(shù)[15],即:
(4)
g(z)=2f(2z)-1。
(5)
采用均方根誤差和平均絕對誤差作為預(yù)測模型訓(xùn)練的損失函數(shù),并采用RMSE優(yōu)化算法和MAE優(yōu)化算法作為線索尋求最優(yōu)參數(shù)來評價模型的性能水平。優(yōu)化器則選用Adam[16]優(yōu)化器進(jìn)行梯度優(yōu)化,使得模型準(zhǔn)確率不斷提高,即:
(6)
(7)
式中:m----迭代次數(shù);
yi----實際值;
文中數(shù)據(jù)來源于南方某個物流公司的物流需求數(shù)據(jù)[17],對數(shù)據(jù)進(jìn)行整合后,對其進(jìn)行脫敏、歸一化處理。處理后的需求數(shù)據(jù)樣本一共有9 000個,按照配送服務(wù)完成時間為基準(zhǔn),并以小時為單位統(tǒng)計。將數(shù)據(jù)樣本分為訓(xùn)練組和測試組。其中,訓(xùn)練組的樣本數(shù)據(jù)數(shù)量為8 775個,測試組的樣本數(shù)據(jù)數(shù)量為225個。
ARIMA(p,q,d)模型[18]由三部分組成:AR(p)表示p階自回歸模型;d為差分階數(shù),記作I(d);q階移動平均模型,記作MA(q)。雖然ARIMA預(yù)測模型簡單,不需要依靠其他外界因素的數(shù)據(jù)也可以精準(zhǔn)預(yù)測。但是,他要求數(shù)據(jù)的時間序列是穩(wěn)定的,且具有線性關(guān)系,而物流需求預(yù)測需要考慮到多重影響因素。
RNN神經(jīng)網(wǎng)絡(luò)在處理時間序列問題時,具有良好的效果。然而,RNN神經(jīng)網(wǎng)絡(luò)模型隨著時間軸傳遞會出現(xiàn)梯度消失和梯度爆炸的現(xiàn)象,在處理長周期的時間序列問題時,RNN模型會顯得力不從心。因此,需引入LSTM神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),并訓(xùn)練LSTM的相關(guān)算法。
RNN神經(jīng)網(wǎng)絡(luò)和 LSTM神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
相比RNN只有一個傳遞狀態(tài)Ht,LSTM則有兩個傳輸狀態(tài):Ct(cell state)和Ht(hidden state)。LSTM是通過一種“門”結(jié)構(gòu)來達(dá)到對傳遞信息保護(hù)和控制目的。這三個門分別為輸入門、遺忘門和輸出門。
RNN神經(jīng)網(wǎng)絡(luò)和 LSTM神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
遺忘門對于上一個節(jié)點傳送的數(shù)據(jù)信息進(jìn)行選擇性記憶。主要通過忘記函數(shù)Ft讀取上一隱藏狀態(tài)Ht-1和這一階段輸入xt,控制上一狀態(tài)Ct-1。其中,Ct-1的數(shù)值介于0到1之間。1表示“完全保留”,0表示“完全舍棄”,見圖3(a)。
Ft=Φ(Wf·[Ht-1,xt]+bf),
(8)
式中:Φ----sigmoid函數(shù);
Wf----遺忘門的權(quán)重矩陣;
bf----遺忘門的偏置項。
(a) RNN
(b) LSTM
(a) 遺忘門
(b) 輸入門
(c) 輸出門
輸入門對上一個節(jié)點傳送的數(shù)據(jù)信息進(jìn)行選擇性記憶。主要是對輸入xt進(jìn)行選擇記憶。首先,輸入門中的sigmoid層決定哪些信息需要更新;再通過tanh層生成一個向量,也就是備選的用來更新的內(nèi)容it。
it=Φ(Wi·[Ht-1,xt]+bi),
(9)
式中:Wi----輸入權(quán)重矩陣;
bi----輸入門的偏置項;
it----輸入函數(shù)。
其次,我們把這兩部分聯(lián)合起來,更新Ct的狀態(tài),將舊狀態(tài)Ct-1更新為Ct、Ct-1與Ft相乘,丟棄掉確定不需要的信息。t中tanh激活函數(shù)將內(nèi)容歸一化至-1到1之間;接著加上itt,即新的候選值,并根據(jù)我們決定更新每個狀態(tài)的程度進(jìn)行變化,見圖3(b)。
(10)
Ct=Ct-1Ft+ict,
(11)
輸出門ot首先需要運行一個sigmoid函數(shù)確定將要輸出的部分。通過tanh函數(shù)進(jìn)行處理,將數(shù)值范圍控制在-1到1之間,并將它和sigmoid門的輸出相乘,見圖3(c)。
ot=Φ(Wo·[Ht-1,xt]+bo),
(12)
Ht=ot*tanh(Ct),
(13)
式中:Wo----輸出權(quán)重矩陣;
bo----輸出門偏置項。
文中采用LSTM 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練流程,如圖4所示。
圖4 LSTM神經(jīng)網(wǎng)絡(luò)的訓(xùn)練流程
輸入:各個時刻(T1,T2,T3,…,Tn)的配送點需求量和導(dǎo)致配送異常的影響因素異常值。
1)創(chuàng)建LSTM神經(jīng)網(wǎng)絡(luò)。
2)輸入T1、T2時刻配送點需求量和導(dǎo)致配送異常的影響因素常值。
3)將T1、T2時刻數(shù)據(jù)進(jìn)行訓(xùn)練,輸出訓(xùn)練后的期望值。
4)輸入T2、T3時刻配送點需求量和導(dǎo)致配送異常的影響因素異常值。
5)將T2、T3時刻數(shù)據(jù)進(jìn)行訓(xùn)練,輸出訓(xùn)練后的期望值。
6)直至完成對Tn-1時刻數(shù)據(jù)訓(xùn)練,輸出最后一個期望值Tn。
7)LSTM神經(jīng)網(wǎng)絡(luò)訓(xùn)練完成。
輸出:LSTM神經(jīng)網(wǎng)絡(luò)訓(xùn)練后的結(jié)果。
實驗配置見表1。
表1 實驗環(huán)境配置
采用Tensorflow[19]深度學(xué)習(xí)框架,編程語言版本為Python3.7,在anaconda環(huán)境下建立物流資源需求預(yù)測模型。為了避免過擬合情況出現(xiàn),將物流資源數(shù)據(jù)樣本分為訓(xùn)練組和測試組,并評估測試組的數(shù)據(jù)。訓(xùn)練數(shù)據(jù)是模型不斷調(diào)整權(quán)重的集合,測試數(shù)據(jù)是用于測試模型性能。
ARIMA模型的參數(shù)p、q、d值分別設(shè)置為5,1,0。LSTM預(yù)測模型和RNN預(yù)測模型參數(shù)設(shè)置相同,輸入節(jié)點個數(shù)設(shè)置為50,輸出1個節(jié)點,迭代次數(shù)為1 000次,批處理參數(shù)為64,實驗次數(shù)為100次。最終得到未來225 d的物流需求量的預(yù)測值,如圖5所示。
其中,圖5表示LSTM、RNN與ARIMA三種網(wǎng)絡(luò)模型預(yù)測值和真實值的比較。由于圖像不具備較好的觀測效果,故針對預(yù)測結(jié)果進(jìn)行卡方擬合檢驗[20]。首先分別假設(shè)LSTM、RNN與ARIMA三種網(wǎng)絡(luò)預(yù)測結(jié)果不符合真實值;然后,分別將LSTM、RNN與ARIMA三種網(wǎng)絡(luò)的預(yù)測值代入下式
(14)
式中:ε----卡方擬合檢驗的觀測值;
Oi----預(yù)測值;
Ei----真實值。
LSTM與RNN方法相比,LSTM物流資源預(yù)測模型比RNN物流資源預(yù)測模型的誤差值要小,而且在運算過程中表現(xiàn)出更好的迭代效果。
訓(xùn)練組曲線和測試組曲線對比如圖6所示。
(a) LSTM
(b) RNN
(c) ARIMA
圖6 訓(xùn)練組曲線和測試組曲線對比
在模型訓(xùn)練方面,LSTM訓(xùn)練組曲線和RNN訓(xùn)練組曲線幾乎重合,收斂性一致。而在模型測試方面,相同迭代次數(shù)下LSTM測試組損失值明顯小于RNN測試組損失值,故有更好的迭代效果。
為了不同方法構(gòu)建的模型之間的精準(zhǔn)度。對這些預(yù)測模型進(jìn)行仿真。根據(jù)仿真結(jié)果可以發(fā)現(xiàn),采用LSTM預(yù)測模型,其預(yù)測結(jié)果明顯好于采用RNN和ARIMA預(yù)測模型的預(yù)測結(jié)果。
不同算法下的預(yù)測值見表2。
表2 不同算法下的預(yù)測值表
從表2中清晰看出,LSTM物流需求預(yù)測模型的預(yù)測效果更加顯著。因此,采用LSTM神經(jīng)網(wǎng)絡(luò)建立物流需求預(yù)測模型效果最好。
由于誤差評價指標(biāo)常常采用均方根誤差(RMSE)和平均絕對誤差(MAE)兩種,文中也針對其優(yōu)劣進(jìn)行了比較實驗。性能評測如圖7所示。
(a) RMSE
(b) MAE
從圖7可以看出,模型采用MAE損失函數(shù)的誤差值10.212,而采用RMSE損失函數(shù)的誤差值11.724,說明采用MAE損失函數(shù)更能反映預(yù)測值誤差的實際情況。模型在不同時期的性能評測見表3。
從表3可以看出,使用MAE損失函數(shù)的平均誤差值小于RMSE。此外,分別對不同比例的樣本數(shù)據(jù)進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練,其結(jié)果仍然是MAE的誤差值小于RMSE的誤差值。因此,采用MAE損失函數(shù)的預(yù)測模型,預(yù)測精度更高,其預(yù)測需求量更加接近實際需求量。
表3 性能評測表
研究了云制造環(huán)境下物流資源需求預(yù)測問題,首先,在云制造環(huán)境下需要評估即將進(jìn)行的任務(wù)所需服務(wù)容量,提前將要到達(dá)的任務(wù)安排好合適的服務(wù)窗口。其次,針對物流任務(wù)所需服務(wù)容量的不確定性這一問題提出的基于LSTM物流資源需求預(yù)測模型可以在多重因素影響下準(zhǔn)確預(yù)測客戶需求,為合理調(diào)整調(diào)度方案提供科學(xué)依據(jù)。最后,分別采用多種評價指標(biāo)反映預(yù)測值誤差情況,在對物流資源需求預(yù)測時,MAE損失函數(shù)有更好的表現(xiàn)。