張 果
(樂凱華光印刷科技有限公司,河南 南陽 473000)
Elman神經(jīng)網(wǎng)絡在企業(yè)年度銷售目標預測中的應用
張 果
(樂凱華光印刷科技有限公司,河南 南陽 473000)
文章主要探討了一種能夠對公司未來銷售狀況進行準確、快速預測的方法。文章將Elman神經(jīng)網(wǎng)絡法引入到對公司未來銷售狀況的預測中,并且通過MATLAB程序對Elman神經(jīng)網(wǎng)絡進行了編程,實現(xiàn)了對某公司未來銷售情況的估計,形成了公司未來銷售量統(tǒng)計圖,企業(yè)可以通過對該統(tǒng)計圖的分析制定切實可行戰(zhàn)略。
Elman神經(jīng)網(wǎng)絡;年度銷售目標;預測
Elman網(wǎng)絡建立在BP網(wǎng)絡的基本構架之上,通過對內(nèi)部存儲狀態(tài)進行存儲從而具備一定的映射動態(tài)特征功用。所以Elman網(wǎng)絡具有更強的適應時變特征的能力,也從而更適合應對時間序列的預測問題。由于公司產(chǎn)品的銷售數(shù)據(jù)也是隨著時間發(fā)生連續(xù)改變的,并且銷量數(shù)據(jù)和時間之間的關系為非線性的,銷量的變化往往同時受多個因素的影響,所以在對公司今后幾個月份產(chǎn)品銷售情況的評估時,我們選擇了Elman網(wǎng)絡模型。
Elman網(wǎng)絡屬于反饋網(wǎng)絡的一種,其結構有4層:第一層為輸入層,該層的主要作用就是傳遞神經(jīng)元信號;第二次為隱含層,第三層為承接層,該層的主要作用就是儲存上一層的輸出,并且對反饋信號進行儲存,第四層為輸出層,輸出層的結果依靠于承接層的反饋信號。承接層將存儲的上一階段隱含層的輸出和存儲結果再反饋給隱含層,因此該模型可以對歷史數(shù)據(jù)進行存儲,能夠進行動態(tài)建模,具有自處理信息的能力。
用u表示該模型的輸入?yún)?shù),用x表示該模型隱含層的結果;用Xc表示該模型中承接層的計算結果,用y表示該模型最終的輸出結果。輸出層、隱含層、輸入層以及承接層之間的連接權重用W表示。神經(jīng)網(wǎng)絡模型的激勵函數(shù)用g表示,其實質為隱含層計算結果的線性組合,通常為purelin()函數(shù)。該層神經(jīng)的激勵函數(shù)用f表示,通常為tansig()函數(shù)。
根據(jù)模型評價的相關方法和慣例,從整體上對預測模型的效果進行評價,判斷該模型是否具有良好的精度,通常我們選擇的評價指標為模型的絕對百分比誤差以及模型的均方誤差。
用符號EMSE,表示模型均方誤差,其計算公式為:

該式子各個符號的含義為:n表示選取預測集合中元素的數(shù)目;用i為序號;yi*表示預測值;用符號yi表示真值。
神經(jīng)網(wǎng)絡結構優(yōu)化的主要內(nèi)容是確定隱含層數(shù)量和其節(jié)點數(shù)。因為研究對象的差異,我們無法建立一種通用的網(wǎng)絡結構,一般來說通過實驗,結合部分經(jīng)驗來達到網(wǎng)絡算法的精度與收斂速度之間的平衡。
本章計算出該神經(jīng)網(wǎng)絡模型中不同隱含層數(shù)的預測誤差,誤差最小的隱含層數(shù)作為公司銷售Elman模型隱含層數(shù)。之后,利用預測集和訓練集對Elman模型的預測結果進行訓練,得出該模型能自動適應并使用最優(yōu)的節(jié)點數(shù),通過這種方法來對公司銷售狀況進行估計,有利于公司戰(zhàn)略、決策的制定。
假定公司產(chǎn)品的銷售市場波動不是很大,并且競爭對象的能力和數(shù)量在一段時間內(nèi)不發(fā)生變化,產(chǎn)品需求穩(wěn)定,因此決定公司某種商品是否具有良好銷售情況的關鍵要素就是判定該商品是否具有良好的性價比。如果上述幾個假定條件不變,公司該商品性價比的改善將會刺激該商品的銷量。也就是說,當市場上該商品的所有生產(chǎn)廠家具有相同的生產(chǎn)質量時,公司商品價格的降低會刺激公司商品的銷量,增加該商品的市場競爭力,接到更多的訂單,因此本論文研究中將公司產(chǎn)品價格的變化作為影響公司未來銷售狀況的主要變量。
根據(jù)對H公司隨機挑選的幾個時段的銷量和同期成品率變化曲線對比來看,產(chǎn)品銷售數(shù)量與成品率之間確實存在一定的正比變化關系:因此本文確定改進模型的輸入?yún)?shù)為以下3個:(1)商品的成品率;(2)商品的價格;(3)商品銷售的時間。在數(shù)據(jù)準備階段產(chǎn)生的數(shù)據(jù)立方體中選取時間、價格、成品率和當月的銷量作為改進后Elman模型的輸入向量。
通常在實驗數(shù)據(jù)維數(shù)較多的情況下,為了避免其中一維或者幾維對結果的影響過大,同時也為了避開模型隱含層的飽和區(qū),增加對模型的靈敏度,縮減模型訓練時間,我們首先進行歸一化處理,最后再進行反歸一化輸出數(shù)據(jù)。
通過歸一化處理之后,得到的輸出數(shù)據(jù)表示為yi。因此整個歸一化過程就是:首先對輸入數(shù)據(jù)進行正歸一化,之后反歸一輸出數(shù)據(jù)。
由于研究對象的千差萬別,對Elman網(wǎng)絡模型結構的研究主要集中在隱含層的數(shù)量和隱含層的節(jié)點數(shù)量兩個方面。
而通常Elman的隱含層只有一層,當模型變量比較多,尤其是輸入變量很多時,為了加快模型的收斂性,減少模型的訓練時間,通常先試驗性地將Elman隱含層進行擴展,增加模型隱含層的數(shù)量,但是不能增加過多,當模型中隱含層的數(shù)量太多,模型就會變得龐大,使其結構變得更為復雜,甚至出現(xiàn)過擬合,降低模型的預測性能,增加模型訓練時間。
據(jù)經(jīng)驗公式,先把隱含層數(shù)設置為一,隱含層節(jié)點數(shù)為3個,并逐步增加這兩個數(shù)值,以尋找優(yōu)化的隱含層數(shù)和節(jié)點數(shù)。
應該結合各種條件來對模型隱含層節(jié)點數(shù)進行選擇和條件。選擇和調節(jié)隱含層節(jié)點數(shù)首先要遵循的原則為:在確保模型具有較高精度的情況下,使用盡可能少的節(jié)點數(shù)目。本論文選擇隱含層節(jié)點的方法就是通過隱含層自身的調節(jié)。對每種隱含層節(jié)點數(shù)目情況下,模型的預測情況進行判斷和估計,找出其中最佳預測效果對應的節(jié)點數(shù)目。當模型使用的預測數(shù)據(jù)或者是訓練數(shù)據(jù)發(fā)生變化時,其隱含層節(jié)點數(shù)目也會發(fā)生改變,自動更新,尋找在不同訓練數(shù)據(jù)和預測數(shù)據(jù)下最佳節(jié)點數(shù)目。該過程的關鍵就是每次節(jié)點數(shù)目發(fā)生變化時,都有其所對應的MAPE作出評估,找到最優(yōu)MAPE所對應的節(jié)點數(shù)目。在整個過程中,上一次計算得到MAPE值會被下次計算得到MAPE值所取代,直到得到該值的最小值,我們使用矩陣來對這些MPAE值進行存儲,通過編程的方法將每次得到MPAE值都存儲在該矩陣中,這樣就避免MAPE值得丟失。
本文使用Matlab神經(jīng)網(wǎng)絡工具箱提供函數(shù)設計Elman模型。其中用tansig()函數(shù)來完成輸入層到隱含層的傳遞,用線性函數(shù)pureline()來完成隱含層到輸出層的傳遞。采用反向傳播的自適應學習速率動態(tài)梯度下降算法,用traingdx()函數(shù)進行訓練。在此訓練過程中,學習速率能夠自我調整,網(wǎng)絡訓練效率得到提高。該網(wǎng)絡模型的擬合精度較高,收斂速度也較快。
對H公司的歷年銷售情況使用了以下3種模型進行預測:(1)傳統(tǒng)的BP模型;(2)為傳統(tǒng)的Elman模型;(3)為本論文改進的Elman模型,在實驗之前首先對H公司銷售數(shù)據(jù)進行如此分類:選擇其中的某些數(shù)據(jù)當作預測集,選擇其中的另一些數(shù)據(jù)作為樣本集。對于神經(jīng)網(wǎng)絡模型來說,要將數(shù)據(jù)分為檢驗集和訓練集,實驗之前的數(shù)據(jù)預處理。
從之前構建的H公司23年的銷售數(shù)據(jù)庫隨機挑選280個數(shù)據(jù)作為模型的輸入數(shù)據(jù),該數(shù)據(jù)主要包含以下3個屬性:(1)產(chǎn)品的銷售情況;(2)產(chǎn)品的成品率;(3)產(chǎn)品的價格。建立的數(shù)據(jù)時間序列如表1所示。

表1 數(shù)據(jù)時間序列
本論文在筆記本電腦上對上述實驗數(shù)據(jù)進行了Elman的模擬,使用的編寫軟件為Matlab,使用的操作系統(tǒng)為微軟Windows 7。
經(jīng)驗證,采用第1—144個數(shù)據(jù)作為訓練集,第145—159個數(shù)據(jù)作為預測集時,隱含層節(jié)點數(shù)為9時,預測誤差MSE最小,故模型的最佳隱含層節(jié)點數(shù)為9;用第51—190個數(shù)據(jù)作為訓練集,第191—210個數(shù)據(jù)作為預測集時,隱含層節(jié)點數(shù)為6時,預測誤差MSE最小,故模型的最佳隱含層節(jié)點數(shù)為6;第二樣本數(shù)據(jù)采用第100—240個數(shù)據(jù)作為訓練集,第241260個數(shù)據(jù)作為預測集 時,隱含層節(jié)點數(shù)為4時,預測誤差MSE最小,故模型的最佳隱含層節(jié)點數(shù)為4。可以看出隨著樣本的更新,自適應Elman神經(jīng)網(wǎng)絡模型都可以自動建立最優(yōu)模型,達到了自適應調節(jié)的目的。可以提高預測精度。
本文針對BP網(wǎng)絡動態(tài)性能差、易陷入局部最小值的特點,提出了自適應Elman神經(jīng)網(wǎng)絡預測模型。對隱含層節(jié)點數(shù)自適應,使隱層節(jié)點數(shù)能夠隨著訓練集和預測集的更新不斷地自我調節(jié),可以自動選取最優(yōu)的隱層節(jié)點數(shù),網(wǎng)絡能根據(jù)最新訓練結果自動調整,從而讓整個神經(jīng)網(wǎng)絡的性能更加優(yōu)越。
Application of Elman neural network in enterprise’s annual sales targets forecasting
Zhang Guo
(Lucky Huaguang Graphics Co., Ltd., Nanyang 473000, China)
This thesis mainly discusses a method of forecasting the company’s future sales status accurately and rapidly. This paper introduces the Elman neural network method to predict the future of the company’s sales situation, and the Elman neural network was programmed by MATLAB program to realize the estimation of the future sales of a company, and formed a future sales charts of company, the enterprise can make feasible strategy through the analysis of the statistical chart.
Elman neural network; prediction of annual sales target; forecast
張果(1976— ),男,河南南陽,碩士,主任科員;研究方向:人工智能,大數(shù)據(jù)預測。