国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于LSTM網(wǎng)絡(luò)模型的菜品銷量預(yù)測

2018-10-13 07:58馬超群王曉峰
現(xiàn)代計算機 2018年23期
關(guān)鍵詞:菜品向量銷量

馬超群,王曉峰

(上海海事大學(xué)信息工程學(xué)院,上海 201306)

0 引言

近年來,由于大數(shù)據(jù)的興起,使得我們的生活得到了很大的改善,大數(shù)據(jù)已經(jīng)開始滲透到各行各業(yè),傳統(tǒng)企業(yè)也想搭乘大數(shù)據(jù)的順風(fēng)車,來為公司和企業(yè)帶來科學(xué)的分析和指導(dǎo)。目前大多數(shù)餐飲企業(yè)還僅局限于傳統(tǒng)的分析方法,有的企業(yè)則完全取決于管理人員的個人經(jīng)驗來進行決策。本文應(yīng)某全國連鎖火鍋企業(yè)的要求,對近2年來的餐飲消費數(shù)據(jù)進行分析,以金針菇菜品為例,分析其潛在的數(shù)據(jù)價值,并對其銷量進行預(yù)測。

目前對于餐飲領(lǐng)域還未對菜品的銷量進行預(yù)測,本文通過閱讀國內(nèi)外文獻,總結(jié)出在時間序列領(lǐng)域內(nèi)預(yù)測模型的種類。所用的方法主要有自回歸移動平均(ARIMA)、支持向量回歸(SVR)、隨機森林(XGBoot)等。時間序列是從數(shù)量上揭示某一現(xiàn)象的客觀規(guī)律,分為圍觀層面和宏觀層面,從一定角度揭示變化和時間之間的關(guān)系,從本質(zhì)上發(fā)現(xiàn)其中的規(guī)律,挖掘其內(nèi)在的信息。嚴(yán)宇宙使用ARIMA模型預(yù)測深圳市PM2.5濃度[1],Salim Lahmiri提出了使用SSA(奇異譜分析)和支持向量回歸(SVR)以及粒子群優(yōu)化(PSO)的股價預(yù)測模型[2]。得到了比單一模型更好的實驗結(jié)果。然而,由于混合模型過于復(fù)雜、需要人為不斷的調(diào)節(jié),不利于在推廣和使用。隨著神經(jīng)網(wǎng)絡(luò)模型的發(fā)展,一些時序數(shù)據(jù)[3]也開始采用深度學(xué)習(xí)的技術(shù)來處理。循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[4]不同于 BP 和ANN,它在時序數(shù)據(jù)上表現(xiàn)較好,其他人工神經(jīng)網(wǎng)絡(luò)在進行學(xué)習(xí)時,假設(shè)輸入輸出之間相互獨立,并沒有考慮到序列中上下文之間的關(guān)系,這一點對時序數(shù)據(jù)來說,尤為重要。然而,這些復(fù)雜的神經(jīng)網(wǎng)絡(luò)設(shè)計又帶來了自己的挑戰(zhàn)。當(dāng)監(jiān)督學(xué)習(xí)被考慮并且實施反向傳播以更新神經(jīng)網(wǎng)絡(luò)的連接的權(quán)重時,梯度消失和爆炸是成功訓(xùn)練循環(huán)神經(jīng)網(wǎng)絡(luò)的非常嚴(yán)重的障礙。為了彌補了RNN缺點,Sepp Hochreiter和 Jurgen Schmidhuber在1997年提出了長短期記憶模型(Long Short-Term Mem?ory,LSTM)[5]。LSTM是一種基于RNN神經(jīng)網(wǎng)絡(luò)的模型,用于處理長時間序列數(shù)據(jù)。相對于其他序列模型,LSTM能夠解決長期依賴問題,其單元使用輸入門、忘記門和輸出門,采用門控系統(tǒng)來調(diào)整輸出值,同時存儲節(jié)點狀態(tài)信息,并且可以通過每個門來添加和刪除信息,也就是遺忘一部分狀態(tài)信息。另外,由于每個門的操作由附加到單元狀態(tài)的加法操作,所以避免了梯度消失的問題。由于近年來LSTM[6]在自然語言處理,語言翻譯,生物基因和視頻等領(lǐng)域取得顯著的效果。在對餐飲數(shù)據(jù)分析后,決定采用LSTM模型對菜品銷量這一時間序列進行預(yù)測研究。

1 相關(guān)理論和技術(shù)

1.1 RNN網(wǎng)絡(luò)模型

循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)是機器學(xué)習(xí)中常用的非線性動態(tài)模型。在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型中,往往假設(shè)其輸入和輸出是相互獨立的。但是現(xiàn)實環(huán)境中往往二者之間卻存在某種關(guān)系。假如你想預(yù)測句子中的下一個單詞,應(yīng)當(dāng)知道哪些單詞出現(xiàn)在它之前。RNN之所以被稱之為循環(huán)是在于其對隱藏層之間進行了連接。圖1表示了比較常見的RNN網(wǎng)絡(luò)的架構(gòu)圖。

圖1 RNN節(jié)點間關(guān)聯(lián)

圖2 RNN節(jié)點展開

RNN通常是全連通網(wǎng)絡(luò),其中連接權(quán)值為訓(xùn)練參數(shù)。一個簡單的深層循環(huán)神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)將隱藏狀態(tài)向量排列在二維網(wǎng)格中,其中t=1,…,T是網(wǎng)絡(luò)學(xué)習(xí)的總時間,l=1,…,L是網(wǎng)絡(luò)的深度。圖2為深度為2的簡單RNN展開結(jié)構(gòu)。對于原始nx維向量Xt輸入,其ny維輸出向量Yt則由下式子給出。

其中Wl是 nh×nh權(quán)重矩陣,Ul是 nh×nx權(quán)重矩陣,函數(shù)f(.)是隱藏層的激活函數(shù),神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)的核心組件之一。權(quán)重矩陣W模擬各種隱藏狀態(tài)之間的基礎(chǔ)動態(tài)連接。因此,潛在的非線性交互可以通過w隱藏狀態(tài)在這個框架內(nèi)建模,并從數(shù)據(jù)中提供值得注意的隱藏動態(tài)特性,并允許V參數(shù)適當(dāng)?shù)丶訖?quán)這些模式。使得遞歸神經(jīng)網(wǎng)絡(luò)在建模和預(yù)測變量之間的順序關(guān)系時表現(xiàn)出很好的效果。

但是,RNN在實施反向傳播以更新神經(jīng)網(wǎng)絡(luò)的連接的權(quán)重時,如果當(dāng)前的輸出與距離較遠的時間序列有關(guān),RNN將無法更新遠距離數(shù)據(jù)對權(quán)值的影響。所以為解決此問題,就需要引入LSTM。

1.2 LSTM對RNN的改進

LSTM使用稱為存儲器單元的結(jié)構(gòu)而不是RNN神經(jīng)元。它結(jié)合了快速訓(xùn)練和高效學(xué)習(xí)任務(wù),在試驗期間需要連續(xù)短時記憶存儲許多時間步驟[7]。其最大的改進就是添加了記憶單元(Memory Cell),它通過門控結(jié)構(gòu)來控制歷史信息更新和使用,分別是輸入門(Input Gate)、遺忘門(Forget Gate)和輸出門(Output Gate)。LSTM單元的基本結(jié)構(gòu)如圖3所示:

圖3 LSTM單元結(jié)構(gòu)

圖3 中ht表示t時刻存儲的信息,xt為t時刻的輸入信息,tanh和R分別表示雙曲正切函數(shù)和sigmoid函數(shù)。ct表示t時刻記憶細胞的計算方法,ctw為當(dāng)前t時刻候選單元的狀態(tài)信息。下面將分步介紹LSTM每個時間點的更新流程。

ft為遺忘門的輸出值,其決定從存儲單元中刪除或遺忘一部分信息,中ht-1為上一時刻的輸出值,xt為當(dāng)前的輸入值,W和b分別是系數(shù)組成的矩陣和偏置的向量,σ是激活函數(shù)sigmoid。

計算輸入門的it值,用來決定更新多少信息,輸出為0-1之間的某個值。

更新細胞狀態(tài),舊的細胞狀態(tài)ct-1與遺忘門輸出值ft相乘,輸出更新的后選值表達式與輸入門it相乘,二者相加得到新的細胞狀態(tài)ct。

計算輸出門output gate的值ot,它決定多大比例的記憶用于輸出。

最后一步則是使用雙曲正切函數(shù)更新Ct值,使其處于-1-1之間,最后將輸出門值ot與其相乘,則得到t時刻的最終輸出值ht:

2 實驗分析

本節(jié)結(jié)合實際,通過對連鎖火鍋企業(yè)的消費數(shù)據(jù)進行清洗,處理成模型需要的數(shù)據(jù)格式,并通過Hyper?opt進行模型參數(shù)的選取,并指定相應(yīng)的指標(biāo)來對模型進行評測。實驗軟件環(huán)境為Windows,CPU:Intel Core i5 2.5GHz,8GB RAM,GPU:Intel HD Graphics 6100 1696M。

2.1 數(shù)據(jù)的選擇

根據(jù)每天訂單數(shù)據(jù)里的菜品銷量,剔除退菜和異常數(shù)據(jù)值,將半份和份統(tǒng)一成以份為單位的數(shù)據(jù)。選取近兩年來的金針菇銷量數(shù)據(jù),以日期為時間軸的時間序列作為輸入。轉(zhuǎn)化觀察值使其處在特定區(qū)間。具體來說,就是將數(shù)據(jù)縮放帶-1至1的區(qū)間內(nèi),以滿足LSTM模型默認的雙曲正切激活函數(shù)。

式中xmax和xmin分別為菜品銷量的極大值和極小值。預(yù)測模型得到的預(yù)測數(shù)據(jù)為歸一化數(shù)據(jù),需要進行反歸一化使其具有實際意義,反歸一化計算公式為:

2.2 模型評價指標(biāo)的選擇

用來比較的兩種模型都分別選取了表現(xiàn)最好的一組。為了衡量模型預(yù)測的準(zhǔn)確率,使用平均絕對誤差(MAE)和均方根誤差(RMSE)來作為衡量模型效果好壞的指標(biāo)。

其中,yi和 fi分別為銷量時間序列在第i天的銷量值和模型預(yù)測值,N為天數(shù)。

2.3 LSTM預(yù)測模型

基于TensorFlow和Keras深度學(xué)習(xí)框架來搭建本實驗所需模型。由于本實驗數(shù)據(jù)采用單一變量,數(shù)據(jù)為兩年半菜品的銷量數(shù)據(jù),所以可以使用經(jīng)典的三層網(wǎng)絡(luò)模型結(jié)構(gòu)。模型的第一層為輸入層,輸入單元為單個日期的菜品銷量值,輸入層的單元數(shù)由Hyperopt自動調(diào)參優(yōu)化模型選取,依照經(jīng)驗,一般對于三層的網(wǎng)絡(luò)模型,隱含層的單元數(shù)為輸入層單元數(shù)的兩倍,即輸入單元為50,隱含層單元為100。最后一層為輸出層。

為了防止模型出現(xiàn)過擬合,增強模型的擬合能力,對輸入層和隱含層添加dropout,當(dāng)數(shù)據(jù)量較少時,drop?out的系數(shù)值可以相應(yīng)的減少,過大則使得節(jié)點向量過于稀疏,不利于獲取數(shù)據(jù)的特征。在該模型中設(shè)置dropout為0.1。為了防止梯度爆炸等問題,在隱含層添加激活函數(shù),激活函數(shù)的選取需要根據(jù)模型的收斂速度和預(yù)測效果的好壞來選取,LSTM處理時序問題時,一般采用MSE均方誤差來作為其損失函數(shù)。優(yōu)化方法采用隨機梯度下降法(SGD)的改進方法RMSprop。學(xué)習(xí)率設(shè)置為0.002,過大則會出現(xiàn)loss值一直震蕩,且不會收斂。模型訓(xùn)練batch size的選取則采用自動調(diào)參工具Hyperopt中的模擬退火算法(Simulated An?nealing)得出。將數(shù)據(jù)歸一化為-1到1區(qū)間內(nèi)的數(shù),每5條數(shù)據(jù)分為一組訓(xùn)練數(shù)據(jù),后一條數(shù)據(jù)為預(yù)測數(shù)據(jù)。模型訓(xùn)練100次,得以下結(jié)果(圖4)。

由圖4可以看出,LSTM模型很好地擬合了銷量數(shù)據(jù)的周期性,且經(jīng)過歸一化數(shù)據(jù)還原后,能夠清楚的看到預(yù)測結(jié)果與原始值之間的差異,該模型能夠很好地判斷數(shù)據(jù)地起伏趨勢,為了突出該模型的優(yōu)點,將該模型與RNN和ARIMA模型進行對比,RNN模型采用三層網(wǎng)絡(luò)架構(gòu),部分參數(shù)和LSTM模型相同,ARIMA模型采用自適應(yīng)參數(shù)調(diào)節(jié)。表1顯示了模型預(yù)測誤差值,圖5和圖6為模型預(yù)測圖。從上圖可以看出RNN模型能夠體現(xiàn)出數(shù)據(jù)的周期性,但是由于RNN存在結(jié)點記憶快速衰減的特點,使得其精度有所降低。ARIMA預(yù)測模型則只能大致的擬合出周期趨勢,預(yù)測結(jié)果劣于前兩個模型。

圖4 LSTM模型預(yù)測結(jié)果

圖5 RNN模型預(yù)測結(jié)果

圖6 ARIMA模型預(yù)測結(jié)果

表1 模型預(yù)測統(tǒng)計分析結(jié)果

3 結(jié)語

本文通過對餐飲數(shù)據(jù)的處理和分析,針對菜品銷量非線性、變化波動等特點,采取了適用于此類問題的LSTM模型;相對于RNN和傳統(tǒng)的時間序列分析模型ARIMA取得了很好的預(yù)測效果?,F(xiàn)階段采用的僅是單一變量預(yù)測菜品銷量,后期可以加入季節(jié)、溫度、節(jié)假日等多因素預(yù)測銷量,進一步提高該模型的預(yù)測精度,這也將成為我們下一步的研究目標(biāo)。

猜你喜歡
菜品向量銷量
向量的分解
團膳菜品質(zhì)量管理存在的問題及完善策略
同比增長130%!劍指3萬噸銷量,豐華黃顙料迎來大爆發(fā)
聚焦“向量與三角”創(chuàng)新題
迷惑菜品又來了
盤點2018年車企銷量
如何加強菜品加工過程中的衛(wèi)生管理
2016年度車企銷量排名
向量垂直在解析幾何中的應(yīng)用
上汽通用172萬銷量下的陰影