多組時間序列預測

雲腦科技機器學習訓練營以講解時間序列收尾,詳細解說了時間序列的傳統模型、進階模型、神經網路模型。本期訓練營由科賽聯合雲腦科技打造,中美大咖導師授課,精心指導學員解決機器學習中的實際問題,為人工智慧行業培育高潛力人才。

K-Lab在線數據分析協作平台為本次訓練營提供全程支持,訓練營學員可在瀏覽器中方便、快捷地進行數據處理、模型搭建、代碼調試、撰寫報告等分析工作,實現在線「報名-AI應用演算法案例學習與實踐-作品在線提交-能力測評與篩選」的一站式學習。

分享內容簡介

主題:多組時間序列預測

主講人:徐昊(雲腦科技核心演算法工程師)

雲腦科技核心演算法工程師,高性能計算專家。在高性能分散式計算、圖計算、隨機優化領域有著十餘年研發經驗,發表IEEE/ACM頂級論文20餘篇,曾獲第八屆國際低能耗電子器件會議唯一最佳論文獎,曾任ANSYS軟體研發經理、首席工程師。

時間序列的應用

你可以認為世界上發生的每一件事都是一個時間序列的一部分,時間序列的應用可以很廣泛,目前時間序列有一些應用:股票預測、自然語言處理模型:因為語言本身就可以看作一個序列,如 can you pleace come here? 說了前四個字,讓你預測最後一個字。預測視頻:給你一幀,讓你預測下一個動作。PPT Slides:提供前一個Slides,預測下一個Slides講什麼?這個預測比較複雜,存在邏輯上的連貫性。大家可以看出時間序列的預測有各種各樣的形式,有可能是比較困難的。

時間序列預測

時間序列預測需要做些什麼?主要是在數據中發現時變的規律。左圖有兩個隨機性比較強的時間序列,我們如何從中發現規律,可以使用右邊的圖來演示。第一個是觀測,可以把它演變成趨勢,它還包括周期性的信號,最後還有一些隨機的因素,後面三部分(趨勢、周期、隨機)合起來構成了最上方的信號。

時間序列預測任務是發現數據的時變規律,在不同的抽象層次。如:鐘錶有12-hourcycle,hour cycle,還有minutecycle, 他在不同層次上,由時針、分針、秒針的位置產生的時間序列,我們需要學習三個層次的規律。

技術挑戰

舉個例子:視頻預測中有兩幀圖,在圖像識別中,假設每一幀裡面有M個像素,圖像識別的任務就是從M的像素中找到規律。如果要預測,從第一幀(M個)到第二幀(M個),學習空間就維度有MM個。如果要更準確一點,用前面N幀來預測下一幀,就有(MN)M 大的空間。如果之前每一幀都有一個輸入X,那麼這個學習空間將十分大(M(N+X)*M)。大家可以看到M個像素的圖像識別任務,放到時間序列中將十分複雜,很難去學。所以時間序列學習的挑戰還是比較多的:

  • 非線性
  • 高維度導致十分大
  • 尋找的規律是有層次的

模型分析

傳統模型的一個代表是ARIMA模型,它的用途十分廣泛,尤其是社會現象的應用,如庫存量預測,銷售量預測。ARIMA分為三個部分:AR:Auto regressive 、MA:Moving Average、 I:Integration filter。

Auto regressive 數學公式中第一項是常量,最後一項是隨機雜訊,中間一項是說當前yt由之前t-1個y乘係數γ所決定的,找到前面i個時間點的值,乘以係數再相加。不同的γ可以產生不同的時間序列。

Moving Average 也是由常量均值、隨機量以及用過去i個點殘差值學一個模型。將這兩部分合起來就得到一個複雜一些的模型,這個複雜的模型就能產生更複雜一點的時間序列,換句話講就可以用這個模型學習一個更複雜的時間序列。

Integration filter 核心是將ARMA模型中的y換成 Δy,也就是difference的項。這個的好處是:一個時間序要學趨勢、學周期再去學隨機量就比較複雜,怎麼簡化這個過程呢?只要做個一階的difference ,去學 Δy , 實際上是去掉了趨勢因素。所以大家可以注意,處理時間序列經常用的方法的是:不去預測y,去預測 Δy。 從術語上說,把序列做了一個stationary。

Hidden Markov Model

在神經網路之前,語音識別用的都是Hidden Markov Model(HMM)。觀測到X1到Xt,y1到yt是隱藏的內部狀態。模型有兩個假設:第一個假設 Markov property:internal state 只由前一個狀態決定,所以只走一步。

第二個假設是當前的觀測值只由當前的隱藏狀態決定。它其實把時間序列的預測分為很多小部分,也是約束性很強的一個模型。模型雖然很簡單,但是十分有效,因為自然界很多事物都遵循馬爾科夫假設。

stationary是指系統經過一系列的變化又回到了原點。如果有趨勢項,很可能就回不到原點,做了difference 之後就去掉趨勢因素。

Chain Conditional Random Field

CRF的主要改進是,當前的internalstate,不僅僅與當前的觀測值有關,也與之前的觀測值有關。所以這個網路的假設沒有那麼強。下面三個都是CRF網路,只是假設強度不一樣。

例如中間的網路,每個時間點的internal state,與當前,與前一個時間點的觀測值都相關,這個網路就更複雜了。最下面一種是與所有的觀測量都有關係,假設更弱了,所以它的表達能力是最強的,但是也是很難學的。

CRF模型實際上是約束最少的,有的假設在HM模型中是不成立的就需要用到CRF,而且很多網路的最後一層是用CRF來做的。

神經網路

先舉兩個例子,看一下神經網路做時間序列預測是怎麼搭的。第一個是一個語言模型,它的核心的神經網路是LSTM——長短記憶網路。如給定一句話:to be or not ,要做的是給你一個詞,預測下一個詞。這個網路分為三層:Embeding layer 、LSTM Lyaer、Output Layer。

再看一個神經網路的應用,給你一個視頻,然後產生字幕、或者描述視頻中的人物在做什麼,基本的結構叫做Encoder /Decoder Architec。下圖中左邊是Encoder,Encoder去看你的視頻,用LSTM串起來,流到右邊是 Decoder,Decoder出來的標籤是:A man is talking。

下面看一下神經網路的結構,最基本的 Recurrent Neural Network 。它分為兩個部分:1. Intertnal State Transition 2.Output Transition Network 。 Intertnal State Transition 假設他有個內部狀態,內部狀態是指它自身有一個狀態變化的規則,內部狀態在某一個狀態的時候會產生一個輸出,這個輸出是由softmax來實現,完全相對於與HMM,HMM是兩個Transition matrix , RNN是兩個神經網路。

看一下RNN的一個變種——長短記憶網路(LSTM),它把RNN的每一個cell的結構做的更加複雜。RNN內部狀態從左邊流到右邊只有一根線,也就是說只有一個一組狀態會被傳到下一步,LSTM實際上是有兩根線在傳,最上面的一根叫做長期記憶,這條線沒有加很多非線性的東西,之前在神經網路上學到的東西在這一步很容易被傳到下一步去,這就是長期記憶的一個概念:以前學的東西很容易被記住。有了長期記憶之後會做一個Gate,去控制長期記憶的強度。

另一部分,除了控制長期記憶之外,跟短期記憶有個相加的過程,此外對短期記憶有個非線性的變化,然後與長期記憶相加。即一部分是長期記憶,還有一部分是短期記憶,然後將兩部分相結合,結合是根據神經網路里的weight去學的。

這樣的結構,給他一個輸入,一旦給定一個標籤,那麼在長期記憶下更重要還是短期記憶更重要,學的過程中會自己去分配。傳下去的記憶等於長期記憶乘以遺忘係數,加上新的記憶乘新的記憶scaling factor。最後會有一些Output layer,它也做了非線性的變化。理論上說他分成了兩部分,長期記憶和短期記憶。神經網路的實現,就是以上講的具體的一些公式。

下面我們看一下LSTM。

剛才我們看到的是把LSTM 串起來,實際上也可以把它疊加起來。有很多層LSTM,當前層的LSTM 的輸出可以做下一層的輸入,最後可以做成很大的LSTM 的網路,網路更大就可以學更deep 的feature。

Gated Convolutional Network (GCN)

接下來提一下現在比較流行的模型:Gated Convolutional Network(GCN),也是用在時間序列的學習上。比如說現在有一段文章,sliding window 是10,把十個單詞拿出來,然後做embedding,將十個單詞的embdding的拼起來,然後在拼起來的sequence上做CNN,圖像做出來之後再去做預測。實際上把序列學習的問題轉化成CNN可以做的問題。

神經網路模型相對於LSTM還有更多的模型:Gated Recurrent Network,GRN是LSTM 的一個變種。 還有大家可能聽說過的Attention Network,也是LSTM 的一個變種。 Bidirectional LSTM 也就是說在做LSTM時不僅可以從左往右傳還可以從右往左傳,然後兩邊傳的結果做concate,再來做預測。這樣對某些應用還是比較好的,比如說給你一句話:Stacking LSTM helps to learn deep features,把『helps』去掉讓你去填空,如果單一的從左往右是不夠的,需要結合兩邊的信息,從左往右從右往左傳都有。

剛才我們介紹了傳統模型,進階模型,神經網路模型。時間序列預測還有很多模型:SupportVector Regression , Gaussian Process ,Tree and Boosting ,Graphical Models。具體用哪一個模型要看具體的應用,要看哪一個模型的假設正好和模型match上。

推薦閱讀:

SQL學習三部曲
記錄我是如何轉型大數據分析(二)——iris
!!!!亞馬遜PPC又調整,出現數據可視化功能!
Kindle是否值得包月
30秒了解Excel的前世今生

TAG:數據分析 | 時間序列分析 |