免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

深度學(xué)習(xí)在股票市場的應(yīng)用

 dinghj 2018-11-23

作者:chen_h


本文的代碼請點擊這里。Talk is cheap, show me the code.

在過去的幾個月中,我對深度學(xué)習(xí)非常著迷,特別是它在自然語言處理中的應(yīng)用。我的大部分職業(yè)生涯都是在金融領(lǐng)域度過的,特別是在算法交易和交易數(shù)據(jù)替換方面。

我寫這篇文章的想法直接來自我的工作經(jīng)驗。我作為一名“深度學(xué)習(xí)”的愛好者時,對于深度學(xué)習(xí)我沒有很深入的了解。但是我希望我的理解可以表達到位,并且可以幫助到你。

為什么股票預(yù)測與 NLP 存在關(guān)聯(lián)性?

在很多的 NLP 問題中,我們最終會把序列編碼成一個固定大小的表示,然后將這個編碼再解碼成另一個序列。例如,我們可能會在文本中進行實體標(biāo)記,從英文翻譯成法語,或?qū)⒁纛l轉(zhuǎn)換成文本。在這些領(lǐng)域都出現(xiàn)了大量的工作,并且很多成果都取得了最先進的表現(xiàn)。

在我看來,NLP 與金融數(shù)據(jù)分析之間的最大不同在于,語言有一定的結(jié)構(gòu)性,雖然這個結(jié)構(gòu)性比較模糊難懂。另一方面,金融市場數(shù)據(jù)可能是沒有任何結(jié)構(gòu)可以學(xué)習(xí)的。

在這個文章中,我們假設(shè)金融市場數(shù)據(jù)是存在結(jié)構(gòu)性的,當(dāng)然這個假設(shè)可能是不成立的,我們這個文章可能也會直接推翻這個假設(shè)。我們按照 NLP 的語義編碼模型來類比這個市場結(jié)構(gòu),如果你覺得這個想法沒有意義,那么請閱讀下去,我相信你會覺得會有意義的。

詞向量

詞向量的模型有很多的,Richard Socher 的講座是一個非常好的教程。簡而言之,我們可以用語言模型來描述所有的單詞,并且在坐標(biāo)圖中進行顯示,并且利用幾何圖形來捕捉單詞之間的關(guān)聯(lián)性。有一個經(jīng)典的例子是 “King - man + woman = Queen” ,或者類似別的例子。

這里寫圖片描述

詞嵌入是非??岬囊粋€應(yīng)用,因為我們可以利用一個很濃縮的方式來表示一個詞信息。比較傳統(tǒng)的詞嵌入方法是構(gòu)建一個包含所有單詞的詞表,如果當(dāng)前詞是查詢詞,那么該位置設(shè)置為 1 ,其余設(shè)置為 0 。但是這不是一個有效的方法,而且也沒有任何詞關(guān)聯(lián)意義。但是通過詞嵌入,我們用一個固定維度的向量來表示一個單詞,然后利用更高維度的幾何特性來尋找詞之間的關(guān)聯(lián)性。

下圖展示了一個例子。詞向量的模型是需要一個大型的語料庫進行訓(xùn)練。經(jīng)過幾天的高密度訓(xùn)練,每個詞都會得到一個高維度的詞向量。這個“空間”向量會有類似于“距離”的概念,所以我們可以計算哪些詞是互相接近的。該方法的作者舉了一個例子(就是下圖),用來計算跟 Frog 距離近的詞。

這里寫圖片描述

但是除了詞,我們對別的事物也可以進行高維度的編碼,比如我們接下來要介紹的金融市場數(shù)據(jù)。

Market2Vec

第一個我聽說的詞嵌入算法是 word2vec 。我想在金融市場數(shù)據(jù)上面得到相同的效果,雖然我會使用一些比較不同于 word2vec 的算法。我的輸入數(shù)據(jù)是 csv 格式的。第一類表示日期,另外的 4*1000 列對應(yīng)于 1000 只股票的高低開倉價。那么,我們的輸入向量就是 4000 維度的,這個維度太大了。所以,我們第一件事就是把這個高維度的向量壓縮到一個低維度的向量,比如說 300 維度(因為我們喜歡這個電影 ^_^)。

The face you make when you give the extra effort to embedd 4000 dimensions into 300

如果你覺得把一個 4000 維度的向量壓縮到 300 維度是一件很難的事,那么你就大錯特錯了。其實這很簡單,我們只需要乘以一個矩陣,矩陣就相當(dāng)于一個巨大的 excel 表格,每個單元格中都會有一個數(shù)字,并且不存在任何的格式。想象一下,我們有一個 4000 列和 300 行的 excel 表格,我們把這個表格與上面的 4000 維度向量進行相乘,那么我們就可以得到一個 300 維度的向量。這個就是最基礎(chǔ)的線性代數(shù)知識,你肯定能明白。

那么,現(xiàn)在的難點就是如何去設(shè)置這個巨大的表格矩陣,“深度學(xué)習(xí)” 就是用在這個矩陣的初始化和更新上面。最終,這個電子表格矩陣將會是一個不錯的轉(zhuǎn)移矩陣,可以將我們的 4000 維度向量轉(zhuǎn)換成一個簡潔的 300 維度向量。

接下來,我們要做一些比較神奇的事,那就是激活函數(shù)。我們要給每一個值加上一個激活函數(shù)。將這個激活函數(shù)添加到每一個值上面,將每個值的大小歸到 0 到 1 之間。那么,為什么這樣做可以使得我們的向量更加特別,可以學(xué)習(xí)和理解更加復(fù)雜的事。你可以點擊這里進行學(xué)習(xí)

那么接下來我們需要處理的重要的事就是如何去找到這個轉(zhuǎn)移矩陣,使得我們可以損失更少的信息,將高維的股票向量轉(zhuǎn)換成低維的股票向量。我們希望能利用這個向量來挖掘各個股票之間的相關(guān)性,也許我們會發(fā)現(xiàn)當(dāng)某個行業(yè)下滑時,另一個行業(yè)的股票也會下滑。當(dāng)然,我們可能也會發(fā)現(xiàn)一些別的特征,我認(rèn)為這對我們將來的研究會非常有用。

初步接觸神經(jīng)網(wǎng)絡(luò)

讓我們先把股票向量放在一邊,來談?wù)務(wù)Z言模型。Andrej Karpathy 寫了一篇很流行的文章 The Unreasonable effectiveness of Recurrent Neural Networks對這篇文章可以簡單總結(jié)如下:

  1. 如果我們學(xué)習(xí)莎士比亞的作品,然后一個字一個字的進行學(xué)習(xí)。那么我們可以深度學(xué)習(xí)來學(xué)習(xí)一種語言模型。
  2. 在這種情況下,語言模型是一個魔術(shù)盒。你可以提供一句話的前面幾個字符,模型就會告訴你下一個字符是什么。
  3. 如果我們把語言模型的預(yù)測結(jié)果重新輸入到語言模型,那么我們模型將永遠運行下去。

然后這個模型會產(chǎn)生一大堆看起來像莎士比亞風(fēng)格的文字。然后,我們也可以將這個思想用在 Linux 源碼上面,然后程序來產(chǎn)生代碼。或者,我們可以用在幾何代數(shù)課本上面,讓程序來產(chǎn)生內(nèi)容。

這個魔術(shù)盒的實現(xiàn)機制我們會在后續(xù)進行介紹,但是讓我們先來假想一下,Karpathy 是利用前面的一些字符來預(yù)測下一個字符,那么我們是否可以根據(jù)之前的市場向量,來預(yù)測下一個市場表現(xiàn)、市場向量或者別的東西,而這個預(yù)測模型就是這個魔術(shù)盒。我們還沒有決定我們想要預(yù)測的是什么,但是沒有關(guān)系,因為我們不會將我們的輸出反饋到我們的輸入中。

更加深入分析

我想指出,從現(xiàn)在開始我們要開始深入的去分析深度學(xué)習(xí)。到目前為止,我們只是使用單層網(wǎng)絡(luò)進行學(xué)習(xí),也就是只是使用我們上面設(shè)計的按個 4000 * 300 的轉(zhuǎn)移矩陣。接下來,我們會添加更多的層次,來設(shè)計一個深層的神經(jīng)網(wǎng)絡(luò)來設(shè)計這個市場向量,這就是深度學(xué)習(xí)。

所以,Karpathy 向我們介紹了一些 Linux 例子的輸出,下面的代碼就是魔術(shù)盒的內(nèi)容:

static void action_new_function(struct s_stat_info *wb)
{
  unsigned long flags;
  int lel_idx_bit = e->edd, *sys & ~((unsigned long) *FIRST_COMPAT);
  buf[0] = 0xFFFFFFFF & (bit << 4);
  min(inc, slist->bytes);
  printk(KERN_WARNING "Memory allocated %02x/%02x, "
    "original MLL instead\n"),
    min(min(multi_run - s->len, max) * num_data_in),
    frame_pos, sz + first_seg);
  div_u64_w(val, inb_p);
  spin_unlock(&disk->queue_lock);
  mutex_unlock(&s->sock->mutex);
  mutex_unlock(&func->mutex);
  return disassemble(info->pending_bh);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

請注意,該魔術(shù)盒可以知道如何去打開和關(guān)閉括號,并且能遵守程序的縮進約定,也就是函數(shù)代碼的正確縮進,多行 printk 語句也具有正確的內(nèi)部縮進。這也就意味著這個魔術(shù)盒可以理解代碼的遠程依賴關(guān)系,即魔術(shù)盒可以聯(lián)系到前面的代碼進行分析推敲。當(dāng)它預(yù)測在 print 語句中時,它會知道它在一個 print 語句中,并且會記住它是在一個函數(shù)中(或者至少記住是在另一個縮進范圍)中。太好了,這就很容易理解,具有捕捉細節(jié)和記住長期依賴關(guān)系的算法是非常有用的,因為我們也是希望能在市場上找到長期的依賴關(guān)系

深入探索魔術(shù)盒

那么這個神奇的魔術(shù)盒里面有什么呢?它是一種被稱為 LSTM 的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)。RNN 是一種深度學(xué)習(xí)算法,它擅長的是對序列進行操作(如字符序列)。在每一步,它對會對下一個字符進行預(yù)測,并且使用一個矩陣記性表示,就像我們之前看到的那樣。因為 RNN 有一些內(nèi)部的記憶,所以它可以記住一些以前看到的東西。它會使用這個內(nèi)部記憶來決定下一次輸入中應(yīng)該如何操作。使用該內(nèi)存記憶,RNN 可以記住它在一定范圍內(nèi)的內(nèi)容,這就是我們?yōu)槭裁纯梢詫斎胛谋具M行預(yù)測處理。
這里寫圖片描述


RNN 有一個很好的變體稱為 LSTM,LSTM 巧妙的設(shè)計了 RNN 內(nèi)部的記憶單元,這個單元可以做以下事:

  1. 可以選擇性的記住一些東西;
  2. 可以選擇性的去忘記一些東西;
  3. 選擇應(yīng)該輸出多少記憶內(nèi)存;

所以,當(dāng)一個 LSTM 看到一個 “{” ,并且對自己說“這個非常重要,我應(yīng)該把它記住” 。而當(dāng)它這樣做時,它基本上就記住了這是一個嵌套的范圍。一旦看到相應(yīng)的 “}” ,它就會決定忘記原來的大括號,因此忘記它在一個嵌套的范圍內(nèi)。

我們可以將幾個 LSTM 堆疊在一起,這樣 LSTM 可以學(xué)習(xí)到更多的抽象概念。現(xiàn)在,前一個 LSTM 的輸出變成了下一個 LSTM 的輸入,每個 LSTM 會學(xué)習(xí)到更加抽象的數(shù)據(jù)。在上面的例子中(這個只是說明性的猜測解釋),第一層的 LSTM 可能會學(xué)習(xí)由空格分割的字符,下一層可能會學(xué)習(xí)像(static void action_new_function)這樣的字符類型,下一層可能會學(xué)習(xí)函數(shù)的概念以及參數(shù)等等。雖然 Karpathy 在博客中已經(jīng)有非常好的說明例子了,但是要清楚的說明每一層的具體任務(wù)還是非??嚯y的。

這里寫圖片描述

Market2Vec 與 LSTMs 的結(jié)合

你可能會注意到,Karpathy 使用字符作為他模型的輸入,而不是詞嵌入(技術(shù)上是使用 0-1 編碼)。但是,Lars Eidnes 在 Auto-Generating Clickbait With Recurrent Neural Network 文章中使用詞嵌入來處理。

Lars Eidnes network for Auto-Generating Clickbait With Recurrent Neural Network (https:///2015/10/13/auto-generating-clickbait-with-recurrent-neural-networks/) (Thank you Lars)

上圖顯示了他使用的網(wǎng)絡(luò)。我們先不考慮 softmax 部分(這部分我們后續(xù)介紹),先來看看 LSTM 堆棧和模型的輸入部分。我們發(fā)現(xiàn)模型的底部輸入是一系列的單詞向量(記住,一個詞向量表示的是一個單詞的語義)。Lars 輸入一個字向量序列,其中每一個作用如下:

  1. 影響第一個 LSTM;
  2. 前一個 LSTM 的中間輸出作為下一個 LSTM 的輸入;
  3. 前一個 LSTM 輸出的下一個字作為下一個 LSTM 的輸入;

雖然我們要做同樣的事情,但是可能有一點小小的區(qū)別,我們不是把字向量作為輸入,而是我們的 Market2Vec ,這個市場向量就是我們之前描述出來的。我們來回顧一下,對于給定的時間點,我們的 MarketVectors 應(yīng)該包含在這個時間點發(fā)生的市場情況的總和。通過 LSTM 的序列化,我們希望能夠捕捉到市場上發(fā)生的一個長期依賴關(guān)系。通過幾個 LSTM 的堆棧,我們希望可以得到更高層次的市場行為抽象數(shù)據(jù)。

我們來談?wù)劰善?/strong>

到目前為止,我們還沒有談到算法是如何在實際環(huán)境中工作的,我們上面只是談?wù)摿巳绾螌?shù)據(jù)做巧妙的轉(zhuǎn)換,把一個高維度的數(shù)據(jù)轉(zhuǎn)換成低維度的數(shù)據(jù)。在接下來的文章中,我們會來具體說如何應(yīng)用這個算法,但是請記住,正是因為前面的鋪墊才使得后面的應(yīng)用有了價值。

在 Karpathy 的例子中,LSTM 的輸出是抽象的表示下一個字符的預(yù)測向量。在 Eidnes 的例子中,LSTM 是輸出下一個字符向量。這兩種情況的下一步都是將一個抽象的事物表示成一個概率向量,這是一個概率列表,說明每個字符或者單詞在下一個位置出現(xiàn)的可能性。這里則是 softmax 函數(shù)在工作了,一旦我們擁有了這個概率列表,我們則需要選擇出最有可能出現(xiàn)的單詞或者字符。

當(dāng)我們處理“市場預(yù)測”的問題時,我們需要問自己,我們真正想要預(yù)測的是市場的什么情況?我這里有一些自己的想法,大家可以參考一下:

  1. 預(yù)測 1000 支股票中每一支股票接下來的價格變化;
  2. 預(yù)測在接下來的 n 分鐘內(nèi),一些指標(biāo)(S&P,VIX等等)的變化;
  3. 預(yù)測在接下來的 n 分鐘內(nèi),哪些股票的價格將上漲超過 x%;
  4. (我個人最喜歡的)預(yù)測哪些股票在接下來的 n 分鐘內(nèi),上漲/下跌 2x%,而這段時間內(nèi)不會下跌/上漲超過 x% ;
  5. (本文將會介紹的)預(yù)測在接下來的 n 分鐘,VIX 的值上漲/下跌 2x %,而這段時間內(nèi)不會下跌/上漲超過 x%;

第一和第二個就是回歸問題,我們必須預(yù)測的是一個實際的數(shù)字而不是一個特定事件的概率(比如字符 n 出現(xiàn)或者市場上漲)。這個非常準(zhǔn)確,但是不是我想做的事。

第三和第四是兩個非常相似的問題,他們都要求預(yù)測一個事件(技術(shù)術(shù)語,就是一個類標(biāo)簽)。這個事件可能是接下來出現(xiàn)字母是 n ,或者接下來10分鐘內(nèi)某只股票是否會上升 5%,而不會下降超過 3%。第三和第四之間的權(quán)衡關(guān)系是,第三個問題更加常見,因此更容易學(xué)習(xí)到,而第四個問題更加有價值,它不但對利潤有預(yù)測,而且對風(fēng)險也有一定的約束。

第五個問題是我們在這篇文章需要解決的,這個問題跟第三個和第四個問題非常類似,但是它更加容易一些,因為我們有一些機制可以遵循。VIX 指數(shù)被稱為恐怖指數(shù),它代表了 S&P 500 指數(shù)的股票波動。它是通過觀察指數(shù)中每個股票的隱含波動率得出來的。

為什么預(yù)測 VIX 指數(shù)?

那么我們?yōu)槭裁磿ヮA(yù)測 VIX 這個指數(shù)呢?原因主要如下:

  1. 這只是一個數(shù)字,而不是 1000 支股票,這就使得我們在算法設(shè)計上會更加簡單,計算成本也會降低很多;
  2. 這是多個股票的總結(jié),所以跟大多數(shù)股票是相關(guān)的;
  3. 它不是單純的對我們的輸入數(shù)據(jù)進行線性組合。隱含的波動率是從一個非常復(fù)雜的非線性公式中計算出來的,而 VIX 是基于這個波動率再進行推導(dǎo)得出來的。如果我們可以進行預(yù)測,那么這將是一件非??岬氖?。
  4. 這個是直接可以用來指導(dǎo)交易的額,如果我們真的可以設(shè)計出一個有價值的網(wǎng)絡(luò),那么我們就可以直接在線上使用它。

繼續(xù)討論 LSTM 和 softmax 函數(shù)

在未來幾分鐘內(nèi),我們?nèi)绾问褂弥暗臄?shù)據(jù)來預(yù)測 VIX 的變化呢?對于我們數(shù)據(jù)集中的每一個點,我會在 5 分鐘后再次看到該數(shù)據(jù)點的 VIX 變化。如果在那段時間內(nèi)上升了超過 1%,但是沒有超過 0.5%。那么,我們的模型將輸出 1,否則就是輸出 0。然后我們會得到如下一系列的標(biāo)簽:

0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0 ….
  • 1

我們想利用之前壓縮的市場向量,然后輸入到 LSTM 模型中得出最終的概率結(jié)果,從技術(shù)上來分析,因為我們最終只要輸出一個標(biāo)簽,我們也可以使用 sigmoid 函數(shù),但是如果我們做二分類結(jié)果,還是建議使用 softmax 函數(shù)。

所以,在我們深入分析這個算法應(yīng)用之前,讓我們先來回顧一下我們已經(jīng)學(xué)習(xí)了哪些內(nèi)容:

  1. 我們以 1000 支股票的價格作為輸入數(shù)據(jù);
  2. 數(shù)據(jù)序列中的每一個時間點都是市場的一個快照反饋。我們使用一個壓縮網(wǎng)絡(luò),將輸入的 4000 維度壓縮到 300 維度;
  3. 現(xiàn)在我們有一系列的股票市場向量,我們把這些股票向量輸入堆棧 LSTM 中,然后按照每個時間步驟來進行學(xué)習(xí)。LSTM 會記住一些市場之前的有效信息,這些信息會影響后續(xù)的市場反饋;
  4. 我們將第一層 LSTM 的輸出傳遞到另外的 LSTM 結(jié)構(gòu)。這些結(jié)構(gòu)會記住一些更高層次的抽象信息;
  5. 最后,我們會根據(jù)堆棧 LSTM 的最后輸出,利用 softmax 函數(shù)來得到VIX 在接下來5分鐘內(nèi)上漲 1%,而不下降 0.5%的具體股票;

這個過程是如何選擇的?

現(xiàn)在是最有趣的部分。我們現(xiàn)在所做的一切都可以被稱為是一個前向的過程。當(dāng)我們訓(xùn)練算法時,我們也會去做以上的那些步驟,然后部署到生產(chǎn)環(huán)境中使用它?,F(xiàn)在我們需要討論的是一個反饋的過程,這個反饋是我們需要在算法中進行學(xué)習(xí)的過程。

在訓(xùn)練的過程中,我們不僅準(zhǔn)備了數(shù)年的歷史訓(xùn)練數(shù)據(jù),還手動準(zhǔn)備了一系列的預(yù)測目標(biāo),0 和 1 都是我們對歷史數(shù)據(jù)進行打的標(biāo)簽。

為了學(xué)習(xí),我們需要將市場數(shù)據(jù)輸入我們的神經(jīng)網(wǎng)絡(luò),并且將網(wǎng)絡(luò)的輸出結(jié)果和我們的標(biāo)簽數(shù)據(jù)進行對比,最后得到一個損失值,這個對比函數(shù)就是一個損失函數(shù)。在我們的例子中這個對比比較簡單,我們可以將我們的損失函數(shù)設(shè)計如下:

ERROR = (1/2)*(((precomputed)— (predicted probability))2 )
  • 1

這就是一個損失函數(shù)。也就是說,我們可以去計算出深度學(xué)習(xí)模型的輸出值與準(zhǔn)確值之間的誤差有多大。根據(jù)這些誤差,我們可以利用一些更新函數(shù)來更新一整個網(wǎng)絡(luò)的權(quán)重,從而得到一個比較好的模型。

該更新過程會一直更新到模型的開始,所以模型會不斷的調(diào)整我們的 MarketVectors 向量,以便我們的 MarketVectors 可以表示更多的信息。

LSTM 模型可以選擇去記住哪些內(nèi)容和忘記哪些內(nèi)容,以便模型可以分析那些與我們?nèi)蝿?wù)最相關(guān)的量。

LSTM 模型還可以學(xué)習(xí)數(shù)據(jù)的更加抽象表示,以便模型學(xué)習(xí)數(shù)據(jù)更多的特征。

這一點是非常讓我吃驚的,因為深度學(xué)習(xí)可以學(xué)習(xí)那么多負(fù)責(zé)和抽象的東西。我們從前都沒有接觸過這種模型。

一些想法

對于這個項目我還有一些更加深入的想法,一些我可能還會嘗試的想法,并且我認(rèn)為這些想法對實際項目時有用的。

市場流動性和資金的有效利用

一般來說,特定市場的流動性越高資金的利用效率越高。我認(rèn)為這是一個雞與蛋之前的循環(huán),而市場變得更加的流動,它能夠吸收更多的資本交易,并且資本收到的損害最小。隨著市場變得更加流動,更多的資本可以在市場中使用,你會發(fā)現(xiàn)更多復(fù)雜的交易玩家會進入市場。

一個快速的推論是,在一個比較不流動的市場中,競爭并不是那么復(fù)雜,所以這樣的機制可能會帶來機會,我會在這樣的市場嘗試交易。

股票市場的新應(yīng)用

這些算法的知識和架構(gòu)對計算機領(lǐng)域是比較陳舊的,但是在股票金融領(lǐng)域的應(yīng)用是一個全新的應(yīng)用。我們假設(shè)一些頂級玩家已經(jīng)在使用這些技術(shù)進行套利,并且可能已經(jīng)很長一段時間了。但是正如我前面提到的,他們可能是在一個流動性很大的市場進行套利工作,他們需要很大的市場資金規(guī)模,這樣才能去平攤他們的運營成本。我認(rèn)為,下一次的市場應(yīng)用會在那些流動性比較小的市場,這些市場還沒有被開發(fā)完全,存在很大的套利空間。

多個時間幀

雖然我在上面提到的是輸入一個單通道的數(shù)據(jù)流,但我認(rèn)為一個更加有效的訓(xùn)練方法是在多個時間通道上面對市場數(shù)據(jù)進行訓(xùn)練。也就是說,我目前采用的是 30 秒采樣一次,我希望網(wǎng)絡(luò)可以解決幾個小時的數(shù)據(jù)依賴關(guān)系。

我不知道這個想法是否有意義,但是我認(rèn)為如果我們可以將計算成本降低到一定程度,那么我們可以把多個時間點進行融合訓(xùn)練。這個融合模型的訓(xùn)練我還在思考中,目前有點困難。

MarketVectors

當(dāng)我們在自然語言處理中,使用的詞向量模型都是在一個預(yù)訓(xùn)練模型之上進行微調(diào)的。但是在我們的情況下,沒有一個預(yù)訓(xùn)練好的市場向量可以使用,也沒有一個明確的算法去進行訓(xùn)練。

我原來的想法是使用一個自動編碼器來進行訓(xùn)練,就好像這篇論文,但是端到端的訓(xùn)練好像看起來更加酷。

更重要的考慮是,端到端的序列模型在機器翻譯領(lǐng)域已經(jīng)比較成熟了,也就是說我們可以把一些文本編碼成一個向量,并且進行解碼。在這種觀點下,我所描述的整個架構(gòu)本質(zhì)上就是一個編碼器,但是我還沒有真正的設(shè)計出一個解碼器。

但是,對于網(wǎng)絡(luò)的第一層,我想設(shè)計一個特殊層,即我們需要把輸入的 4000 維度向量降維到一個 300 維度的向量。通過這些低維度的向量,我們需要去找到各個股票之間的一些關(guān)聯(lián)度。

另一個替代的方向是對每個 LSTM 輸入一個數(shù)據(jù),然后編碼成一個輸出向量。但我認(rèn)為這個可能是無效的,因為各個數(shù)據(jù)模型之間的相關(guān)度會下降很多,并且這種方法會需要 10 倍的計算資源,比較浪費。但是從另一方面來說,這種架構(gòu)可以多個 GPU 進行訓(xùn)練,可以提高一點速度。

CNNs

最近,字符級的機器翻譯方面出現(xiàn)了很多的論文。這篇論文帶給了我很多的啟發(fā),因為這篇文章試圖采用 CNN 來解決長距離的依賴關(guān)系,而不是 RNN 。我還沒有深入的去閱讀這篇論文,但是我們可以假想一下,我們把每個股票當(dāng)做一個通道(類似于 RGB圖像的三個通道),然后把每個通道輸入卷積模型中進行卷積操作,從而來捕捉市場的長期依賴信息。這種方法跟他們從字符級別上進行語義編碼的方式是相同的。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多