張 果
(樂凱華光印刷科技有限公司,河南 南陽 473000)
Elman神經(jīng)網(wǎng)絡(luò)在企業(yè)年度銷售目標(biāo)預(yù)測(cè)中的應(yīng)用
張 果
(樂凱華光印刷科技有限公司,河南 南陽 473000)
文章主要探討了一種能夠?qū)疚磥礓N售狀況進(jìn)行準(zhǔn)確、快速預(yù)測(cè)的方法。文章將Elman神經(jīng)網(wǎng)絡(luò)法引入到對(duì)公司未來銷售狀況的預(yù)測(cè)中,并且通過MATLAB程序?qū)lman神經(jīng)網(wǎng)絡(luò)進(jìn)行了編程,實(shí)現(xiàn)了對(duì)某公司未來銷售情況的估計(jì),形成了公司未來銷售量統(tǒng)計(jì)圖,企業(yè)可以通過對(duì)該統(tǒng)計(jì)圖的分析制定切實(shí)可行戰(zhàn)略。
Elman神經(jīng)網(wǎng)絡(luò);年度銷售目標(biāo);預(yù)測(cè)
Elman網(wǎng)絡(luò)建立在BP網(wǎng)絡(luò)的基本構(gòu)架之上,通過對(duì)內(nèi)部存儲(chǔ)狀態(tài)進(jìn)行存儲(chǔ)從而具備一定的映射動(dòng)態(tài)特征功用。所以Elman網(wǎng)絡(luò)具有更強(qiáng)的適應(yīng)時(shí)變特征的能力,也從而更適合應(yīng)對(duì)時(shí)間序列的預(yù)測(cè)問題。由于公司產(chǎn)品的銷售數(shù)據(jù)也是隨著時(shí)間發(fā)生連續(xù)改變的,并且銷量數(shù)據(jù)和時(shí)間之間的關(guān)系為非線性的,銷量的變化往往同時(shí)受多個(gè)因素的影響,所以在對(duì)公司今后幾個(gè)月份產(chǎn)品銷售情況的評(píng)估時(shí),我們選擇了Elman網(wǎng)絡(luò)模型。
Elman網(wǎng)絡(luò)屬于反饋網(wǎng)絡(luò)的一種,其結(jié)構(gòu)有4層:第一層為輸入層,該層的主要作用就是傳遞神經(jīng)元信號(hào);第二次為隱含層,第三層為承接層,該層的主要作用就是儲(chǔ)存上一層的輸出,并且對(duì)反饋信號(hào)進(jìn)行儲(chǔ)存,第四層為輸出層,輸出層的結(jié)果依靠于承接層的反饋信號(hào)。承接層將存儲(chǔ)的上一階段隱含層的輸出和存儲(chǔ)結(jié)果再反饋給隱含層,因此該模型可以對(duì)歷史數(shù)據(jù)進(jìn)行存儲(chǔ),能夠進(jìn)行動(dòng)態(tài)建模,具有自處理信息的能力。
用u表示該模型的輸入?yún)?shù),用x表示該模型隱含層的結(jié)果;用Xc表示該模型中承接層的計(jì)算結(jié)果,用y表示該模型最終的輸出結(jié)果。輸出層、隱含層、輸入層以及承接層之間的連接權(quán)重用W表示。神經(jīng)網(wǎng)絡(luò)模型的激勵(lì)函數(shù)用g表示,其實(shí)質(zhì)為隱含層計(jì)算結(jié)果的線性組合,通常為purelin()函數(shù)。該層神經(jīng)的激勵(lì)函數(shù)用f表示,通常為tansig()函數(shù)。
根據(jù)模型評(píng)價(jià)的相關(guān)方法和慣例,從整體上對(duì)預(yù)測(cè)模型的效果進(jìn)行評(píng)價(jià),判斷該模型是否具有良好的精度,通常我們選擇的評(píng)價(jià)指標(biāo)為模型的絕對(duì)百分比誤差以及模型的均方誤差。
用符號(hào)EMSE,表示模型均方誤差,其計(jì)算公式為:
該式子各個(gè)符號(hào)的含義為:n表示選取預(yù)測(cè)集合中元素的數(shù)目;用i為序號(hào);yi*表示預(yù)測(cè)值;用符號(hào)yi表示真值。
神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化的主要內(nèi)容是確定隱含層數(shù)量和其節(jié)點(diǎn)數(shù)。因?yàn)檠芯繉?duì)象的差異,我們無法建立一種通用的網(wǎng)絡(luò)結(jié)構(gòu),一般來說通過實(shí)驗(yàn),結(jié)合部分經(jīng)驗(yàn)來達(dá)到網(wǎng)絡(luò)算法的精度與收斂速度之間的平衡。
本章計(jì)算出該神經(jīng)網(wǎng)絡(luò)模型中不同隱含層數(shù)的預(yù)測(cè)誤差,誤差最小的隱含層數(shù)作為公司銷售Elman模型隱含層數(shù)。之后,利用預(yù)測(cè)集和訓(xùn)練集對(duì)Elman模型的預(yù)測(cè)結(jié)果進(jìn)行訓(xùn)練,得出該模型能自動(dòng)適應(yīng)并使用最優(yōu)的節(jié)點(diǎn)數(shù),通過這種方法來對(duì)公司銷售狀況進(jìn)行估計(jì),有利于公司戰(zhàn)略、決策的制定。
假定公司產(chǎn)品的銷售市場(chǎng)波動(dòng)不是很大,并且競(jìng)爭(zhēng)對(duì)象的能力和數(shù)量在一段時(shí)間內(nèi)不發(fā)生變化,產(chǎn)品需求穩(wěn)定,因此決定公司某種商品是否具有良好銷售情況的關(guān)鍵要素就是判定該商品是否具有良好的性價(jià)比。如果上述幾個(gè)假定條件不變,公司該商品性價(jià)比的改善將會(huì)刺激該商品的銷量。也就是說,當(dāng)市場(chǎng)上該商品的所有生產(chǎn)廠家具有相同的生產(chǎn)質(zhì)量時(shí),公司商品價(jià)格的降低會(huì)刺激公司商品的銷量,增加該商品的市場(chǎng)競(jìng)爭(zhēng)力,接到更多的訂單,因此本論文研究中將公司產(chǎn)品價(jià)格的變化作為影響公司未來銷售狀況的主要變量。
根據(jù)對(duì)H公司隨機(jī)挑選的幾個(gè)時(shí)段的銷量和同期成品率變化曲線對(duì)比來看,產(chǎn)品銷售數(shù)量與成品率之間確實(shí)存在一定的正比變化關(guān)系:因此本文確定改進(jìn)模型的輸入?yún)?shù)為以下3個(gè):(1)商品的成品率;(2)商品的價(jià)格;(3)商品銷售的時(shí)間。在數(shù)據(jù)準(zhǔn)備階段產(chǎn)生的數(shù)據(jù)立方體中選取時(shí)間、價(jià)格、成品率和當(dāng)月的銷量作為改進(jìn)后Elman模型的輸入向量。
通常在實(shí)驗(yàn)數(shù)據(jù)維數(shù)較多的情況下,為了避免其中一維或者幾維對(duì)結(jié)果的影響過大,同時(shí)也為了避開模型隱含層的飽和區(qū),增加對(duì)模型的靈敏度,縮減模型訓(xùn)練時(shí)間,我們首先進(jìn)行歸一化處理,最后再進(jìn)行反歸一化輸出數(shù)據(jù)。
通過歸一化處理之后,得到的輸出數(shù)據(jù)表示為yi。因此整個(gè)歸一化過程就是:首先對(duì)輸入數(shù)據(jù)進(jìn)行正歸一化,之后反歸一輸出數(shù)據(jù)。
由于研究對(duì)象的千差萬別,對(duì)Elman網(wǎng)絡(luò)模型結(jié)構(gòu)的研究主要集中在隱含層的數(shù)量和隱含層的節(jié)點(diǎn)數(shù)量?jī)蓚€(gè)方面。
而通常Elman的隱含層只有一層,當(dāng)模型變量比較多,尤其是輸入變量很多時(shí),為了加快模型的收斂性,減少模型的訓(xùn)練時(shí)間,通常先試驗(yàn)性地將Elman隱含層進(jìn)行擴(kuò)展,增加模型隱含層的數(shù)量,但是不能增加過多,當(dāng)模型中隱含層的數(shù)量太多,模型就會(huì)變得龐大,使其結(jié)構(gòu)變得更為復(fù)雜,甚至出現(xiàn)過擬合,降低模型的預(yù)測(cè)性能,增加模型訓(xùn)練時(shí)間。
據(jù)經(jīng)驗(yàn)公式,先把隱含層數(shù)設(shè)置為一,隱含層節(jié)點(diǎn)數(shù)為3個(gè),并逐步增加這兩個(gè)數(shù)值,以尋找優(yōu)化的隱含層數(shù)和節(jié)點(diǎn)數(shù)。
應(yīng)該結(jié)合各種條件來對(duì)模型隱含層節(jié)點(diǎn)數(shù)進(jìn)行選擇和條件。選擇和調(diào)節(jié)隱含層節(jié)點(diǎn)數(shù)首先要遵循的原則為:在確保模型具有較高精度的情況下,使用盡可能少的節(jié)點(diǎn)數(shù)目。本論文選擇隱含層節(jié)點(diǎn)的方法就是通過隱含層自身的調(diào)節(jié)。對(duì)每種隱含層節(jié)點(diǎn)數(shù)目情況下,模型的預(yù)測(cè)情況進(jìn)行判斷和估計(jì),找出其中最佳預(yù)測(cè)效果對(duì)應(yīng)的節(jié)點(diǎn)數(shù)目。當(dāng)模型使用的預(yù)測(cè)數(shù)據(jù)或者是訓(xùn)練數(shù)據(jù)發(fā)生變化時(shí),其隱含層節(jié)點(diǎn)數(shù)目也會(huì)發(fā)生改變,自動(dòng)更新,尋找在不同訓(xùn)練數(shù)據(jù)和預(yù)測(cè)數(shù)據(jù)下最佳節(jié)點(diǎn)數(shù)目。該過程的關(guān)鍵就是每次節(jié)點(diǎn)數(shù)目發(fā)生變化時(shí),都有其所對(duì)應(yīng)的MAPE作出評(píng)估,找到最優(yōu)MAPE所對(duì)應(yīng)的節(jié)點(diǎn)數(shù)目。在整個(gè)過程中,上一次計(jì)算得到MAPE值會(huì)被下次計(jì)算得到MAPE值所取代,直到得到該值的最小值,我們使用矩陣來對(duì)這些MPAE值進(jìn)行存儲(chǔ),通過編程的方法將每次得到MPAE值都存儲(chǔ)在該矩陣中,這樣就避免MAPE值得丟失。
本文使用Matlab神經(jīng)網(wǎng)絡(luò)工具箱提供函數(shù)設(shè)計(jì)Elman模型。其中用tansig()函數(shù)來完成輸入層到隱含層的傳遞,用線性函數(shù)pureline()來完成隱含層到輸出層的傳遞。采用反向傳播的自適應(yīng)學(xué)習(xí)速率動(dòng)態(tài)梯度下降算法,用traingdx()函數(shù)進(jìn)行訓(xùn)練。在此訓(xùn)練過程中,學(xué)習(xí)速率能夠自我調(diào)整,網(wǎng)絡(luò)訓(xùn)練效率得到提高。該網(wǎng)絡(luò)模型的擬合精度較高,收斂速度也較快。
對(duì)H公司的歷年銷售情況使用了以下3種模型進(jìn)行預(yù)測(cè):(1)傳統(tǒng)的BP模型;(2)為傳統(tǒng)的Elman模型;(3)為本論文改進(jìn)的Elman模型,在實(shí)驗(yàn)之前首先對(duì)H公司銷售數(shù)據(jù)進(jìn)行如此分類:選擇其中的某些數(shù)據(jù)當(dāng)作預(yù)測(cè)集,選擇其中的另一些數(shù)據(jù)作為樣本集。對(duì)于神經(jīng)網(wǎng)絡(luò)模型來說,要將數(shù)據(jù)分為檢驗(yàn)集和訓(xùn)練集,實(shí)驗(yàn)之前的數(shù)據(jù)預(yù)處理。
從之前構(gòu)建的H公司23年的銷售數(shù)據(jù)庫(kù)隨機(jī)挑選280個(gè)數(shù)據(jù)作為模型的輸入數(shù)據(jù),該數(shù)據(jù)主要包含以下3個(gè)屬性:(1)產(chǎn)品的銷售情況;(2)產(chǎn)品的成品率;(3)產(chǎn)品的價(jià)格。建立的數(shù)據(jù)時(shí)間序列如表1所示。
表1 數(shù)據(jù)時(shí)間序列
本論文在筆記本電腦上對(duì)上述實(shí)驗(yàn)數(shù)據(jù)進(jìn)行了Elman的模擬,使用的編寫軟件為Matlab,使用的操作系統(tǒng)為微軟Windows 7。
經(jīng)驗(yàn)證,采用第1—144個(gè)數(shù)據(jù)作為訓(xùn)練集,第145—159個(gè)數(shù)據(jù)作為預(yù)測(cè)集時(shí),隱含層節(jié)點(diǎn)數(shù)為9時(shí),預(yù)測(cè)誤差MSE最小,故模型的最佳隱含層節(jié)點(diǎn)數(shù)為9;用第51—190個(gè)數(shù)據(jù)作為訓(xùn)練集,第191—210個(gè)數(shù)據(jù)作為預(yù)測(cè)集時(shí),隱含層節(jié)點(diǎn)數(shù)為6時(shí),預(yù)測(cè)誤差MSE最小,故模型的最佳隱含層節(jié)點(diǎn)數(shù)為6;第二樣本數(shù)據(jù)采用第100—240個(gè)數(shù)據(jù)作為訓(xùn)練集,第241260個(gè)數(shù)據(jù)作為預(yù)測(cè)集 時(shí),隱含層節(jié)點(diǎn)數(shù)為4時(shí),預(yù)測(cè)誤差MSE最小,故模型的最佳隱含層節(jié)點(diǎn)數(shù)為4??梢钥闯鲭S著樣本的更新,自適應(yīng)Elman神經(jīng)網(wǎng)絡(luò)模型都可以自動(dòng)建立最優(yōu)模型,達(dá)到了自適應(yīng)調(diào)節(jié)的目的。可以提高預(yù)測(cè)精度。
本文針對(duì)BP網(wǎng)絡(luò)動(dòng)態(tài)性能差、易陷入局部最小值的特點(diǎn),提出了自適應(yīng)Elman神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型。對(duì)隱含層節(jié)點(diǎn)數(shù)自適應(yīng),使隱層節(jié)點(diǎn)數(shù)能夠隨著訓(xùn)練集和預(yù)測(cè)集的更新不斷地自我調(diào)節(jié),可以自動(dòng)選取最優(yōu)的隱層節(jié)點(diǎn)數(shù),網(wǎng)絡(luò)能根據(jù)最新訓(xùn)練結(jié)果自動(dòng)調(diào)整,從而讓整個(gè)神經(jīng)網(wǎng)絡(luò)的性能更加優(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ù)預(yù)測(cè)。