吳學(xué)華,馬曉華,婁海川,韓曉春,丁 杰,侯衛(wèi)鋒
(浙江中控軟件技術(shù)有限公司,浙江 杭州 310053)
隨著現(xiàn)代化工產(chǎn)品的個性化定制需求越來越普遍、產(chǎn)品牌號越來越精細(xì),準(zhǔn)確預(yù)測企業(yè)的產(chǎn)品需求顯得尤為重要。
產(chǎn)品的市場需求預(yù)測可以簡化為對時間序列的預(yù)測。因此,簡單的趨勢外推法,包括移動平均法[1]、指數(shù)平滑法[2]、趨勢預(yù)測法[3],常被應(yīng)用于具有簡單增長或降低的時間序列分析。但是簡單的趨勢外推法無法抓住外部環(huán)境的季節(jié)性、周期性波動和其他影響要素。近年來,分解預(yù)測方法較為流行。該方法將時間序列分解成長期趨勢因素、季節(jié)變動因素、循環(huán)變動因素和不規(guī)則變動因素,并對除不規(guī)則變動因素以外的其他因素進(jìn)行建模,從而對時間序列進(jìn)行預(yù)測[4-5]。此外,在統(tǒng)計(jì)學(xué)中,自回歸(autoregression,AR)模型、自回歸滑動平均(auto-regressive moving average,ARMA)模型、自回歸積分滑動平均(autoregressive integrated moving average,ARIMA)模型則更為常見,常被用于市場分析和預(yù)測[6-7]。最近,新的機(jī)器學(xué)習(xí)方法也常被用于復(fù)雜時間序列的分析和預(yù)測。利用自適應(yīng)差分進(jìn)化算法優(yōu)化反向傳播(back propagation,BP)神經(jīng)網(wǎng)絡(luò),對多維時間序列進(jìn)行預(yù)測,其精度優(yōu)于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)和ARIMA方法;利用循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)在口語序列和書面語序列之間進(jìn)行分析和建模,達(dá)到了良好的轉(zhuǎn)換和預(yù)測效果[8-9]。綜上所述,對于簡單或者復(fù)雜的時間序列,需要利用不同的建模方法進(jìn)行分析和預(yù)測。
本文利用加權(quán)變異系數(shù)和帕累托分類兩種指標(biāo),結(jié)合卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN),對某化工企業(yè)7大類共202種具體規(guī)格的產(chǎn)品進(jìn)行了分析建模和預(yù)測,較好地實(shí)現(xiàn)了產(chǎn)品類別的劃分;在考慮產(chǎn)品關(guān)聯(lián)性的同時,減小了高低不確定性產(chǎn)品之間預(yù)測的影響;通過與傳統(tǒng)ARMA模型和乘法分解預(yù)測模型的仿真對比,在大類產(chǎn)品的預(yù)測精度上取得了較好的效果。
變異系數(shù)(coefficient of variation,COV)[10]又稱離散系數(shù),是概率論和統(tǒng)計(jì)學(xué)中對于一組數(shù)據(jù)離散程度的歸一化量度。其表達(dá)式為:
(1)
式中:σ為該組數(shù)據(jù)的標(biāo)準(zhǔn)差;μ為該組數(shù)據(jù)的均值。
設(shè)該組數(shù)據(jù)為X=[x1,x2,…,xn-1,xn]。變異系數(shù)是衡量數(shù)據(jù)中各觀測值變異程度的統(tǒng)計(jì)量。當(dāng)進(jìn)行兩組或多組變量序列值的變異程度比較時,如果度量單位和(或)平均數(shù)相同,可以直接利用標(biāo)準(zhǔn)差來比較;如果單位和(或)平均數(shù)不同,則不能采用標(biāo)準(zhǔn)差,而需采用標(biāo)準(zhǔn)差與平均數(shù)的比值(相對值)來比較。變異系數(shù)可以消除單位和(或)平均數(shù)不同對兩個或多個資料變異程度比較的影響。在進(jìn)行數(shù)據(jù)統(tǒng)計(jì)分析時,如果變異系數(shù)大于1.5,則要考慮該數(shù)據(jù)可能存在異常值,這表明該序列的可預(yù)測性較差。
帕累托分類[11]又稱ABC分類。該分析方法是由意大利經(jīng)濟(jì)學(xué)家維爾弗雷多·帕累托首創(chuàng)的。1879年,帕累托在研究個人收入的分布狀態(tài)時,發(fā)現(xiàn)少數(shù)人的收入占全部人收入的大部分,而多數(shù)人的收入?yún)s只占一小部分。他將這一關(guān)系用圖表示,這就是著名的帕累托圖。該分析方法的核心思想是在決定一個事物的眾多因素中分清主次,識別出少數(shù)的、但對事物起決定作用的關(guān)鍵因素和多數(shù)的、但對事物影響較少的次要因素。
設(shè)存在產(chǎn)品1~10,其銷售量為P=[p1,p2,…,p10]。將產(chǎn)品按銷售量進(jìn)行降序排列,并計(jì)算每一種產(chǎn)品銷售量占總銷售量的比率和累計(jì)比率。累計(jì)比率在0%~60%的為最重要的A類產(chǎn)品;累計(jì)比率在60%~85%的為次重要的B類產(chǎn)品;累計(jì)比率在85%~100%的為不重要產(chǎn)品。以此為依據(jù),將產(chǎn)品進(jìn)行帕累托分類。
卷積神經(jīng)網(wǎng)絡(luò)是由Y·Lecun[12]于1998年提出的、基于局部卷積和反向傳播算法且不同于全連接神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的一種手寫數(shù)字圖像識別模型。該模型包括1個輸入層,2個卷積層,2個降采樣層,2個全連接層,1個輸出層。這種結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)對當(dāng)時手寫字體的識別率在95%以上,達(dá)到了商用級別。該結(jié)構(gòu)的主要思想是利用不同的卷積核對輸入圖像的局部進(jìn)行特征提取,再利用降采樣層降低特征的維度,最后連接一個全連接神經(jīng)網(wǎng)絡(luò),從而達(dá)到對手寫數(shù)字的準(zhǔn)確識別。而除了對圖像進(jìn)行識別以外,更多的改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)能夠?qū)φZ音、文本等各種復(fù)雜的數(shù)據(jù)進(jìn)行處理和建模。
基于卷積神經(jīng)網(wǎng)絡(luò)的需求預(yù)測基本框架如圖1所示。

圖1 基于卷積神經(jīng)網(wǎng)絡(luò)的需求預(yù)測基本框架
①為了準(zhǔn)確地對產(chǎn)品每月的市場需求量進(jìn)行預(yù)測,首先對產(chǎn)品的每月銷量進(jìn)行變異系數(shù)計(jì)算。在此采用k段滑動窗口法,并對歷史數(shù)據(jù)窗口進(jìn)行權(quán)重衰減,即時間越遠(yuǎn)的時間段權(quán)重越小,從而使得近時間段的趨勢得到更好的利用。設(shè)某種產(chǎn)品n個月內(nèi)的月銷量為S=[st1,st2,…,stn],k段滑動窗口的權(quán)重分別為w1,w2,…,wk,則該產(chǎn)品的加權(quán)變異系數(shù)可以定義為:
Cv=w1×Cv1+…+wk×Cvk
(2)
(3)
(4)
式中:σn為第n個滑動窗口的標(biāo)準(zhǔn)差;μn為第n個滑動窗口的均值。
②對產(chǎn)品進(jìn)行帕累托分類,將多種產(chǎn)品進(jìn)行銷售量的降序排列。這里僅進(jìn)行AB分類,即高數(shù)量與低數(shù)量的分類,并將產(chǎn)品的累計(jì)百分比劃分閾值定為70%。
③對劃分好的4大類產(chǎn)品(高需求量高不確定性、高需求量低不確定性、低需求量高不確定性、低需求量低不確定性),分別構(gòu)建針對多時序數(shù)據(jù)的卷積神經(jīng)網(wǎng)絡(luò)。由于卷積神經(jīng)網(wǎng)絡(luò)的建模能力較強(qiáng),對月銷售量以天為單位進(jìn)行分解建模。設(shè)4大類產(chǎn)品中的某一類共有m種具體產(chǎn)品,以前n天的訂單需求量為整個神經(jīng)網(wǎng)絡(luò)模型的輸入X,以后k天的訂單需求量為整個神經(jīng)網(wǎng)絡(luò)模型的輸出Y,則X、Y可以表示為:
(5)
(6)
式中:xnm為前第n天、第m種產(chǎn)品的日需求量;ykm為后第k天、第m種產(chǎn)品的日需求量。
設(shè)一維時序卷積核為K=[k1,k2,…,km]∈Rm。其中:ki=[ki1,…,kiL]T,L為卷積核長度。設(shè)滑動步長為1,則對輸入X進(jìn)行卷積操作,可以表示為:
cnm=K×[xnm,…,x(n+L)m]T
(7)
采用最大池化(Maxpooling)降采樣的方法。設(shè)降采樣間隔為2,則降采樣操作可以表示為:
(8)
式中:f為激活函數(shù)。
通常采用sigmond函數(shù),經(jīng)過多層卷積和降采樣操作后,直接與輸出層相連,并通過誤差反向傳播算法[13]更新網(wǎng)絡(luò)權(quán)重,主要更新內(nèi)容為卷積核的參數(shù)調(diào)整。
本文收集了某化工企業(yè)2015年1月至2017年11月,這35個月的7大類共202種具體產(chǎn)品的需求訂單數(shù)據(jù),以月為單位進(jìn)行COV分析和帕累托分類。其中:COV閾值為1.5,帕累托分類閾值為60%。由此得到的化工產(chǎn)品分類如表1所示。

表1 化工產(chǎn)品分類表
根據(jù)以上產(chǎn)品劃分,從ERP數(shù)據(jù)庫中提取了這些產(chǎn)品在2017年的10月、11月這2個月的訂單數(shù)據(jù)作為測試數(shù)據(jù),其余33個月的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),將月數(shù)據(jù)分解為天數(shù)據(jù),模型的輸入為m天、輸出為n天。對每一類數(shù)據(jù),首先進(jìn)行標(biāo)準(zhǔn)化處理:
(9)
利用深度學(xué)習(xí)庫Keras[14]進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)的序貫?zāi)P蜆?gòu)建。由于卷積神經(jīng)網(wǎng)絡(luò)模型的構(gòu)建具有試驗(yàn)性質(zhì),即需要人為確定的超參數(shù)較多,因此,本文采用多組超參數(shù)進(jìn)行對比試驗(yàn)。以長輸入常卷積常池化卷積神經(jīng)網(wǎng)絡(luò)(long input normal convolution normal pooling-convolution neural network,LNN-CNN)為例,在本文中,其具體結(jié)構(gòu)為“輸入長度為k×20的時間序列-k×3的卷積核-k×2 的最大池化層-k×3的卷積核-k×3的卷積核-輸出為長度為k×5的時間序列”,縮寫為I30-C3-P2-C5-P2-O5。其中,k為卷積核的寬度,即該大類產(chǎn)品的數(shù)量。
假設(shè)模型輸入的序列長度為m,預(yù)測輸出的長度為n,而實(shí)際需要在月維度上進(jìn)行預(yù)測對比。因此,采用動態(tài)遞推預(yù)測,即當(dāng)需要預(yù)測未來(n+1)~2n天的數(shù)據(jù)時,則采用的模型輸入為先前預(yù)測的n天數(shù)據(jù)和前(m-n)天數(shù)據(jù),從而遞推預(yù)測未來一個月該大類產(chǎn)品的總銷售量。經(jīng)過模型訓(xùn)練,并與ARMA和乘法分解預(yù)測法進(jìn)行對比:ARMA模型中自回歸項(xiàng)階數(shù)(AR階數(shù))和滑動平均項(xiàng)階數(shù)(MA階數(shù))分別在范圍中進(jìn)行測試,并根據(jù)赤池信息量準(zhǔn)則(akaike information criterion,AIC)[15],取AIC值最小的階數(shù)組合為ARMA模型的最終參數(shù)。而卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)采用了4種結(jié)構(gòu):LNN-CNN,本文中具體結(jié)構(gòu)為I30-C3-P2-C5-P2-O5;
長輸入多卷積常池化神經(jīng)網(wǎng)絡(luò)(long input multi-convolution normal pooling-convolution neural network,LMN-CNN)模型,本文中具體結(jié)構(gòu)為I30-C3-C3-MP2-C2-C2-MP2-O5;2種短輸入不定層卷積神經(jīng)網(wǎng)絡(luò)模型(stochastic layer-convolution neural network,SL-CNN),本文中其結(jié)構(gòu)1為I20-C3-MP2-C3-C3-O5,結(jié)構(gòu)2為I20-C3-C3-MP2-C4-O5。誤差評價函數(shù)取平均百分比準(zhǔn)確率:
(10)
測試數(shù)據(jù)中,每大類產(chǎn)品的平均百分比誤差如表2所示。

表2 不同模型的預(yù)測結(jié)果對比
由以上對比結(jié)果可以看出:基于一維時序的多產(chǎn)品卷積神經(jīng)網(wǎng)絡(luò)模型,在高(低)需求量、低不確定性的產(chǎn)品類別上,與其他兩種算法模型相比,并沒有較大的優(yōu)勢。尤其是在高需求量、低不確定性的產(chǎn)品類別上,由于該類產(chǎn)品季節(jié)性較為明顯,因此乘法分解預(yù)測模型能較好地抓住產(chǎn)品的季節(jié)性分量,從而得到較為準(zhǔn)確的預(yù)測。而在高(低)需求量、高不確定性的兩類產(chǎn)品下,LMN-CNN模型的預(yù)測精度較高,兩個月平均準(zhǔn)確率分別高于另外兩類模型7.75%和8.29%;而與同樣的CNN模型相比,兩個月平均準(zhǔn)確率分別高于另外3種結(jié)構(gòu)模型2.12%、4.02%和5.05%,多卷積層模型通過多次卷積變換,抓住了不確定性高的時間序列波動模式,從而能更有效地進(jìn)行預(yù)測。從總體平均預(yù)測效果看,LMN-CNN模型兩個月平均預(yù)測準(zhǔn)確率為89.22%,對于不同類型數(shù)據(jù)的預(yù)測穩(wěn)定性普遍較高,特別適用于工業(yè)領(lǐng)域多牌號產(chǎn)品的整體預(yù)測。
本文針對某化工企業(yè)的產(chǎn)品體系,提出了一種基于多指標(biāo)結(jié)合卷積神經(jīng)網(wǎng)絡(luò)的需求預(yù)測框架。首先,利用COV分析和帕累托分類對7大類共202種具體規(guī)格的產(chǎn)品進(jìn)行劃分;然后,對月需求訂單進(jìn)行日分解,并利用4個卷積神經(jīng)網(wǎng)絡(luò)分別對4大類產(chǎn)品進(jìn)行合并預(yù)測;最后,對不同類型的模型以及不同結(jié)構(gòu)的同類型模型進(jìn)行對比。測試結(jié)果表明,相較于傳統(tǒng)的統(tǒng)計(jì)時間序列預(yù)測法和時間序列分解預(yù)測法,LMN-CNN模型對不確定性較高的產(chǎn)品的預(yù)測效果較為明顯。該結(jié)果驗(yàn)證了該模型的有效性。