王婷婷,吳新蕊,張洋,王宇春
(佳木斯大學(xué)生物醫(yī)學(xué)工程系,佳木斯154007)
為解決學(xué)生進(jìn)入食堂就餐所產(chǎn)生的常備菜品種類(lèi)過(guò)少,排隊(duì)就餐時(shí)間過(guò)長(zhǎng)以及菜品過(guò)剩所產(chǎn)生的浪費(fèi),開(kāi)發(fā)了食堂菜單管理系統(tǒng)App,在研究中發(fā)現(xiàn),食堂人員因無(wú)法預(yù)測(cè)菜品銷(xiāo)量而導(dǎo)致浪費(fèi),所以構(gòu)建了一個(gè)預(yù)測(cè)算法。
傳統(tǒng)的備菜量方式則是每天按照固定的量去采買(mǎi),這將會(huì)導(dǎo)致菜品有時(shí)多有時(shí)少。解決這類(lèi)問(wèn)題方法有RBF算法,模糊神經(jīng)網(wǎng)絡(luò)。RBF神經(jīng)網(wǎng)絡(luò)在解決這類(lèi)問(wèn)題時(shí)運(yùn)用的原理是以任意的精度去逼近隨機(jī)的函數(shù)式,線(xiàn)性方程組可以直接地去解出RBF神經(jīng)網(wǎng)絡(luò)的權(quán)重值,這在一定程度上加快了學(xué)習(xí)速度并避免了一定局部極小的問(wèn)題,但正因?yàn)樗膶W(xué)習(xí)速度快,它需要更多的隱含層神經(jīng)元來(lái)完成工作。模糊神經(jīng)網(wǎng)絡(luò)具有用多臺(tái)處理機(jī)同時(shí)工作去求解問(wèn)題的優(yōu)勢(shì),可以進(jìn)行并行數(shù)據(jù)處理,但模糊神經(jīng)網(wǎng)絡(luò)無(wú)論作為逼近器去工作還是作為模式存儲(chǔ)器運(yùn)行,都是需要進(jìn)行學(xué)習(xí)和去優(yōu)化權(quán)重系數(shù)來(lái)進(jìn)行處理。在線(xiàn)性神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法中,各個(gè)神經(jīng)元之間連接權(quán)值的誤差值由理想中輸出的值與實(shí)際上輸出的值之間的差來(lái)估量,但因?yàn)檫@里存在線(xiàn)性不可分的實(shí)際問(wèn)題,從而在引入多級(jí)互聯(lián)網(wǎng)絡(luò)時(shí),怎么估計(jì)中間端神經(jīng)元的誤差值就成了難題,因?yàn)樵趯?shí)際運(yùn)算中,很難去知道中間端的任何神經(jīng)元的理想值和輸出值。根據(jù)長(zhǎng)時(shí)間的調(diào)查研究可以看到某菜品的銷(xiāo)量數(shù)據(jù)和隨機(jī)信號(hào)的變化類(lèi)似。在隨機(jī)信號(hào)中,常用AR模型預(yù)測(cè),它是“自回歸模型”對(duì)于標(biāo)準(zhǔn)的激勵(lì)信號(hào),其輸出的信號(hào)和待建模時(shí)的信號(hào)總是趨向一致,這是因?yàn)楹苋菀椎啬軌蛘业揭粋€(gè)足夠高階的常系數(shù)線(xiàn)性微分方程,其方程系數(shù)可完全描述信號(hào)特征。但在實(shí)際應(yīng)用時(shí),發(fā)現(xiàn)AR模型在譜估計(jì)中存在一些缺點(diǎn),如虛假譜峰、譜線(xiàn)分裂、譜峰位置受相位影響,噪聲使譜估計(jì)惡化,等等。
綜合以上因素發(fā)現(xiàn)誤差反向傳播學(xué)習(xí)算法,可以實(shí)現(xiàn)多層的神經(jīng)網(wǎng)絡(luò)模型。誤差反向傳播算法的基本原理是利用輸出后結(jié)果相差的誤差值來(lái)估量輸出端的直接相連的前導(dǎo)層的誤差值,再用兩者之間的誤差值估量更前一層的誤差值,如此一級(jí)一級(jí)反向傳遞下去,就獲得了所有其他各個(gè)層之間的誤差估計(jì)值。其這樣就形成了將輸出端體現(xiàn)出的誤差值沿著與輸入端傳送相反的方向逐層地向網(wǎng)絡(luò)的輸入端的傳遞的過(guò)程。
按預(yù)測(cè)誤差反方向傳播是BP神經(jīng)網(wǎng)絡(luò)的傳播方式,BP神經(jīng)網(wǎng)絡(luò)主要包括輸入端、輸出端和中間端,在提高神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力時(shí)是通過(guò)調(diào)整網(wǎng)絡(luò)中的中間端的連接權(quán)重和閾值,從而更好地實(shí)現(xiàn)非線(xiàn)性映射關(guān)系。BP神經(jīng)網(wǎng)絡(luò)的原理是輸入端的數(shù)據(jù)值經(jīng)過(guò)多個(gè)神經(jīng)元的計(jì)算處理后的輸出值最大程度的接近給出的實(shí)際期望值,如果BP神經(jīng)網(wǎng)絡(luò)使用逐層地去修改神經(jīng)元的權(quán)重值則是因?yàn)槌霈F(xiàn)了輸出端的結(jié)果值與期望值之間的誤差較大,直到輸出端的結(jié)果值與實(shí)際期望的結(jié)果值之間的誤差在可接受的范圍內(nèi),則停止修改神經(jīng)元的權(quán)重值。


本次實(shí)驗(yàn)選取了某食堂過(guò)去一年多里中午某菜品的銷(xiāo)量情況,一共采集了390組數(shù)據(jù),選取其中的360個(gè)樣本點(diǎn)數(shù)據(jù)進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練,對(duì)參數(shù)進(jìn)行擬合調(diào)整,剩余30個(gè)樣本點(diǎn),進(jìn)行神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)。360個(gè)樣本點(diǎn),將其分為12份,每份30組,以1、2、3份預(yù)測(cè)第4份,2、3、4份預(yù)測(cè)第5份,如此反復(fù)至預(yù)測(cè)精度基本吻合。經(jīng)過(guò)調(diào)查發(fā)現(xiàn)天氣的溫度、變化和學(xué)生的上課情況是影響菜品銷(xiāo)量的主要因素,但其中還有很多特殊不可控的因素。每次訓(xùn)練后結(jié)合新的信息再反復(fù)地進(jìn)行訓(xùn)練。因此本實(shí)例構(gòu)建了三層BP神經(jīng)網(wǎng)絡(luò),使用梯度下降法的學(xué)習(xí)算法,為了使輸出的期望值和BP神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出值的均方差趨于在理想的范圍內(nèi),它在學(xué)習(xí)過(guò)程中通過(guò)不斷地調(diào)整權(quán)值和閾值來(lái)處理。
根據(jù)地區(qū)的溫度選取從零下15度到零上30度,從調(diào)查的數(shù)據(jù)中可以發(fā)現(xiàn)隨著溫度的降低,菜品銷(xiāo)量成線(xiàn)性遞增趨勢(shì),采取樣本時(shí)也考慮了天氣狀況的變化,即有雪、有雨、多云、晴天時(shí)的菜品銷(xiāo)量,可以看到數(shù)據(jù)呈現(xiàn)線(xiàn)性遞減趨勢(shì)。將學(xué)生最后一節(jié)課為調(diào)查樣本,以離食堂較近的教學(xué)樓為例,統(tǒng)計(jì)最后一節(jié)學(xué)生上課的數(shù)量。如表1是從數(shù)據(jù)中隨機(jī)抽出的10組量化值數(shù)據(jù)。

表1 獲取的樣本數(shù)據(jù)
BP神經(jīng)網(wǎng)絡(luò)構(gòu)建根據(jù)擬合非線(xiàn)性函數(shù)特點(diǎn)確定BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),本文采用三層的神經(jīng)網(wǎng)絡(luò)進(jìn)行建模,即輸入端、中間端和輸出端均為一層輸入端,包括天氣溫度、天氣變化、學(xué)生人數(shù),即輸入端神經(jīng)元節(jié)點(diǎn)數(shù)為3,輸出端只含有菜品銷(xiāo)量,即輸出端神經(jīng)元節(jié)點(diǎn)為1。由于中間端神經(jīng)元節(jié)點(diǎn)數(shù)直接影響到神經(jīng)網(wǎng)絡(luò)對(duì)復(fù)雜問(wèn)題的映射能力,且中間端神經(jīng)元節(jié)點(diǎn)數(shù)需要通過(guò)實(shí)驗(yàn)分析獲得,其個(gè)數(shù)設(shè)為n個(gè)。
由于天氣溫度、天氣變化、學(xué)生人數(shù)這三個(gè)指標(biāo)并不是同一類(lèi)參數(shù),為保證模型訓(xùn)練結(jié)果,必須對(duì)上述指標(biāo)進(jìn)行歸一化處理。將輸入輸出變量通過(guò)歸一化處理映射到[0,1]之間。
為了更全面地評(píng)價(jià)BP神經(jīng)網(wǎng)絡(luò)模型的預(yù)測(cè)性能,在使用均方差的同時(shí),還引入了決定系數(shù)R2來(lái)評(píng)價(jià)預(yù)測(cè)精度。R2越接近于1,表明預(yù)測(cè)值與實(shí)測(cè)值之間的相關(guān)程度越高,模型擬合度越好。將隱含層神經(jīng)元節(jié)點(diǎn)n設(shè)置為1-8,分別得到對(duì)應(yīng)的預(yù)測(cè)性能評(píng)價(jià)指標(biāo)。如表2所示。

表2 預(yù)測(cè)性能評(píng)價(jià)指標(biāo)
由表2分析可知,當(dāng)隱含層神經(jīng)元節(jié)點(diǎn)數(shù)為5時(shí),BP神經(jīng)網(wǎng)絡(luò)的擬合度R2為0.98732,此時(shí)BP神經(jīng)網(wǎng)絡(luò)模型的預(yù)測(cè)性能最佳。因此BP神經(jīng)網(wǎng)絡(luò)模型隱含層的神經(jīng)元節(jié)點(diǎn)數(shù)n設(shè)置為5。建立點(diǎn)單系統(tǒng)預(yù)測(cè)模型如圖1所示。

圖1點(diǎn)單系統(tǒng)預(yù)測(cè)模型
圖2為BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練的誤差曲線(xiàn)。

圖2訓(xùn)練誤差曲線(xiàn)
由得到的圖和輸出值的結(jié)果可以得到在訓(xùn)練過(guò)程中,在10480次訓(xùn)練結(jié)束時(shí)達(dá)到了基本的目標(biāo)誤差要求。
將余下的30組數(shù)據(jù)輸入訓(xùn)練后的BP神經(jīng)網(wǎng)絡(luò)來(lái)進(jìn)行預(yù)測(cè),9-10月份實(shí)際菜品銷(xiāo)量如表3所示,BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)值與實(shí)際值對(duì)比如圖3,BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)值與實(shí)際值相對(duì)誤差如圖4所示。
由圖4中可以得出預(yù)測(cè)值與實(shí)際值基本吻合,但可以看到有個(gè)別天數(shù)誤差較大。21號(hào)和25號(hào)的誤差分別達(dá)到了總數(shù)的1/2和1/4,經(jīng)我們的調(diào)查發(fā)現(xiàn),在21號(hào)那天某商場(chǎng)店鋪10周年慶,現(xiàn)場(chǎng)非常熱鬧,導(dǎo)致許多人沒(méi)有去食堂就餐,因這是特殊因素,模型中沒(méi)有預(yù)測(cè)到,但這不會(huì)影響整體結(jié)果。
在25號(hào)那日因?qū)W校有一場(chǎng)大型的招聘會(huì),導(dǎo)致預(yù)測(cè)值有偏差,但因21號(hào)特殊情況,模型中加入了因突發(fā)狀況而導(dǎo)致的誤差,因此相比較上次的誤差,這次下降了一半。

圖3 BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)值與實(shí)際值對(duì)比

表3 實(shí)際菜品銷(xiāo)量
本文通過(guò)設(shè)置影響菜品銷(xiāo)量的指標(biāo),提出了一種基于BP神經(jīng)網(wǎng)絡(luò)食堂點(diǎn)單系統(tǒng)備菜量預(yù)測(cè)。通過(guò)實(shí)驗(yàn)仿真,能夠很好地對(duì)菜品銷(xiāo)量進(jìn)行預(yù)測(cè),使預(yù)測(cè)結(jié)果更加精確,能很好地?cái)M合各種情況,提供備菜量的理論根據(jù),指導(dǎo)食堂管理人員可以合理地備菜,更好地避免浪費(fèi),實(shí)現(xiàn)光盤(pán)行動(dòng)。

圖4相對(duì)誤差