2023年商品量化專(zhuān)題報(bào)告 Transformer結(jié)構(gòu)和原理分析_第1頁(yè)
2023年商品量化專(zhuān)題報(bào)告 Transformer結(jié)構(gòu)和原理分析_第2頁(yè)
2023年商品量化專(zhuān)題報(bào)告 Transformer結(jié)構(gòu)和原理分析_第3頁(yè)
2023年商品量化專(zhuān)題報(bào)告 Transformer結(jié)構(gòu)和原理分析_第4頁(yè)
2023年商品量化專(zhuān)題報(bào)告 Transformer結(jié)構(gòu)和原理分析_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2023年商品量化專(zhuān)題報(bào)告Transformer結(jié)構(gòu)和原理分析一、引言在上篇報(bào)告中,我們討論了短期時(shí)序預(yù)測(cè)的方法,優(yōu)化后的預(yù)測(cè)模型在短期預(yù)測(cè)中取得較好的擬合效果。然而,在現(xiàn)實(shí)生活中,短期價(jià)格預(yù)測(cè)對(duì)策略幫助有限,需得對(duì)未來(lái)價(jià)格進(jìn)行長(zhǎng)周期預(yù)測(cè)才能更充分地對(duì)行情進(jìn)行判斷。在上篇報(bào)告中介紹的RNN系列網(wǎng)絡(luò)使用的是遞歸結(jié)構(gòu),因此只能進(jìn)行單向依次計(jì)算,限制了模型的并行能力。同時(shí),RNN系列網(wǎng)絡(luò)存在長(zhǎng)期依賴(lài)問(wèn)題,隨著時(shí)間推移,RNN會(huì)忘記較長(zhǎng)時(shí)間之前的信息,從而造成梯度消失和梯度爆炸現(xiàn)象。因此,RNN等網(wǎng)絡(luò)只能進(jìn)行短期預(yù)測(cè)。近幾年越來(lái)越多的學(xué)者嘗試將Transformer運(yùn)用在長(zhǎng)序列預(yù)測(cè)中,Transformer自2017年被提出后在NLP和CV領(lǐng)域取得巨大的成功,是第一個(gè)完全依賴(lài)自注意力機(jī)制來(lái)捕捉輸入與輸出信息關(guān)系的傳導(dǎo)模型。自注意力機(jī)制保留該時(shí)刻信息與先前所有時(shí)刻信息的直接連接,能夠緩解梯度消失和梯度爆炸的問(wèn)題,允許信息在更長(zhǎng)的序列上傳播。同時(shí),Transformer不是類(lèi)似RNN的順序結(jié)構(gòu)使用,具有更好的并行性,符合現(xiàn)有的GPU框架。然而,Transformer存在三大挑戰(zhàn):二次時(shí)間復(fù)雜度、高內(nèi)存使用量和encoderdecoder架構(gòu)局限性,使其不能直接適用于長(zhǎng)期時(shí)序預(yù)測(cè)問(wèn)題。本文羅列了3個(gè)近兩年改良比較成功的模型,它們針對(duì)Transformer存在的問(wèn)題提出了不同改進(jìn)手段,分別為1)Informer模型,來(lái)自發(fā)表于AAAI21的一篇最佳論文《Informer:BeyondEfficientTransformerforLongSequenceTimeSeriesForecasting》,提出了ProbSparse自注意機(jī)制、自注意蒸餾操作和生成式解碼器這三大改進(jìn),極大地降低了模型的計(jì)算復(fù)雜性;2)Autoformer模型,由清華大學(xué)軟件學(xué)院機(jī)器學(xué)習(xí)實(shí)驗(yàn)室在2021年提出,包含深度分解架構(gòu),和自相關(guān)機(jī)制兩大創(chuàng)新點(diǎn),能有效提升了長(zhǎng)序列模型的預(yù)測(cè)性能;3)FEDformer模型,由阿里達(dá)摩院在2022年提出,使用了低秩近似(low-rankapproximation)將計(jì)算復(fù)雜性降為線性,并進(jìn)一步提升了模型的預(yù)測(cè)精度。本篇為本系列的第二篇,分為三大部分,第一部分將介紹Transformer模型的要點(diǎn)和結(jié)構(gòu)原理;第二部分將介紹三個(gè)變形模型各自的結(jié)構(gòu)原理;第三部分將利用Transformer和三個(gè)變形模型對(duì)期貨價(jià)格分別進(jìn)行長(zhǎng)序列預(yù)測(cè)并對(duì)比預(yù)測(cè)結(jié)果。二、Transformer的結(jié)構(gòu)和原理Transformer模型和上篇報(bào)告中介紹的RNN系列模型差別較大,Transformer模型宏觀上使用了Encoder-Decoder框架,并且在Encoder(編碼器)和Decoder(解碼器)部分都使用了多頭注意力機(jī)制(Multi-HeadAttention),因此本部分先對(duì)注意力機(jī)制進(jìn)行介紹,再對(duì)Transformer結(jié)構(gòu)進(jìn)行詳細(xì)介紹。(一)注意力機(jī)制注意力機(jī)制最早由Treisman和Gelade提出,是一種模擬人腦注意力機(jī)制的模型,其核心目標(biāo)是通過(guò)計(jì)算注意力的概率分布來(lái)從眾多信息中突出某關(guān)鍵輸入信息對(duì)輸出的影響。目前大多數(shù)注意力機(jī)制均基于Encoder-Decoder框架,但需要注意的是注意力機(jī)制可以看作一種通用思想,本身是不依賴(lài)于特定框架的,而Encoder-Decoder框架可以看作是一種深度學(xué)習(xí)領(lǐng)域的研究模式,擁有廣泛的應(yīng)用場(chǎng)景,在NLP領(lǐng)域中常用的Encoder-Decoder抽象框架。這個(gè)框架中共含有三個(gè)部分分別為:Encoder(編碼器)、Decoder(解碼器)和語(yǔ)義表示C。其中,Encoder把一個(gè)變長(zhǎng)的輸入序列X(1,2,…,),通過(guò)非線性變換轉(zhuǎn)化為一個(gè)中間的語(yǔ)義表示C:=(1,2,…,);Decoder是根據(jù)輸入序列X的中間語(yǔ)義表示C和先前已經(jīng)生成的1,2,…,?1來(lái)預(yù)測(cè)并生成i時(shí)刻的輸出=(1,2,…,?1,),()和()均為非線性轉(zhuǎn)化函數(shù)。在這種傳統(tǒng)框架中,輸入信息被全部保存在語(yǔ)義表示C中,因此模型精度受輸入句子長(zhǎng)度的影響嚴(yán)重,從而在模型中引入了注意力機(jī)制。和抽象的Encoder-Decoder框架相比,引入注意力機(jī)制后改變最大的部分在于語(yǔ)義表示C,原先針對(duì)不同輸出值的語(yǔ)義表示C都是一致的,現(xiàn)在語(yǔ)義表示C會(huì)根據(jù)輸出值對(duì)輸入值做相應(yīng)的權(quán)重分配。在面對(duì)一個(gè)任務(wù)時(shí),可以把輸入內(nèi)容作為Source,生成目標(biāo)作為T(mén)arget,Source可以看成由多個(gè)對(duì)組成,而Target則由不同的Query組成,因此Attention機(jī)制的本質(zhì)就是計(jì)算每一個(gè)Query在Source中所對(duì)應(yīng)的值。1.自注意力機(jī)制(Self-Attention)梳理完Attention機(jī)制后,將目光轉(zhuǎn)向Transformer中使用的SelfAttention機(jī)制。和Attention機(jī)制相比Self-Attention機(jī)制最大的區(qū)別在于,Self-Attention機(jī)制中Target和Source是一致的,所以Self-Attention機(jī)制是Source內(nèi)部元素之間或者Target內(nèi)部元素之間發(fā)生的Attention機(jī)制。Self-Attention在計(jì)算過(guò)程中會(huì)直接將輸入信息中任意兩個(gè)信息直接聯(lián)系起來(lái),所以能有效緩解RNN系列算法自帶的長(zhǎng)期依賴(lài)問(wèn)題。SelfAttention的計(jì)算流程,把Query、Key和Value分別裝入Q、K和V三個(gè)矩陣中,再將三個(gè)矩陣帶入以下公式中(公式2)就可以求得Value的權(quán)重,這種計(jì)算方法被稱(chēng)為縮放點(diǎn)積注意力(ScaledDot-ProductAttention),其中,為Key的維度。(二)Transformer結(jié)構(gòu)詳解Transformer模型的整體結(jié)構(gòu),由Input、Encoder、Decoder和Output四部分組成,我們根據(jù)模型處理流程進(jìn)行一一理解。1.輸入編碼。輸入信息在進(jìn)入Encoder和Decoder部分前會(huì)經(jīng)歷兩種編碼轉(zhuǎn)換,分別為Input/OutputEmbedding和PositionalEncoding。由于是運(yùn)用在時(shí)序預(yù)測(cè)中,輸入信息大都為結(jié)構(gòu)數(shù)據(jù),因此在Embedding部分僅需對(duì)輸入信息進(jìn)行維度轉(zhuǎn)換。PositionEncoding部分是利用輸入信息的位置進(jìn)行編碼,因此可以提取出序列的順序特征,具體公式如下:(,2)=sin(100002)(公式4)(,2+1)=cos(100002)(公式5)然后,將兩種編碼轉(zhuǎn)換后的Tensor相加就可以帶入相應(yīng)的Decoder和Encoder部分。2.Encoder部分。在Vaswani發(fā)表的論文中,Encoder部分共含有6層,前一層的輸出會(huì)作為輸入傳入下一層中,最后一層Encoder的輸出會(huì)輸入到Decoder中。每一層Encoder中都含有兩小層,分別為:一層Multi-HeadAttention和一層FeedForward,每一小層后都帶有一個(gè)Add&Norm層。首先來(lái)看一下Add&Norm層的作用,add是指殘差連接,將上一層網(wǎng)絡(luò)的輸入和輸出相加,即F(x)+x,相當(dāng)于每層求導(dǎo)時(shí)都加上一個(gè)常數(shù)項(xiàng)1,能緩解梯度消失的問(wèn)題;Norm是指歸一化,需要注意的是Transformer中使用的歸一化方式都是LayerNormalization,即在每一個(gè)樣本上計(jì)算均值和方差來(lái)進(jìn)行歸一,公式如下:()=??√2++(公式6)然后是FeedForward層,由兩個(gè)線性變換和一個(gè)ReLU激活函數(shù)組成,公式如下:()=max(0,1+1)2+2(公式7)FFN層通過(guò)第一層線性變換,將每個(gè)位置的注意結(jié)果映射到一個(gè)較大維的特征空間,再利用ReLU激活函數(shù)進(jìn)行過(guò)濾,最后通過(guò)再次線性變化將輸出結(jié)果恢復(fù)到原始維度。Multi-HeadAttention已在上文中進(jìn)行介紹,此處就不詳說(shuō)了。3.Decoder部分。Decoder部分和Encoder部分一樣,都含有6層,每層包含三小層,分別為:一層MaskedMulti-HeadAttention、一層Multi-HeadAttention和一層FeedForward,Decoder部分的FeedForward層和Encoder是一樣的,主要看一下MaskedMulti-HeadAttention層和Multi-HeadAttention層。MaskedMulti-HeadAttention層在self-attention機(jī)制上使用了Mask掩蓋,來(lái)防止Decoder依據(jù)未來(lái)信息進(jìn)行預(yù)測(cè)。Multi-HeadAttention層和Encoder中的Multi-HeadAttention層相比,計(jì)算結(jié)構(gòu)是一樣的,但輸入Q、K和V來(lái)源不同,Q是來(lái)源于Decoder中上一層的輸出,K和V來(lái)源于Encoder的輸出。4.輸出部分。輸出部分比較簡(jiǎn)單,由一層線性轉(zhuǎn)換和一層SoftMax層組成,Decoder的輸出向量經(jīng)過(guò)線性轉(zhuǎn)換改變維度,再進(jìn)行SoftMax計(jì)算就能得到最終的概率矩陣。三、Informer的結(jié)構(gòu)和原理在引言中有提到Transformer模型的三大挑戰(zhàn):二次時(shí)間復(fù)雜度、高內(nèi)存使用量和Encoder-Decoder架構(gòu)局限性,這三大挑戰(zhàn)使Transformer模型不能被直接運(yùn)用在長(zhǎng)序列預(yù)測(cè)中,需要對(duì)算法和結(jié)構(gòu)進(jìn)行調(diào)整,Informer模型就是改良較為成功的一種模型,Informer模型的結(jié)構(gòu),橘色、綠色和藍(lán)色標(biāo)志標(biāo)出來(lái)的部分都是Informer主要改變的地方。針對(duì)平方級(jí)的計(jì)算復(fù)雜度這一大挑戰(zhàn),Informer提出了ProbSparseSelf-Attention機(jī)制,也就是橘色圈出的部分,通過(guò)篩選出重要的Query來(lái)降低計(jì)算復(fù)雜度?,F(xiàn)在,我們來(lái)看一下ProbSparseSelf-Attention機(jī)制的細(xì)節(jié)。Tsai在2019年提出,第i個(gè)Query的Attention公式可以從概率的角度改寫(xiě)成如下公式8形式:(,,)=∑(,)∑(,?)?=(|)[](公式8)(|)=(,)∑(,?)?(公式9)(|)=1(公式10)其中,(|)也就是公式9,定義了一個(gè)概率的形式,即在給定第i個(gè)Query條件下key的分布。公式10是公式9的特殊形式,代表了均勻分布,若此Query分布接近均勻分布則說(shuō)明此Query是“Lazy”的,反之說(shuō)明Query是“Active”的。“Lazy”的Query對(duì)自注意力貢獻(xiàn)較少,因此通過(guò)篩去“Lazy”的Query來(lái)降低Transformer模型的計(jì)算復(fù)雜度。為了解決第二大挑戰(zhàn)高內(nèi)存使用量的問(wèn)題,Informer在Encoder的每層Multi-headProbSparseSelf-Attention層后都加入了一層自注意力蒸餾(Self-AttentionDistilling)的操作,來(lái)對(duì)上一層的輸出結(jié)果進(jìn)行降維。Distilling的計(jì)算過(guò)程,先利用卷積層對(duì)輸入信息進(jìn)行特征提取,再對(duì)提取后的信息進(jìn)行一個(gè)ELU激活過(guò)濾,最后通過(guò)最大池化層進(jìn)行降維,以此來(lái)增強(qiáng)特征信息的魯棒性。最后一大挑戰(zhàn)就是Encoder-Decoder結(jié)構(gòu)自帶的局限性,Transformer模型中的Decoder部分采用的是step-by-step式的動(dòng)態(tài)解碼,因此解碼速度很慢,Informer提出了GenerativeStyleDecoder。Informer將Starttoken技術(shù)擴(kuò)展到生成式的方法中,不再像以往選擇一個(gè)額定的標(biāo)志作為標(biāo)記,而是從輸入序列中抽取一個(gè)相對(duì)更短的長(zhǎng)序列作為輸入,因此可以一步得出同樣長(zhǎng)度的輸出結(jié)果,具體計(jì)算流程見(jiàn)公式16。=(,0)∈?(+)×(公式16)以上就是Informer模型對(duì)Transformer模型提出的三大改造,其他部分還是保持了Transformer模型原本的設(shè)置。這三大改造將模型的時(shí)間復(fù)雜度從(2)降到(()),相關(guān)研究也證明Informer模型預(yù)測(cè)結(jié)果的擬合程度遠(yuǎn)高于Transformer模型。四、Autoformer的結(jié)構(gòu)和原理Informer通過(guò)使用稀疏形式的注意力機(jī)制來(lái)緩解二次復(fù)雜度的問(wèn)題,雖然在解決復(fù)雜度的問(wèn)題上起到了效果,但也引起了信息未充分利用的問(wèn)題,因此Autoformer模型被提出,針對(duì)Transformer的瓶頸進(jìn)行了新一輪改良,Autoformer模型主要含有兩大革新點(diǎn):深度分解架構(gòu)和自相關(guān)機(jī)制。深度分解架構(gòu)是Autoformer模型的整體架構(gòu),包含三大部分:序列分解單元、自相關(guān)機(jī)制以及相應(yīng)的Encoder-Decoder結(jié)構(gòu)。以往的序列分解方法包括上篇報(bào)告中介紹的EMD分解都是先對(duì)過(guò)去序列進(jìn)行分解,再分別進(jìn)行預(yù)測(cè),這樣會(huì)使預(yù)測(cè)結(jié)果受限于分解效果,且忽視未來(lái)各分解序列的相互作用。為了克服這個(gè)缺陷,Autoformer將序列分解融合到整體模型中,遵循傳統(tǒng)的分解手段將序列分解為季節(jié)項(xiàng)(Seasonal)和趨勢(shì)項(xiàng)(Trendcyclical),從而實(shí)現(xiàn)漸進(jìn)式分解。序列分解單元(SeriesDecompBlock)的具體分解計(jì)算流程,如公式所示:=(())(公式17)=?(公式18),=()(公式19)。以上公式中代表了長(zhǎng)度為L(zhǎng)的輸入序列,和分別代表了經(jīng)均線分解后的季節(jié)項(xiàng)和趨勢(shì)項(xiàng),公式19就是SeriesDecompBlock的綜合表達(dá)式。了解了分解手段后,來(lái)細(xì)看一下模型結(jié)構(gòu)。首先是模型輸入,Encoder的輸入就是簡(jiǎn)單的歷史序列??,為過(guò)去的時(shí)間長(zhǎng)度;Decoder的輸入分為季節(jié)項(xiàng)(?(2+)×)和趨勢(shì)項(xiàng)(?(2+)×)兩部分,需要注意的是前2部分是由分解得到的,后面O長(zhǎng)度部分分別由0和均值補(bǔ)齊。具體計(jì)算公式如下:,=(2:)(公式20)=(,0)(公式21)=(,)(公式22)。然后是Encoder和Decoder的結(jié)構(gòu),在Encoder部分中,通過(guò)層層分解,逐步消除趨勢(shì)項(xiàng),只保留季節(jié)項(xiàng),每一大層主要由一層自相關(guān)機(jī)制和一層Feedforward層組成。?,1,_=(?(??1)+??1)(公式23)?,2,_=((?,1)+?,1)(公式24)?=(??1)(公式25)若Encoder部分含有N大層,那第?層的輸出可以歸納寫(xiě)成公式25的形式。在Decoder中,因?yàn)樾蛄惺潜环譃榧竟?jié)項(xiàng)和趨勢(shì)項(xiàng)兩部分分別解碼,所以采用雙路處理模式。在上層對(duì)季節(jié)項(xiàng)的解碼中,先通過(guò)自相關(guān)機(jī)制提取出未來(lái)季節(jié)波動(dòng)中的時(shí)間依賴(lài)特性,再在自相關(guān)機(jī)制中融合Encoder部分提取出的歷史依賴(lài)關(guān)系,最后通過(guò)一層FeedForward層輸出結(jié)果。而下層對(duì)趨勢(shì)項(xiàng)的解碼則采用了加權(quán)法,將上分支每個(gè)子層的輸出進(jìn)行加合。具體計(jì)算公式如下:?,1,?,1=((??1)+??1)(公式26)?,2,?,2=((?,1,)+?,1)(公式27)?,3,?,3=((?,2)+?,2)(公式28)?=??1+?,1?,1+?,2?,2+?,3?,3(公式29)?=?,3(公式30)假設(shè)Decoder部分共有M層,那模型最終的輸出結(jié)果為+。這樣的一個(gè)框架就是Autoformer模型的深度分解框架,剛剛有提到自相關(guān)機(jī)制。五、FEDformer的結(jié)構(gòu)和原理FEDformer模型是在2022年由阿里達(dá)摩院提出的,之前提出的Transformer變形雖然都已經(jīng)在初始Transformer的基礎(chǔ)上實(shí)現(xiàn)了優(yōu)化,但仍難以捕捉時(shí)序的總體特征和分布,因此FEDformer提出了兩大革新:1.提出頻率增強(qiáng)分解的Transformer結(jié)構(gòu),融入季節(jié)趨勢(shì)分解手段,來(lái)更好地捕捉時(shí)序全局特性;2.在Transformer結(jié)構(gòu)中提出了傅里葉增強(qiáng)模塊和小波增強(qiáng)模塊,來(lái)替代原本的自注意力機(jī)制。FEDformer的整體結(jié)構(gòu),主要包括四大子模塊:頻域增強(qiáng)模塊FEB(FrequencyEnhancedBlock)、分解模塊(MOEDecomp)、頻域增強(qiáng)注意力模塊FEA(FrequencyEnhancedAttention)和前向傳播模塊(FeedForward)。FEDformer的整體架構(gòu)和Autoformer非常相似,但除了FeedForward塊,其他子模塊的具體設(shè)計(jì)均不一致。同時(shí),在FEB和FEA模塊中都分別使用了離散傅里葉變換(DFT)和離散小波變換(DWT)兩種不同手段,從而存在兩種不同版本,因此我們分傅里葉增強(qiáng)結(jié)構(gòu)和小波增強(qiáng)結(jié)構(gòu)兩部分進(jìn)行講解。(一)傅里葉增強(qiáng)結(jié)構(gòu)一般信號(hào)在頻域上具有稀疏性,因此使用傅里葉變換將信號(hào)從時(shí)域轉(zhuǎn)換到頻域,在頻域中只需保留少部分點(diǎn)位,就能近似還原出時(shí)域信號(hào)。此結(jié)構(gòu)使用了離散傅里葉變換(DFT),DFT的時(shí)間復(fù)雜度為(2),此結(jié)構(gòu)通過(guò)隨機(jī)選擇一個(gè)傅里葉變換的子集極大地降低了輸入向量的長(zhǎng)度從而降低了計(jì)算復(fù)雜度。我們先來(lái)看一下使用傅里葉變換的頻率增強(qiáng)模塊(FEB-f),該模塊在結(jié)構(gòu)中的Encoder和Decoder部分均有涉及。輸入信息x先通過(guò)一次線性變化轉(zhuǎn)換成q,再對(duì)q進(jìn)行傅里葉變換得到Q,在Q中隨機(jī)挑選出M個(gè)子序列,再將挑選出的子序列與R(一個(gè)隨機(jī)初始化的參數(shù)化內(nèi)核)進(jìn)行點(diǎn)乘得到Y(jié),對(duì)Y進(jìn)行填充(零的部分填充為?×)后再進(jìn)行逆傅里葉變換就可以得出最終的模塊輸出。然后是使用傅里葉變換的頻率增強(qiáng)注意力模塊。首先,對(duì)由Queries、Keys和Values得出的矩陣q、k和v進(jìn)行傅里葉變換,挑選出M個(gè)子序列就得出了相應(yīng)的?、?和?,將?和?相乘并用激活函數(shù)進(jìn)行過(guò)濾,此處激活函數(shù)可以使用SoftMax函數(shù)或者Tanh函數(shù),對(duì)過(guò)濾后的值和?相乘并對(duì)結(jié)果進(jìn)行填充(零的部分填充為?×),最后進(jìn)行一次逆傅里葉變換就可以得到最終輸出結(jié)果。(二)小波變換增強(qiáng)結(jié)構(gòu)小波變換是在傅里葉變換的基礎(chǔ)上發(fā)展而來(lái)的,傅里葉變化把信號(hào)從時(shí)域轉(zhuǎn)換到頻率能夠更好地捕捉全局信息,非常適合轉(zhuǎn)換平穩(wěn)序列。然而傅里葉變換只包含頻率分析,沒(méi)有時(shí)域分析,因此無(wú)法獲取各頻率出現(xiàn)的時(shí)間信息,無(wú)法捕捉局部特征,在面對(duì)突變和非平穩(wěn)信號(hào)時(shí)效果就很差,由此提出了小波變換的概念,小波變換能夠提供一個(gè)隨頻率改變的“時(shí)間-頻率”窗口,能考慮到時(shí)域和頻率兩方面,因此緩解了傅里葉變換的瓶頸。對(duì)于給定的(),n尺度下多小波系數(shù)可以被分別定義為=[?,??]=0?1,=[?,?]=0?1,其中?為分段多項(xiàng)式小波的標(biāo)準(zhǔn)正交基。FEB-w不同于FEB-f的遞歸機(jī)制,輸入信息會(huì)被循環(huán)分解成3個(gè)部分,獨(dú)立地進(jìn)行運(yùn)作。在小波分解部分中,使用了固定勒讓德小波分解基分解矩陣。承接的三個(gè)FEB-f模塊被分別用來(lái)處理產(chǎn)生的高頻部分、低頻部分和小波分解后遺留下來(lái)的部分。對(duì)于每一個(gè)周期L,它會(huì)產(chǎn)生一個(gè)處理過(guò)的高頻張量(),一個(gè)處理過(guò)的低頻張量()和原始低頻張量(+1)。這是一種階梯向下的方法,分解階段通過(guò)1/2因子對(duì)信號(hào)進(jìn)行抽取,運(yùn)行最多L個(gè)循環(huán),其中<2()對(duì)于大小為M的給定輸入序列。通常,L被設(shè)置成一個(gè)固定參數(shù),在不同分解周期L中,這三個(gè)FEB-f模塊是共享的。而在小波重建部分中,會(huì)同樣遞歸式的構(gòu)建輸出張量。在每一個(gè)循環(huán)L中,我們合并分解部分得出(),()和(+1)生成()。在每一個(gè)循環(huán)中,信號(hào)張量的長(zhǎng)度維度會(huì)被提高兩倍。FEA-w和FEB-w一樣都包含了分解和重構(gòu)階段,F(xiàn)EA-w和FEB-w的重構(gòu)階段是一致的,唯一的區(qū)別在于分解階段。使用相同的分解矩陣對(duì)q,k,v信號(hào)分別進(jìn)行分解,同時(shí),q,k,v也使用了相同的處理模塊。上文中提及的FEB-w模塊包含了三個(gè)用于信號(hào)處理的FEB-f模塊,此處的FEB-f模塊可以看作是一種自我注意力機(jī)制的替代,同時(shí)在FEA-w中使用了三個(gè)FEA-f模塊。此外,另加了一個(gè)FEA-f模塊來(lái)處理剩余最粗的q(L),k(L),v(L)信號(hào)。理解完FEB和FEA模塊后,我們來(lái)看一下另一個(gè)改變較大的模塊:分解模塊(MOEDecomp)。因?yàn)橥ǔS^察到的復(fù)雜周期部分是與真實(shí)世界中的趨勢(shì)相融合的,所以憑借固定窗口的平均池化來(lái)提取趨勢(shì)會(huì)非常困難。本模型為克服這個(gè)問(wèn)題,提出了混合專(zhuān)家分解模塊,它包含一組大小不同的平均過(guò)濾器來(lái)從輸入信號(hào)中提取多個(gè)趨勢(shì)成分和權(quán)重,并將它們組成最終趨勢(shì)。FEDformer的主要結(jié)構(gòu)就是這些,它和Autoformer模型最大的區(qū)別點(diǎn)在于:Autoformer是將序列分解為多個(gè)時(shí)域子序列進(jìn)行特征提取,而FEDformer是采用頻率變換將序列分解為多個(gè)頻域模態(tài)來(lái)提取特征,所有的頻率特征都是從整個(gè)序列中得出,因此具備更好的全局特性。本文接下來(lái)將在CU、IF和T三個(gè)品種的主力合約上測(cè)試Transformer、Informer、Autoformer和FEDformer四大類(lèi)模型的預(yù)測(cè)效果。六、預(yù)測(cè)結(jié)果分析(一)數(shù)據(jù)選擇和處理本文選取滬銅期貨、滬深300股指期貨和十年期國(guó)債期貨主力合約為測(cè)試標(biāo)的??紤]到上市時(shí)間,滬銅期貨和滬深300股指期貨數(shù)據(jù)集選用的時(shí)間范圍均為2011年1月1日至2022年12月31日,每個(gè)合約共2917行數(shù)據(jù),十年期國(guó)債期貨數(shù)據(jù)集選用時(shí)間為2015年3月20日至2022年12月31日,共1898行數(shù)據(jù),將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集,其中切割比率為0.8:0.1:0.1。所有測(cè)試均使用日頻數(shù)據(jù),選取各主力合約的開(kāi)盤(pán)價(jià)、最高價(jià)、最低價(jià)、成交量和收盤(pán)價(jià)作為模型的輸入特征。(二)預(yù)測(cè)結(jié)果評(píng)價(jià)指標(biāo)因?yàn)楸敬螠y(cè)試結(jié)果涉及多維,因此選用平均絕對(duì)誤差(MAE)和均方誤差(MSE)兩種誤差評(píng)價(jià)指標(biāo)對(duì)模型預(yù)測(cè)性進(jìn)行評(píng)估,兩種指標(biāo)的計(jì)算公式如下:=1∑|(??)|(公式55)=1=1∑(??)2=1(公式56)其中,為真實(shí)值,?為預(yù)測(cè)值,?為真實(shí)值的平均值,m為序列長(zhǎng)度。MSE和MAE用來(lái)衡量真實(shí)值和預(yù)測(cè)值間的偏差,值越小表明預(yù)測(cè)誤差越小。(三)模型參數(shù)設(shè)置為探究參數(shù)設(shè)置對(duì)測(cè)試結(jié)果的影響,分別使用了過(guò)去20/40/60個(gè)交易日的日頻數(shù)據(jù)對(duì)未來(lái)5/10/20/40/60個(gè)交易日的收盤(pán)價(jià)進(jìn)行預(yù)測(cè)。參考相關(guān)論文,Encoder和Decoder部分網(wǎng)絡(luò)均設(shè)置為兩層,多頭機(jī)制部分多頭設(shè)置為8,Batch-size設(shè)置為32,迭代次數(shù)設(shè)置為20,并使用早停機(jī)制,當(dāng)連續(xù)5次迭代輪次的損失值出現(xiàn)增加時(shí)停止訓(xùn)練。因?yàn)槭菍?duì)時(shí)序預(yù)測(cè)精度進(jìn)行判斷,因此選取均方誤差(MSE)作為損失函數(shù),采用Adam作為優(yōu)化器進(jìn)行訓(xùn)練,超參數(shù)使用默認(rèn)參數(shù),所有預(yù)測(cè)結(jié)果為隨機(jī)訓(xùn)練三次結(jié)果的均值。最后,本文是基于python語(yǔ)言環(huán)境,以PyTorch作為深度學(xué)習(xí)框架進(jìn)行訓(xùn)練和預(yù)測(cè)。(四)預(yù)測(cè)結(jié)果展示和分析首先,將輸入長(zhǎng)度設(shè)置為20利用各個(gè)模型對(duì)CU、IF和T三個(gè)品種的主力合約收盤(pán)價(jià)分別進(jìn)行預(yù)測(cè)。我們有以下幾點(diǎn)發(fā)現(xiàn),第一:幾乎在所有情況下,F(xiàn)EDformer的預(yù)測(cè)精度都是顯著優(yōu)于其他三個(gè)模型的,當(dāng)輸出長(zhǎng)度較短時(shí)使用小波增強(qiáng)模塊的FEDformer模型的預(yù)測(cè)精度高于使用傅里葉增強(qiáng)模塊的FEDformer模型,反之亦然。因此,我們認(rèn)為使用傅里葉變換將時(shí)序從時(shí)域轉(zhuǎn)換到頻域進(jìn)行判斷能更好地消除噪音,捕捉時(shí)序的全局特征,提高模型預(yù)測(cè)擬合精度。同時(shí),在對(duì)短序列進(jìn)行預(yù)測(cè)時(shí),通過(guò)小波增強(qiáng)模塊捕捉價(jià)格位置對(duì)時(shí)序變化的影響能再次強(qiáng)化模型的預(yù)測(cè)能力。第二:存在一次Transformer的預(yù)測(cè)精度優(yōu)于其他模型的情況。我們發(fā)現(xiàn)在預(yù)測(cè)較短長(zhǎng)度的序列時(shí),Transformer模型的預(yù)測(cè)結(jié)果經(jīng)常優(yōu)于Autoformer和Informer模型。此外,由于本次測(cè)試是隨機(jī)訓(xùn)練三次,因此發(fā)現(xiàn)除FEDformer外其他三個(gè)模型的預(yù)測(cè)結(jié)果都非常不穩(wěn)定,三次預(yù)測(cè)的結(jié)果差別較大。因此,我們認(rèn)為僅憑時(shí)域關(guān)系對(duì)價(jià)格進(jìn)行預(yù)測(cè)存在極大偶然性,雖然可能出現(xiàn)某次預(yù)測(cè)精度較優(yōu)的情況,但預(yù)測(cè)能力不穩(wěn)定,普適性較差。同時(shí),Transformer模型的計(jì)算復(fù)雜度雖然高,但在預(yù)測(cè)較短價(jià)格序列時(shí),這一缺點(diǎn)并不明顯,并不會(huì)對(duì)預(yù)測(cè)精度造成過(guò)多負(fù)面影響。第三:預(yù)測(cè)精度會(huì)隨著預(yù)測(cè)序列長(zhǎng)度逐步削弱,尤其在預(yù)測(cè)長(zhǎng)度高于輸入長(zhǎng)度后,精度會(huì)發(fā)生更明顯滑落,因此我們嘗試通過(guò)擴(kuò)大輸入序列的長(zhǎng)度來(lái)再次優(yōu)化模型的預(yù)測(cè)能力。經(jīng)過(guò)測(cè)試發(fā)現(xiàn),預(yù)測(cè)結(jié)果并未與預(yù)期一致,輸入長(zhǎng)度擴(kuò)大后,不管是預(yù)測(cè)多久的序列,不同模型的預(yù)測(cè)精度都被削弱了。同時(shí),除FEDformer外的三個(gè)模型在對(duì)短序列進(jìn)行預(yù)測(cè)時(shí),這種削弱影響會(huì)更為明顯。我們仔細(xì)考慮后得出以下可能性分析,首先價(jià)格序列中噪音成分通常較大,輸入序列越長(zhǎng)噪音影響越大。其次,Auto

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論