宋 頌,董寶力
(浙江理工大學 機械與自動控制學院,浙江 杭州 310018)
銷售預測用于指導企業計劃部門下達滾動計劃和生產計劃,采購部門依據滾動計劃對原材料供應商提出要求,生產部門依據生產計劃來組織生產.因此,準確的銷售預測對企業十分重要.飲料產品生命周期短,企業主要根據預測的產品銷售量采購原材料并安排生產,如果預測的結果與實際情況差異過大,就會導致企業的產品交期延遲、生產計劃變動、庫存增加等問題.
常用的銷售預測方法包括時間序列預測法、指數平滑法、線性回歸法等.這些方法在各種行業均有所應用,但這些方法的缺陷是只能應用于線性數據,難以應用在多因素的非線性數據上.飲料銷售預測建模受多因素影響,如室外平均溫度、季節指數、節假日數、人均消費水平、促銷活動次數等.人工神經網絡對于受多因素影響的預測有較好的效果.劉衛校運用多維灰色模型對影響因素進行處理,并結合神經網絡建立了銷售預測模型[1].劉振華等針對多種因素影響的溶洞發育規模,運用BP神經網絡進行了預測[2].王新普等提出一種改進灰色預測方法,對BP神經網絡進行優化[3].Wang X等提出一種混合多群體遺傳算法——反向傳播神經網絡算法,并建立了預測模型[4].Liu X L等運用灰色預測方法并結合神經網絡建立了預測模型[5].Gomes L F A M等研究了3種時間序列和神經網絡相結合的預測方法[6].陳志禮等采用遺傳算法和核密度估計法改進BP神經網絡建立了預測模型[7].Du W等采用一種多目標進化算法對神經網絡的權重進行優化,建立了預測模型[8].張金夢等運用遺傳算法對BP神經網絡權值和閾值進行優化,并建立了預測模型[9].肖成等對小波BP神經網絡進行訓練,并用MATLAB軟件進行了仿真預測[10].上述研究只針對算法本身進行改進,對輸入神經網絡的數據未預先處理或僅進行縱向處理,模型輸入的數據中仍存在冗余,而這些冗余數據會對BP神經網絡的辨識和預測能力產生較大的不良影響,降低BP神經網絡的訓練速度和泛化能力.
影響預測的因素既有線性的又有非線性的.本文采用灰色關聯分析、粗糙集屬性約簡對影響因素進行橫向和縱向雙維度數據處理,以來提高BP神經網絡的訓練速度和泛化能力;通過附加動量項、優化誤差函數提高BP神經網絡的學習收斂速度,以避免誤差局部極小值的出現,提高預測的精度;并運用改進BP神經網絡模型對某飲料企業銷售歷史數據進行實例驗證.
BP神經網絡的輸入數據存在冗余,算法學習收斂的速度低,誤差存在局部極小值.針對這些問題,可構建一個由灰色粗糙集與BP神經網絡結合的飲料銷售預測模型.灰色關聯分析和粗糙集屬性約簡可以處理飲料銷售預測影響因素中節假日數、促銷活動次數等非線性、不完整的數據,提高輸入數據的有效性和神經網絡的訓練速度.通過附加動量項可提高BP神經網絡的學習收斂速度,優化誤差函數可避免誤差局部極小值的出現.模型構建流程如圖1所示.

圖1 模型構建流程
(1) 收集飲料銷售歷史數據F和影響因素數據(包括室外平均氣溫A、消費指數B、促銷活動次數C、節假日數D、季節指數E),構建二維決策表.季節指數計算公式如下:
E=G/H
(1)
式中:G為各年同季銷售量平均值;H為同年各季銷售量平均值.
(2) 對行數據進行灰色關聯分析,計算并比較每月數據的灰色關聯系數ζi(g),剔除無效月數據.g為數據月份總數.
(3) 對列數據進行粗糙集屬性約簡,離散化處理,分析二維決策表生成的分辨矩陣M(s),計算分辨函數,得出最小析取范式,并剔除冗余因素.
(4) 通過優化誤差函數、附加動量項來提高BP神經網絡的學習收斂速度,將灰色粗糙集處理過的二維決策表輸入神經網絡,得到預測結果.
(5) 對該模型預測與BP神經網絡模型預測、線性回歸分析預測的結果進行比較.均方誤差(Mean-Square Error,MSE)的計算公式如下:
(2)
式中:yn為預測值;tn為實際值.
飲料銷售預測中節假日數、促銷活動次數等為非線性數據,數據特征表現為決策多目標、判定標準不明確等.針對這些特點,可運用灰色關聯分析對飲料銷售預測數據進行前期處理,計算不同因素之間的灰色關聯系數,將各因素按照灰色關聯系數的大小進行排列,剔除關聯系數小、冗余的月數據,實現二維決策表的橫向處理.
(1) 收集飲料銷售歷史數據和影響因素數據.由平均氣溫A、消費指數B、促銷活動次數C、節假日數D、季節指數E、銷售數據F構建二維決策表.
(2) 確定參考數據列.參考數據列是一個理想的比較標準,由各指標的最優值或最劣值構成,且可根據評價指標來選擇參考值.本文以最優值為參考值,可記作:
X0=(X11,X21,X31,X41,X51,X61)
(3)
式中:X0為元素集合;Xnm為各屬性元素.
(3) 對數據進行無量綱化處理.影響因素的性質不同,使得數據的量綱也不同,為了結論具有可比性,需在灰色關聯分析時對數據進行無量綱化處理.本文運用均值化法進行數據的無量綱化處理.無量綱化的數據表可形成如下矩陣:
(4)

(5) 計算關聯系數和關聯序.關聯系數計算公式如下:
ζi(g)=
(n=1,2,…,n;m=1,2,…,m) (5)
式中:θ為分辨系數.
對各行數據的關聯系數進行排序,排列好的順序為關聯序.根據關聯序比較各月份關聯系數的大小,剔除冗余數據.
冗余數據會影響BP神經網絡預測的準確性,導致預測誤差增大.飲料銷售預測影響因素中促銷活動次數、室外平均氣溫等呈現高度非線性和不確定性變化.針對影響因素的特點,本文對粗糙集進行了屬性約簡.粗糙集屬性約簡可以克服模型受主觀因素影響過大的缺點.基于屬性依賴性、區分矩陣、區分函數、約簡、核等概念,對BP神經網絡的輸入數據進行預處理,去除冗余屬性,可簡化BP神經網絡的網絡結構,提高訓練速度.采用分辨矩陣法對飲料銷售的影響因素進行屬性約簡,能夠實現二維決策表的縱向處理.
(1) 由二維決策表計算分辨矩陣M(s)即
(Xnm)n×n).這里:
n,m=1,2,…,N
(6)
式中:a為屬性;C為條件屬性集.
(2) 計算核Core(R)的公式如下:
Core(R)=∧{Xnm|Xnm≠Φ且Xnm=at,at∈C,
1≤t≤m,n=2,3,…,N;m=1,2,…,n-1}
(7)
(3) 生成分辨函數,即:
f(a1,a2,…,am)=∧{∨a|a∈Xnm,
其中Xnm≠φ,n=2,3,…,N;m=1,2,…,n-1}
(8)
構建分辨函數,即:
F=a1∧(a1∨a2)∧(a1∨a2∨a3)∧…∧(a1∨a2∨…an)
(9)
(4) 求解分辨函數的最小析取范式.
分辨矩陣M(s)中元素Xnm,是能夠區分所有屬性的集合.當決策屬性相同時,分辨矩陣中元素Xnm的取值為空集.分辨矩陣是一個主對角線對稱的n階方陣,在計算分辨矩陣時,只考慮上半角或下半角即可.分辨矩陣對應的唯一分辨函數f(am)是一個具有m元變量a1,a2,…,am的布爾函數.它是(∨Xnm)的和取,(∨Xnm)是矩陣項Xnm各元素的析取.分辨函數的析取范式中每個和取對應一個約簡,核為分辨矩陣中所有單元素組成的集合,即約簡后的影響因素項.
BP神經網絡算法學習過程的收斂速度較低,且誤差容易陷入局部極小值誤區.結合飲料銷售預測的特點,本文通過設定誤差函數、附加動量項對BP神經網絡算法進行了優化改進.傳統BP神經網絡因未考慮誤差函數的高次項而容易出現局部極小值.優化誤差函數后BP神經網絡能夠根據預測值與實際值的誤差來動態調整學習率,提高學習速度,從而避免局部極小值的出現.優化誤差函數為:
(10)
式中:δnm為等效誤差分量.
BP神經網絡訓練時,權值變化過快會影響其學習收斂速度.采用附加動量項的方法,可將上次誤差計算中權值調整量的一部分疊加至本次誤差計算的權值調整量上,從而減小學習過程的震蕩,改善收斂性能,提高收斂速度.附加動量項為:
Δwi j(k+1)=(1-mc)p▽f(wi j(k))+mcΔwi j(k)
(11)
式中:p為學習速率;k為訓練次數;mc為動量因子;▽f(wi j(k))為誤差函數的梯度;wi j為權值.
建立BP神經網絡模型時,選用一個隱含層就可滿足該飲料銷售預測模型的數據精度要求[11].BP神經網絡模型的結構包括輸入層、隱含層和輸出層.其中,輸入層是經過灰色粗糙集屬性約簡的飲料銷售影響因素的數據,輸出層即銷售數據.
隱含層神經元個數為:
(12)
式中:b為輸入層影響因素節點數;c為輸出層銷售數據節點數;h為1~10之間的常數.
(1) 導入BP神經網絡數據.以灰色關聯分析和粗糙集屬性約簡后的二維決策表作為輸入數據,導入模型.
(2) 將約簡后飲料銷售的歷史數據分為訓練集和測試集(以銷售歷史的前期多組數據作為訓練集,剩余數據作為測試集,可驗證預測的準確性),并對數據進行歸一化處理.
(3) 確定BP神經網絡的訓練參數、迭代次數、學習率和目標值.
(4) 設定誤差函數,附加動量項.
(5) 確定BP神經網絡模型的隱含層節點數,并選擇傳遞函數和訓練函數.輸入層到隱含層的傳遞函數為雙曲正切tanh函數.該函數的特點在于它能夠將區間(-∞,+∞)的數據映射到區間(0,1)內.隱含層至輸出層的傳遞函數為purelin線性函數.該函數使整個網絡的輸出為任意值。訓練函數采用梯度下降算法(該算法具有自適應學習能力),可提高預測結果的穩定性和精度。本文所用traingdx訓練函數的自適應學習速率公式為:
(13)
按照飲料行業銷售情況統計慣例,將公歷劃分為四季:第一季為3~5月,第二季為6~8月,第三季為9~11月,第四季為12~2月.某飲料企業2015~2017年的歷史銷售數據及季節指數如表1所示.

表1 某飲料企業2015~2017年的歷史銷售數據及季節指數
首先計算各年同季銷售量平均值G和同年各季銷售量平均值H,然后運用式(1)計算季節指數E.以計算的季節指數E以及所選銷售地區2015~2018年各月份的室外平均溫度A、消費指數B、促銷活動數C、節假日數D作為影響因素,結合歷史銷售數據F可構建二維決策表(表2).對表2進行灰色關聯分析,并用均值化法對其數據進行無量綱化處理,以最優值序列作為參考序列,通過式(5)計算灰色關聯系數并進行排序(表3).

表2 二維決策表

表3 灰色關聯系數排序結果
由表3可知,15/03、16/12、17/03、17/12這幾個月份對應的灰色關聯系數較小,無法有效反映銷售預測影響因素的決策性,相應數據應作為冗余數據被剔除.
灰色關聯分析后剔除冗余數據,對留下34個月份的數據進行粗糙集屬性約簡.首先對連續數據進行離散化處理,對離散化后二維決策表采用分辨矩陣法約簡,然后根據式(6)計算分辨矩陣.所得部分分辨矩陣如圖2所示.

序號X1X2X3X4X5X6X7X8X9X10X11X12X1X2X3X4ABEABEACX5ABEABEACX6ABCEABCEAEACECEX7ABDEABDEACDEADEADEACDX8ABDEABDEACDEADEADEACDX9ABCEABCEAEACECEACDEACDEX10ABEABEACEAEEADEADEX11ABDEABDEACDEACDEAEAEACDADX12ABDEABDEABCDEABEABEABCDEABDEABE
圖2部分分辨矩陣
在分辨矩陣的基礎上,依據式(8)可生成如下分辨函數:
(A∨B∨E)∧(A∨B∨E)∧(A∨C)∧(A∨B∨E)∧…∧(B∨C∨D∨E)∧(A∨B∨C∨E)=D∨E∨B∨A.
由分辨函數得到的最優約簡結果為室外平均溫度、消費指數、節假日數、季節指數.將灰色關聯分析橫向約簡和粗糙集屬性縱向約簡后數據作為改進BP神經網絡的學習數據,可得表4所示的約簡后二維決策表.

表4 約簡后二維決策表
以表4中4個影響因素作為輸入神經元,根據式(12)選取6個神經元個數的隱含層,并將表4中前30組數據作為訓練數據,后4組數據作為驗證數據.根據式(10)設定優化誤差函數,并按式(11)計算附加動量項.本文采用的飲料銷售預測模型中,改進BP神經網絡訓練函數的參數設定如下:學習速率為0.001,迭代次數為1 000次,目標值為0.001.基于改進BP神經網絡進行飲料銷售預測的結果如圖3所示.

圖3 基于改進BP神經網絡進行飲料銷售預測的結果
針對預測結果,運用式(2)計算預測值和實際值的均方誤差,可得MSE=0.019 3.本文預測模型(灰色粗糙集BP神經網絡)、傳統BP神經網絡、線性回歸分析3種預測方法的預測結果比較如表5所示.
灰色粗糙集BP神經網絡的訓練速度為8 s,而未經灰色粗糙集處理的BP神經網絡的訓練速度為10 s;灰色粗糙集BP神經網絡預測結果的均方誤差為0.019 3,顯著小于傳統BP神經網絡預測結果的均方誤差0.141 9和線性回歸分析預測結果的均方誤差0.184 5.因此,相比未經前期數據處理的BP神經網絡預測和線性回歸分析預測,采用灰色粗糙集BP神經網絡預測模型對飲料銷售預測的精度更高,準確性更好.

表5 本文預測模型、傳統BP神經網絡、線性回歸預測結果的比較 10萬箱
本文運用灰色粗糙集BP神經網絡預測模型對飲料銷售進行了預測.針對飲料銷售預測影響因素的非線性和不完整性,運用灰色粗糙集從橫向和縱向兩個維度對二維決策表進行預處理,以提高神經網絡的訓練速度和泛化能力。同時,對BP神經網絡進行優化誤差函數并附加動量項,以提高BP神經網絡的學習收斂速度、減小預測誤差。對某飲料企業歷史銷售數據進行的仿真表明:灰色粗糙集BP神經網絡模型對于飲料銷售預測具有較高的預測精度.