寇茜茜 何希平,2,3*
1(重慶工商大學(xué)電子商務(wù)與供應(yīng)鏈系統(tǒng)重慶市重點(diǎn)實(shí)驗(yàn)室 重慶 400067)2(重慶市工商大學(xué)計(jì)算機(jī)科學(xué)與信息工程學(xué)院 重慶 400067)3(重慶工商大學(xué)重慶市檢測(cè)控制集成系統(tǒng)工程實(shí)驗(yàn)室 重慶 400067)
基于棧式自編碼器模型的匯率時(shí)間序列預(yù)測(cè)
寇茜茜1何希平1,2,3*
1(重慶工商大學(xué)電子商務(wù)與供應(yīng)鏈系統(tǒng)重慶市重點(diǎn)實(shí)驗(yàn)室 重慶 400067)2(重慶市工商大學(xué)計(jì)算機(jī)科學(xué)與信息工程學(xué)院 重慶 400067)3(重慶工商大學(xué)重慶市檢測(cè)控制集成系統(tǒng)工程實(shí)驗(yàn)室 重慶 400067)
針對(duì)目前具有非線性特征的金融時(shí)間序列淺層模型預(yù)測(cè)精度有限的問題,提出一種由底層的棧式自編碼器和頂層的回歸神經(jīng)元組成的棧式自編碼神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型。首先利用自編碼器的無監(jiān)督學(xué)習(xí)機(jī)制對(duì)時(shí)間序列進(jìn)行特征識(shí)別與學(xué)習(xí),逐層貪婪學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)各層,之后將棧式自編碼器擴(kuò)展為有監(jiān)督機(jī)制的SAEP模型,將SAE學(xué)習(xí)到的參數(shù)用于初始化神經(jīng)網(wǎng)絡(luò),最后利用有監(jiān)督學(xué)習(xí)對(duì)權(quán)值進(jìn)行微調(diào)。實(shí)驗(yàn)設(shè)計(jì)利用匯率時(shí)間序列作為訓(xùn)練及測(cè)試樣本,與目前較成熟的方法進(jìn)行對(duì)比實(shí)驗(yàn),驗(yàn)證了所提出的模型在匯率時(shí)序預(yù)測(cè)應(yīng)用中的有效性。
時(shí)間序列 預(yù)測(cè) 深度學(xué)習(xí) 棧式自編碼器 特征學(xué)習(xí) 深度神經(jīng)網(wǎng)絡(luò)
基于時(shí)間序列分析的特征識(shí)別與預(yù)測(cè)已經(jīng)成為國(guó)內(nèi)外研究的熱點(diǎn),而構(gòu)造有效的數(shù)據(jù)分析模型是精準(zhǔn)預(yù)測(cè)的關(guān)鍵步驟[1]。對(duì)于現(xiàn)在普遍存在的時(shí)間序列來說,傳統(tǒng)的淺層模型已經(jīng)不能有效表達(dá)其深層次的特征[2]。為更好地模擬應(yīng)用中的時(shí)間序列,目前通用的做法是設(shè)計(jì)特征選擇器,但對(duì)于每項(xiàng)任務(wù)來說,設(shè)計(jì)特征選擇器需要專家經(jīng)驗(yàn)且耗時(shí);另一種做法是從無類別標(biāo)簽的數(shù)據(jù)中采取無監(jiān)督學(xué)習(xí)機(jī)制學(xué)習(xí)特征[3-4],這一做法的優(yōu)勢(shì)在于無需設(shè)計(jì)特征選擇器即可自動(dòng)學(xué)習(xí)序列數(shù)據(jù)之間潛在的關(guān)聯(lián)關(guān)系。深度神經(jīng)網(wǎng)絡(luò)產(chǎn)生于人工智能研究背景,并且已經(jīng)在多個(gè)時(shí)間序列應(yīng)用領(lǐng)域取得較好的結(jié)果,例如語(yǔ)音識(shí)別[5]、運(yùn)動(dòng)肢體識(shí)別[6]、視頻目標(biāo)分類[7]等。匯率時(shí)間序列具有動(dòng)態(tài)性和不確定性,含有大量噪音干擾,通常呈現(xiàn)出非線性特征,對(duì)于匯率時(shí)序的預(yù)測(cè)一直是國(guó)內(nèi)外金融研究中重要且具有挑戰(zhàn)的工作之一[8],目前對(duì)于匯率的時(shí)序預(yù)測(cè)模型有計(jì)量模型,例如ARIMA模型[9]、ARCH模型[10]、GARCH模型[11],這些模型的改進(jìn)及組合都在一定程度上推進(jìn)了匯率預(yù)測(cè)的研究;另一類為基于機(jī)器學(xué)習(xí)的模型,例如人工神經(jīng)網(wǎng)絡(luò)(ANN)[11-13]和支持向量機(jī)(SVM)[14]?,F(xiàn)有的模型預(yù)測(cè)精度受限問題主要集中在淺層學(xué)習(xí)難以挖掘時(shí)間序列的深層次特征。針對(duì)匯率預(yù)測(cè)精度受限的問題,本文提出一種由底層的棧式自編碼器和頂層的回歸層組成的深度學(xué)習(xí)預(yù)測(cè)模型,同時(shí)該模型的提出,尤其是無監(jiān)督學(xué)習(xí)機(jī)制,為時(shí)間序列的實(shí)時(shí)性預(yù)測(cè)提供了一種新的思路和方向。
基于以上的分析,本文研究棧式自編碼預(yù)測(cè)模型SAEP(Stacked AutoEncoder based Prediction model)及其匯率時(shí)序預(yù)測(cè)應(yīng)用。首先,利用無監(jiān)督逐層貪婪學(xué)習(xí)的自編碼器,堆疊實(shí)現(xiàn)對(duì)深度神經(jīng)網(wǎng)絡(luò)的預(yù)訓(xùn)練,之后再用監(jiān)督學(xué)習(xí)對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行微調(diào),然后借助學(xué)習(xí)到的網(wǎng)絡(luò)模型實(shí)現(xiàn)時(shí)間序列的預(yù)測(cè)。該模型尤其可以解決具有非線性特征的時(shí)間序列預(yù)測(cè)精度受限的問題。
1.1 自編碼器
自編碼器AE(AutoEncoder)是嘗試學(xué)習(xí)一個(gè)恒等函數(shù),使得輸出值等于輸入值,現(xiàn)假設(shè)有一個(gè)時(shí)間序列樣本{y(1),y(2),…,y(n)},對(duì)于t時(shí)刻的自編碼結(jié)構(gòu)如圖1所示。
圖1 自編碼器的結(jié)構(gòu)
設(shè)W1∈Rk×m、b1∈Rk分別表示可視層V(VisibleLayer)與隱藏層H(HiddenLayer)的連接權(quán)值和偏置,W2∈Rm×k、b2∈Rm分別表示隱藏層與重構(gòu)可視層的連接權(quán)值和偏置。假定每一個(gè)節(jié)點(diǎn)非線性激活函數(shù)為sigmoid函數(shù),則對(duì)于自編碼器的編碼過程如式(1)所示。
(1)
解碼過程為:
(2)
自編碼器將輸入y編碼為新的表達(dá)h,再將h解碼重構(gòu)回y,通過反向傳播算法來訓(xùn)練網(wǎng)絡(luò)實(shí)現(xiàn)重構(gòu)并恢復(fù)輸入值。其關(guān)鍵在于求解參數(shù){w,b}使得重構(gòu)誤差最小化。
若樣本數(shù)為N,則自編碼器輸出誤差代價(jià)函數(shù)可表示為:
(3)
(4)
1.2SAE模型
通過堆疊n個(gè)自編碼器構(gòu)成了棧式自編碼神經(jīng)網(wǎng)絡(luò)SAE(StackedAutoEncoder),該模型中前一個(gè)自編碼的隱層輸出h(i-1)作為其后一層自編碼可視層的輸入V(i),即:
V(i)=h(i-1)
其中i=2,3,…,n,即去除自編碼器的解碼層堆疊構(gòu)成深度神經(jīng)網(wǎng)絡(luò)。n個(gè)自編碼器堆疊而成的SAE結(jié)構(gòu)如圖2所示。
圖2 棧式自編碼器
SAE是對(duì)序列特征的學(xué)習(xí)過程,通過堆疊自編碼器,對(duì)序列進(jìn)行深度學(xué)習(xí),可以表達(dá)出序列間的潛在特征。
對(duì)于實(shí)現(xiàn)時(shí)間序列的預(yù)測(cè)目標(biāo)而言,則需要再添加一個(gè)用于預(yù)測(cè)目標(biāo)的神經(jīng)元,這一神經(jīng)元的目的在于通過監(jiān)督學(xué)習(xí)調(diào)整網(wǎng)絡(luò)模型以此實(shí)現(xiàn)預(yù)測(cè)目標(biāo)。
1.3SAEP模型
對(duì)于時(shí)間序列{y(1),y(2),…,y(n)},通過添加神經(jīng)元,在t時(shí)刻基于SAE的時(shí)間序列預(yù)測(cè)模型SAEP(StackedAutoEncoderbasedPredictionmodel)結(jié)構(gòu)如圖3所示。
圖3 SAEP的結(jié)構(gòu)
對(duì)于棧式自編碼神經(jīng)網(wǎng)絡(luò),第1層的編碼器隱層特征為:
h(l)=σ(W(l)h(l-1)+b(l))
(5)
其中,h(0)=Y,W(l)和b(l)分別表示第1層自編碼器的編碼層權(quán)重和偏置。通過自編碼器的棧化多次非線性變換得到的h(n)表示了網(wǎng)絡(luò)學(xué)習(xí)到的潛在特征,它包含了預(yù)測(cè)目標(biāo)中的重要信息。為了達(dá)到預(yù)測(cè)目標(biāo),以非線性sigmoid神經(jīng)元作為最后預(yù)測(cè)模型的輸出節(jié)點(diǎn)。
SAEP模型的整體代價(jià)函數(shù)為:
(6)
SAEP的關(guān)鍵是不斷調(diào)整{w,b}以此擬合出輸入輸出數(shù)據(jù)之間的函數(shù)關(guān)系。
基于以上的模型構(gòu)建,SAEP的特征學(xué)習(xí)過程可以分為無監(jiān)督的預(yù)訓(xùn)練,即SAE的特征學(xué)習(xí),這一過程旨在挖掘出輸入序列的深層特征;基于監(jiān)督學(xué)習(xí)的預(yù)測(cè),即深度神經(jīng)網(wǎng)絡(luò)的擴(kuò)展(SAEP的構(gòu)建)及網(wǎng)絡(luò)微調(diào)。
2.1 自編碼器的學(xué)習(xí)算法
自編碼器的參數(shù)學(xué)習(xí)采取反向傳播算法。在優(yōu)化神經(jīng)網(wǎng)絡(luò)時(shí),首先利用式(1)和式(2)計(jì)算各層的神經(jīng)元激活值,根據(jù)式(3)計(jì)算代價(jià)函數(shù),利用反向傳播算法計(jì)算各層代價(jià)函數(shù)的偏導(dǎo)數(shù)。假定自編碼器的輸出層為第L層,輸出目標(biāo)為Y,自編碼器的輸出層和隱藏層各個(gè)節(jié)點(diǎn)的誤差表達(dá)式分別為:
δ(L)=-(Y-σ(z(L)))f′(z(L))
(7)
(8)
其中,l=L-1,…,2,式中的f為sigmoid函數(shù),f′(z(l))表示第l層激活函數(shù)f(z)對(duì)輸入z的導(dǎo)函數(shù)值。按照下式計(jì)算l層神經(jīng)元節(jié)點(diǎn)的激活值:
z(l)=w(l)h(l-1)+b(l)
(9)
然后,根據(jù)以下公式計(jì)算需要的梯度:
▽w(l)E(W,b;x,y)=δ(l+1)(h(l))T
(10)
▽b(l)E(W,b;x,y)=δ(l+1)
(11)
利用梯度下降法更新權(quán)重參數(shù),設(shè)α為每次迭代的學(xué)習(xí)率,迭代更新表達(dá)式為:
w(l)=w(l)-α[▽w(l)E(W,b;x,y)]
(12)
b(l)=b(l)-α[▽b(l)E(W,b;x,y)]
(13)
通過不斷反復(fù)迭代以此減小代價(jià)函數(shù)式(3)的值,以此來優(yōu)化自編碼器。
2.2 逐層貪婪學(xué)習(xí)算法
棧式自編碼器若采取梯度下降法,往往并不能取得很好的效果,主要原因在于網(wǎng)絡(luò)深度的增加會(huì)使得反向傳播的梯度值急劇減小,因此在最初的幾層網(wǎng)絡(luò)權(quán)值的導(dǎo)數(shù)非常小,即權(quán)值變化非常緩慢,以至于無法訓(xùn)練[15]。為避免訓(xùn)練出現(xiàn)局部最優(yōu),SAE的實(shí)現(xiàn)采取逐層貪婪學(xué)習(xí)算法[15]。該算法的主要思想在于每次只訓(xùn)練網(wǎng)絡(luò)中的一層,首先訓(xùn)練一個(gè)只含一個(gè)隱藏層的自編碼器,該層自編碼器達(dá)到優(yōu)化后再開始訓(xùn)練下一個(gè)自編碼器。利用逐層貪婪學(xué)習(xí)算法完成SAE無監(jiān)督預(yù)訓(xùn)練。
2.3SAEP微調(diào)
無監(jiān)督預(yù)訓(xùn)練之后,如圖3所示構(gòu)建SAEP模型,微調(diào)策略為監(jiān)督學(xué)習(xí)機(jī)制。微調(diào)以圖3為網(wǎng)絡(luò)結(jié)構(gòu)模型,將所有層視為一個(gè)網(wǎng)絡(luò)整體,以SAE預(yù)訓(xùn)練結(jié)果為初始權(quán)值。利用式(5)、式(6)前向傳播計(jì)算各個(gè)層神經(jīng)元節(jié)點(diǎn)的激活函數(shù)值和整體代價(jià)函數(shù),再利用反向傳導(dǎo)算法計(jì)算式(7)-式(13)(此時(shí)式(8)的β=0,其他相應(yīng)的損失函數(shù)為J(w,b)),通過反復(fù)迭代梯度下降法更新權(quán)重參數(shù),以此使得SAEP的代價(jià)函數(shù)式(6)達(dá)到最小。
此次實(shí)驗(yàn)的軟件平臺(tái)為MATLABR2014a,編程實(shí)現(xiàn)算法。
模型的評(píng)價(jià)標(biāo)準(zhǔn)為式(14)、式(15)表示的均方偏差、平均偏差率。
(14)
(15)
實(shí)驗(yàn)數(shù)據(jù)來源于經(jīng)典數(shù)據(jù)庫(kù)TimeSeriesDataLibrary,來源于真實(shí)的金融市場(chǎng)(https://datamarket.com/data)。8個(gè)數(shù)據(jù)集為1979年12月31日—1998年12月31日J(rèn)PY/USD(日本/美國(guó))、French/US(法國(guó)/美國(guó))、German/US(德國(guó)/美國(guó))、Australia/US(澳大利亞/美國(guó))、British/US(英國(guó)/美國(guó))Canadian/US(加拿大/美國(guó))、Dutch/US(荷蘭/美國(guó))、Swiss/US(瑞士/美國(guó))匯率時(shí)間序列。
實(shí)驗(yàn)中,對(duì)所有實(shí)驗(yàn)數(shù)據(jù)均按式(16)進(jìn)行[0,1]上的歸一化預(yù)處理。然后采取單變量滑動(dòng)窗口機(jī)制訓(xùn)練數(shù)據(jù),樣本總數(shù)為4 774,隨機(jī)抽取80%作為訓(xùn)練樣本,20%作為測(cè)試樣本。本次實(shí)驗(yàn)在不同數(shù)據(jù)集模擬20次,并對(duì)測(cè)試集結(jié)果取平均值。
(16)
表1為在不同數(shù)據(jù)集下SAEP的預(yù)測(cè)效果。從表中可看出,模型的預(yù)測(cè)誤差均控制在較低的水平,其預(yù)測(cè)耗時(shí)均在1 s以內(nèi),能夠很好地滿足實(shí)時(shí)預(yù)測(cè)中對(duì)預(yù)測(cè)時(shí)間和預(yù)測(cè)精度的高要求。此外,在實(shí)驗(yàn)中算法在不同的數(shù)據(jù)集下均能夠保證100次以內(nèi)得到收斂,收斂較快的特點(diǎn)保證了模型在不同數(shù)據(jù)集的穩(wěn)定性。
表1 不同數(shù)據(jù)集的測(cè)試集預(yù)測(cè)效果
續(xù)表1
為了充分反應(yīng)模型的效果,以日/美測(cè)試數(shù)據(jù)集為例,對(duì)比目前在匯率時(shí)序預(yù)測(cè)中得到普遍應(yīng)用的BP神經(jīng)網(wǎng)絡(luò)和SVR。如表2所示。
表2 不同預(yù)測(cè)模型的測(cè)試預(yù)測(cè)效果
不難發(fā)現(xiàn),SAEP的預(yù)測(cè)效果優(yōu)于BP神經(jīng)網(wǎng)絡(luò)和SVR。BP神經(jīng)網(wǎng)絡(luò)被證明可以以任意精度逼近任意的函數(shù),但其隨機(jī)初始化時(shí)導(dǎo)致結(jié)果不夠穩(wěn)定,泛化能力表現(xiàn)欠佳。通過三種模型的對(duì)比可以看出,SAEP的表現(xiàn)能力更強(qiáng)。
棧式自編碼器預(yù)測(cè)模型改進(jìn)了神經(jīng)網(wǎng)絡(luò)隨機(jī)初始化的缺點(diǎn),有效地表達(dá)出序列數(shù)據(jù)間非線性及隨機(jī)性的特點(diǎn),自編碼器在神經(jīng)網(wǎng)絡(luò)的預(yù)訓(xùn)練對(duì)于提高預(yù)測(cè)效果具有重要意義;SAEP的微調(diào)作用以監(jiān)督機(jī)制通過反向傳導(dǎo)算法調(diào)整網(wǎng)絡(luò),這對(duì)于預(yù)測(cè)目標(biāo)起到了關(guān)鍵的作用,無監(jiān)督學(xué)習(xí)對(duì)于時(shí)間序列的實(shí)時(shí)預(yù)測(cè)具有重要的應(yīng)用研究和推廣價(jià)值。
但是反向傳導(dǎo)算法在網(wǎng)絡(luò)層次過深時(shí)會(huì)出現(xiàn)梯度擴(kuò)散現(xiàn)象,因此本文提出的棧式自編碼預(yù)測(cè)模型更適合于低配置計(jì)算資源中網(wǎng)絡(luò)層次不是特別深的預(yù)測(cè)中。
[1] 劉金培,林盛,郭濤,等.一種非線性時(shí)間序列預(yù)測(cè)模型及對(duì)原油價(jià)格的預(yù)測(cè)[J].管理科學(xué),2011,24(6):104-122.
[2]MartinLangkvist,LarsKarlsson,AmyLoutfi.Areviewofunsupervisedfeaturelearninganddeeplearningfortime-seriesmodeling[J].PatternRecognitionLetters,2014(42):11-24.
[3] 王知音,禹龍,田生偉,等.基于棧式自編碼的水體提取方法[J].計(jì)算機(jī)應(yīng)用,2015,35(9):2706-2709.
[4]BengioY,CourvilleA,VincentP.LearningdeeparchitectureforAI[J].FoundationsandTrendsinMachineLearning,2009,2(1):1-127.
[5] 鄧侃,歐智堅(jiān).深層神經(jīng)網(wǎng)絡(luò)語(yǔ)音識(shí)別自適應(yīng)方法研究[J].計(jì)算機(jī)應(yīng)用研究,2016,7:52-56.
[6] 周慧,周良,丁秋林.基于深度學(xué)習(xí)的疲勞狀態(tài)識(shí)別研究[J].計(jì)算機(jī)科學(xué),2015,42(3):191-200.
[7] 姚利濤,董育寧.無監(jiān)督的視頻業(yè)務(wù)特征分析與分類[J].應(yīng)用科學(xué)學(xué)報(bào),2015,33(2):117-128.
[8]SantoAAP,CostaJNCA.Computationalintelligenceapproachesandlinearmodelsincasestudiesofexchangerate[J].ExpertsSystemswithApplications,2007,33(4):816-823.
[9]EtteHarrisonEtuk.AseasonalARIMAmodelfordailyNigerianNAIRA-USDollarexchangerates[J].AsianJouralofEmpiricalResaerch,2(6):219-227.
[10]MichaelMckenzie,HeaherMitchell.GeneralizedasymmetricpowerARCHmodellingofexchangeratevolatility[J].AppliedFinancialEconomics,2002,12(8):555-564.
[11] 劉潭秋,謝赤.基于GRACH模型和ANN技術(shù)組合的匯率預(yù)測(cè)[J].科學(xué)技術(shù)與工程,2006,6(23):4690-4694.
[12]ChenAS,LeungM.RegressionNeurralNetworkforErrorCorrectioninForeignExchangeForecastingandTrading[J].Computers&OperationsResearch,2004,31(7):1049-1068.
[13]ChakradharaPanda,VNarasimhan.ForecastingExchangeRateBetterwithArtificialNeuralNetwork[J].JournalofPolicyModeling,2007,29(2):227-236.
[14]CaoLJ.Supportvectormachinesexpertsfortimeseriesforecasting[J].Neurocomputing,2003,51:321-339.
[15]HintonGE,OsinderoSYW.TheAfastlearningalgorithmfordeepbeliefnets[J].NeuralComput,2006,10(7):1527-1544.
EXCHANGE RATE TIME SERIES PREDICTION BASED ONSTACKED AUTOENCODER MODEL
Kou Xixi1He Xiping1,2,3*
1(ChongqingKeyLaboratoryofElectronicCommerceandSupplyChain,ChongqingTechnologyandBusinessUniversity,Chongqing400067,China)2(SchoolofComputerScienceandInformafionEngineering,ChongqingTechnologyandBusinessUniversity,Chongqing400067,China)3(ChongqingDetectionControlIntegratedSystemEngineeringLaboratory,ChongqingTechnologyandBusinessUniversity,Chongqing400067,China)
Aiming at the current problem of limited prediction accuracy of nonlinear financial time series in the shallow model, a novel prediction model of stacked autoencoder neural networks is proposed, consisting of stacked autoencoder model at the bottom and regression neurons at the top. First of all, the unsupervised learning mechanism of autoencoder is applied to identify and learn the features of time series, greedily learning the neural network layer by layer. Then the stacked autoencoder is extended to be the SAEP model with supervision mechanism, and the parameters learned by SAE (stacked autoencoder) are used to initialize the neural network. Finally, the weights are fine-tuned by supervised learning. The experimental design uses the exchange rate time series as the training and test samples, and the effectiveness of the proposed model in the application of exchange rate time series prediction is verified, compared with the more mature methods.
Time series Prediction Deep learning Stacked autoencoder Feature learning Deep neural networks
2016-03-02。重慶市教委科技
KJ1400612);重慶工商大學(xué)研究生院“創(chuàng)新型科研項(xiàng)目”(yjscxx2015-41-21)??苘畿纾T士生,主研領(lǐng)域:機(jī)器學(xué)習(xí)。何希平,教授。
TP391 TP183
A
10.3969/j.issn.1000-386x.2017.03.039