色色一区二区三区,一本大道道久久九九AV综合,国产香蕉97碰碰视频va碰碰看,综合亚洲国产2020

    <legend id="mljv4"><u id="mljv4"><blockquote id="mljv4"></blockquote></u></legend>

    <sub id="mljv4"><ol id="mljv4"><abbr id="mljv4"></abbr></ol></sub>
      <mark id="mljv4"></mark>
      教育培訓(xùn) > 機器學(xué)習可以預(yù)測匯率變化嗎?

      機器學(xué)習可以預(yù)測匯率變化嗎?

      2020-07-29 02:39閱讀(70)

      機器學(xué)習可以預(yù)測匯率變化嗎?:作為一個在美國生活的印度人,Neelabh 和家鄉(xiāng)之間存在恒定的金錢流動。如果在市場中,美元更加強勢,則印度盧比相對貶值:-機器學(xué)

      1

      作為一個在美國生活的印度人,Neelabh 和家鄉(xiāng)之間存在恒定的金錢流動。如果在市場中,美元更加強勢,則印度盧比相對貶值,因此從印度購買 1 美元需要更多的盧比。如果美元相對弱勢,則購買 1 美元需要的盧比會更少。

      如果可以預(yù)測第二天的美元的價值,那么可以以此為參考做出更好的決策,最小化風險并最大化收益。了解到神經(jīng)網(wǎng)絡(luò)的強大,尤其是循環(huán)神經(jīng)網(wǎng)絡(luò),Neelabh 想到了預(yù)測美元和盧比的兌換匯率的點子。

      在這篇文章中,我們將告訴你如何利用時序分析和機器學(xué)習時序模型來預(yù)測未來的兌換匯率變化。

      序列問題

      我們從序列問題的討論開始,最簡單的序列機器學(xué)習問題是「一對一」問題。

      在這種問題中,向模型輸入一個數(shù)據(jù)或一個向量,模型會對輸入生成一個預(yù)測結(jié)果。無論是回歸、分類還是通過卷積網(wǎng)絡(luò)的圖像分類都屬于這個類型。通過擴展這種模式,我們可以將其改造成利用過去的輸入和輸出進行學(xué)習的模型。

      一對多問題是一對一問題的擴展,因為一對一問題的模型只有一個輸入和輸出。而現(xiàn)在模型的輸出再饋送到模型作為新的輸入,這樣模型就會生成多個輸出,下面我們將了解一對多為什么又稱為循環(huán)神經(jīng)網(wǎng)絡(luò)。

      由于連接方式構(gòu)成有向循環(huán),循環(huán)神經(jīng)網(wǎng)絡(luò)可以處理序列問題。就是說,循環(huán)神經(jīng)網(wǎng)絡(luò)可以在每一次的迭代中保持網(wǎng)絡(luò)形態(tài)不變的前提下,將輸出作為下一步的輸入。從編程的角度上說就像是利用確定的輸入和一些隱藏變量,在固定不變的程序上保持運行。最簡單的循環(huán)神經(jīng)網(wǎng)絡(luò),將時間軸展開之后,可以看成一個全連接神經(jīng)網(wǎng)絡(luò)。

      RNN Unrolled Time

      在這個單變量的例子中,只包括了兩個權(quán)重。權(quán)重 u 和當前輸入 x_t 相乘,權(quán)重 w 和上一步輸出 y_t-1 相乘。這個利用過去輸出和當前輸入的公式很像指數(shù)加權(quán)移動平均法(exponential weighted moving average,EWMA)。

      只要將網(wǎng)絡(luò)單元一個接一個堆疊起來,就可以輕易建立一個深度循環(huán)神經(jīng)網(wǎng)絡(luò)。簡單的循環(huán)神經(jīng)網(wǎng)絡(luò)可以很好的處理短期記憶模型,但是在長時依賴項中,模型將會遇到根本的困難。

      長短期記憶神經(jīng)網(wǎng)絡(luò)(Long Short-Term Neural Network)

      之前說過,簡單的循環(huán)神經(jīng)網(wǎng)絡(luò)無法捕捉長期依賴序列中的特征,是一個根本的困難。這個問題很重要,因為我們希望以后我們的 RNN 可以分析文本和回答問題,在這些任務(wù)中很自然的需要分析長序列的文字。

      90 年代末,Sepp Hochreiter 和 Jurgen Schmidhuber 提出了 LSTM,這種模型對長期依賴性的處理要比 RNN、隱馬爾可夫模型和其他序列學(xué)習方法要優(yōu)秀地多。

      LSTM 模型將各種運算集合在一個單元中,LSTM 有一個內(nèi)部狀態(tài)變量,并且該狀態(tài)變量可以從一個單元傳遞到另一個 LSTM 單元中,同時通過門運算進行修改。

      1. 遺忘門

      這是一個 Sigmoid 層,以 t-1 時刻的輸出和 t 時刻的當前輸入為參量串接到一個單張量中,加上線性變換,最后用 sigmoid 函數(shù)變換。由于 sigmoid 函數(shù)的性質(zhì),這個門的值被限定在 0 和 1 之間,該值與內(nèi)態(tài)的值相乘,這也它會被叫做忘記門的原因。如果 ft=0 那么過去的內(nèi)態(tài)將被忽略,如果 ft=1 那么內(nèi)態(tài)將被完整的傳遞。

      2. 輸入門

      輸入門以過去的輸出和當前輸入為參量并饋送到一個 sigmoid 層。同樣,這個門的輸出值也是在 0 和 1 之間,輸入門的值將和候選層的輸出值相乘。

      這個層對當前輸入和過去輸出應(yīng)用了雙曲正切函數(shù)作為變換(激活函數(shù)),結(jié)果將返回一個與內(nèi)部狀態(tài)相加的候選向量。

      內(nèi)態(tài)通過這個規(guī)則不斷更新:

      過去的狀態(tài)和遺忘門的值相乘,然后加上輸出門所給出新的候選狀態(tài)。

      3. 輸出門

      這個門控制多大比率的內(nèi)部狀態(tài)將被傳遞到輸出,這和其它門的工作方式類似。

      以上描述的三個門有互相獨立的權(quán)重和偏置,因此,網(wǎng)絡(luò)將分別學(xué)會,保持過去輸出的概率、保持當前輸入的概率以及將內(nèi)態(tài)傳遞給輸出的概率。

      在一個循環(huán)神經(jīng)網(wǎng)絡(luò)中,不僅需要輸入數(shù)據(jù),還需要輸入網(wǎng)絡(luò)過去的狀態(tài)。舉例來說,如果我喊「嘿!我開車的時候發(fā)生了不得了的事!」這時你的大腦的一部分將把這句話分解成,「噢,Neelabh 正在給我講一個故事,這個故事的主人公是 Neelabh 并且故事發(fā)生在路上。」然后,你需要將我剛才告訴你的話記住一部分。在接下來的故事中,你都必須隨時保留部分聽過的話的印象,才能逐漸明白整個故事。

      另一個例子是關(guān)于是關(guān)于視頻加工的,同樣需要用到循環(huán)神經(jīng)網(wǎng)絡(luò)。大多數(shù)情況下,一部電影中,當前畫面所描述的內(nèi)容相當依賴于上一個畫面的內(nèi)容。經(jīng)過一段時間的訓(xùn)練后,循環(huán)神經(jīng)網(wǎng)絡(luò)將學(xué)會保留過去畫面的哪些部分和保留的比率,以及保留當前畫面的多少信息,豐富的結(jié)構(gòu)使其擁有比簡單前饋神經(jīng)網(wǎng)絡(luò)強大得多的性能。

      時間序列預(yù)測

      RNN 的強大功能令我印象深刻,因此我決定使用 RNN 預(yù)測美元和盧比的兌換匯率。這個計劃中使用的數(shù)據(jù)集是從 1980 年 1 月 2 日到 2017 年 8 月 10 日的兌換匯率的數(shù)據(jù)。稍后我將給出鏈接供你們下載和實驗。

      數(shù)據(jù)集展示了 1 美元相對盧比的價值,我們一共擁有總數(shù)目為 13 730 條從 1980 年 1 月 2 日到 2017 年 8 月 10 日的數(shù)據(jù)記錄。

      在這段期間,1 美元的盧比價值總體在上升。不難看到,在 2007-2008 年之間,由于經(jīng)濟大衰退,美國經(jīng)濟經(jīng)歷了一次重大的危機,這個圖描繪了從 20 世紀末期到 21 世紀早期世界市場經(jīng)濟衰退的軌跡。

      這段期間內(nèi),全世界的經(jīng)濟發(fā)展狀況不是很好,特別是北美和歐洲(包括俄羅斯),都陷入了明顯的衰退。不過,與此同時,很多新興的經(jīng)濟體受到的沖擊要小得多,特別是中國和印度,在這場災(zāi)難中,他們的經(jīng)濟依然得到了大幅增長。

      訓(xùn)練集和測試集的分割

      現(xiàn)在,為了訓(xùn)練模型,我們需要將數(shù)據(jù)集分成測試和訓(xùn)練集。在做時間序列時,以明確的日期為界限將數(shù)據(jù)集分為訓(xùn)練和測試兩部分是很重要的。畢竟,你不會希望你的測試數(shù)據(jù)的時間排在你的訓(xùn)練數(shù)據(jù)之前。

      在我們的實驗中將定義一個日期,比如 2010 年 1 月 1 日,作為分界日期。訓(xùn)練數(shù)據(jù)的日期從 1980 年 1 月 2 日到 2009 年 12 月 31 日,包括大約 11 000 個數(shù)據(jù)點。

      測試數(shù)據(jù)的日期從 2010 年 1 月 1 日到 2017 年 8 月 10 日,包括大約 2700 個數(shù)據(jù)點。

      接下來要將數(shù)據(jù)集歸一化,即將訓(xùn)練數(shù)據(jù)轉(zhuǎn)換格式并將測試數(shù)據(jù)按同樣的格式映射到訓(xùn)練數(shù)據(jù)上,這樣可以避免假定知道測試數(shù)據(jù)的規(guī)模帶來的影響。歸一化或者數(shù)據(jù)轉(zhuǎn)換意味著新變量的定義域?qū)⑾薅ㄔ?0 和 1 之間。

      神經(jīng)網(wǎng)絡(luò)模型

      一個全連接模型即將一個輸入變換成一個輸出的簡單神經(jīng)網(wǎng)絡(luò),它的構(gòu)建就如同簡單的回歸模型那樣通過前一天的價格預(yù)測第二天的價格。

      我們以均方差作為損失函數(shù),并使用隨機梯度下降優(yōu)化算法。經(jīng)過足夠多代的訓(xùn)練,將能開始尋找足夠好的局部最優(yōu)解。下方是全連接層性質(zhì)的總結(jié)。

      經(jīng)過 200 個 epoch 的訓(xùn)練,或者 eraly_callbacks 的出現(xiàn)(無論哪個先出現(xiàn)),這個模型就開始嘗試學(xué)習數(shù)據(jù)的模式和行為。由于我們區(qū)分了訓(xùn)練集和測試集,現(xiàn)在我們可以預(yù)測測試數(shù)據(jù)集并和真實值比較。

      正如你所看到的,模型的表現(xiàn)并不好;旧纤皇侵貜(fù)過去的值,只有輕微的變化。全連接網(wǎng)絡(luò)無法從單一的過去值預(yù)測未來的值。接下來我們嘗試循環(huán)神經(jīng)網(wǎng)絡(luò),看看它工作的如何。

      長短期記憶

      我們使用的周期循環(huán)模型是一個單層序列模型,層內(nèi)使用 6 個 LSTM 節(jié)點,輸入的維度設(shè)為(1,1),即網(wǎng)絡(luò)的單個輸入只含一個特征值。

      最后一層是一個密集層,損失函數(shù)為均方誤差函數(shù),并且采用隨機梯度下降作為優(yōu)化器。我們將模型訓(xùn)練了 200 個 epoch,并采用了中斷訓(xùn)練回調(diào)。模型的性質(zhì)總結(jié)在上方展示。

      這個模型幾乎學(xué)會了將這些年的數(shù)據(jù)完全重現(xiàn),并且在一個簡單的前饋神經(jīng)網(wǎng)絡(luò)的輔助下,不出現(xiàn)延遲。不過,它仍然低估了一些確定的觀察值,模型仍然有很大的改進空間。

      模型的改進

      這個模型還可以做很多的改進,通過改進優(yōu)化器的方法以改變模型結(jié)構(gòu)的方式可以有很多種。還有另一種很重要的改進方法是來自數(shù)據(jù)流管理系統(tǒng)的滑動時間窗口法。

      這種方法源于只有最近的數(shù)據(jù)才是最重要的觀點,即可以從一年時長的數(shù)據(jù)中嘗試預(yù)測下一年第一天的值。就從數(shù)據(jù)集中獲取重要模式并高度依賴于過去觀察值而言,滑動時間窗口法是非常有用的。

      你們也可以按自己的方式嘗試去改進模型,看看模型會如何應(yīng)答這些變化。

      數(shù)據(jù)集

      我已經(jīng)把數(shù)據(jù)集公布在 github 項目中,請隨意下載,盡情使用吧。

      GitHub 地址:https://github.com/neelabhpant/Deep-Learning-in-Python

      有用的學(xué)習資源

      我個人一直追隨著幾位我最喜歡的數(shù)據(jù)科學(xué)家,比如 Kirill Eremenko,Jose Portilla,Dan Van Boxel(更知名的是 Dan Does Data 這個名號),還有很多。他們大部分都有自己的博客并在上面討論今天主題的各方面,如 RNN,CNN,LSTM,甚至還有最近出現(xiàn)的新技術(shù),神經(jīng)圖靈機。

      盡可能去跟進各種人工智能大會的新聞。順便提一下,有興趣的可以關(guān)注,Kirill Eremenko 即將帶著他優(yōu)秀的隊伍在 San Diego 作關(guān)于機器學(xué)習,神經(jīng)網(wǎng)絡(luò)和數(shù)據(jù)科學(xué)的報告。

      結(jié)論

      通過學(xué)習過去行為的主要特征并區(qū)分哪些特征才是對預(yù)測未來所需,LSTM 模型確實是很強大的工具。已經(jīng)有幾種應(yīng)用管法廣泛使用了 LSTM,比如語音識別、作曲、手寫字識別,甚至還有我最近研究中的對人體移動和交通運輸?shù)念A(yù)測實驗。

      對于我們而言,LSTM 就是一個擁有自己的記憶并能像天才一樣做出精準決策的模型。

      2

      理論上,人能預(yù)測的,只要收集到足夠的數(shù)據(jù),機器就能模擬出人的思考分析過程。但是像匯率這樣的受政策、突發(fā)事件等黑天鵝影響較大的東西,如何實時高效的收集數(shù)據(jù)信息反而更重要。在數(shù)據(jù)一樣的情況下,至于是機器預(yù)測還是人工預(yù)測都是一樣的效果,如果人也能處理過來所有的數(shù)據(jù)

      3

      可以的,先從相關(guān)背景談起。對于量化經(jīng)濟而言,對外匯市場的分析和預(yù)測通;趨R率歷史數(shù)據(jù),采用相應(yīng)的數(shù)據(jù)分析手段構(gòu)建預(yù)測模型。但是由于政策、輿論、國際形勢等諸多外在“黑天鵝”事件的影響,僅依靠技術(shù)面的分析很難把握市場的偶發(fā)性跳變和由此引發(fā)的長期效應(yīng)。


      浪潮著眼于外匯市場熱點,結(jié)合大數(shù)據(jù)和深度學(xué)習技術(shù),提供基于自然語言理解和數(shù)值分析的匯率預(yù)測端到端人工智能解決方案,有以下三部分組成:


      第一,金融數(shù)據(jù)預(yù)處理。采用大數(shù)據(jù)處理技術(shù),從各個信息平臺獲得金融交易、資訊、報表等數(shù)據(jù),并傳輸?shù)郊写鎯χ,金融?shù)據(jù)預(yù)處理CPU平臺(多個雙路CPU服務(wù)器NF5280M5組成的集群)對交易、操盤等實時數(shù)據(jù)進行初篩和清洗,存入實時數(shù)據(jù)庫;對新聞資訊、行業(yè)報表等實時性要求不強的數(shù)據(jù)和過期的實時數(shù)據(jù)存入歷史數(shù)據(jù)庫,以備后續(xù)處理使用。CPU程序的管理、調(diào)度、監(jiān)控將由深度學(xué)習管理平臺AIStation完成。

        

      第二,模型訓(xùn)練。模型訓(xùn)練GPU集群(配置8卡GPU服務(wù)器,如NF5288M5)從集中存儲中讀取訓(xùn)練樣本庫數(shù)據(jù),并加載實時數(shù)據(jù)處理模塊、數(shù)值特征重構(gòu)模塊和自然語言理解等模塊,運行深度學(xué)習框架,如TensorFlow,CNTK,MXNet等對初始模型進行訓(xùn)練,經(jīng)過對大量數(shù)據(jù)樣本的學(xué)習訓(xùn)練生成最終模型。訓(xùn)練中涉及多個訓(xùn)練任務(wù)的提交,其資源管理、調(diào)度、監(jiān)控將由深度學(xué)習管理平臺AIStation完成。


      第三,模型應(yīng)用。訓(xùn)練好模型根據(jù)實際應(yīng)用場景的不同,可能以三種方式被加載,如加載到單臺GPU工作站P8000上、嵌入式設(shè)備上以及GPU AI服務(wù)云上,對實際接收的金融數(shù)據(jù)樣本進行測試識別,將智能化給出金融預(yù)測與識別。

      整體架構(gòu)如下所示:


      相關(guān)問答推薦

      熱點關(guān)注