股票市場交易中的強化學習|機器學習|強化學習|深度學習

2021-01-12 騰訊網

在深度學習的世界中,無論您的模型多麼先進,沒有充分對業務充分理解和乾淨的數據都不會走得太遠。這個事實在金融領域尤其如此,在我們的數據集中,只存在股票的開盤價,最高價,最低價,調整後的收盤價和交易量的5個變量。

在第一幅圖中,不難發現這些原始數據值不足以訓練機器學習模型。高度相關的變量乍看起來似乎很有希望,但是相關係數極高的缺點是實際上沒有那麼多的信息。數據集基本上有五個數字,它們對模型說的完全相同,這使得模型很難理解允許機器學習交易者獲利的市場波動的複雜性。

數據的相關性顯示在下面的分散矩陣內,其中對角線是變量分布的估計值。

技術分析:這是一個數學工具箱,用來將嘈雜的原始金融數據轉換成可理解、清晰的信號,量化資產的動量、波動性、交易量和其他一般趨勢。幸運的是,TA是一個很棒的python庫,擁有所有這些指標,並允許對數據進行簡單的實驗。我們花費了大量時間來查找指標的不同組合,並對數據集進行自己的更改,以確保我們擁有最佳的數據集。我們可以看到將相對強度指標(RSI)(其唯一輸入為收盤價)相對於下面的原始收盤價得出了顯著結果。

但是,在數學金融領域,一個重大謬論是存在一些功能的完美組合,這些功能可以為您「預測」市場。與數據科學和機器學習中的許多方法一樣,這個工具實際上只在數據轉換階段提供幫助。這一事實在許多項目中得到了體現,因為最終您只需要相信您目前擁有的組合已經足夠好,可以讓模型學習。因此,我們確定了兩個動量指標,即經典相對強度和另一個被有趣地命名為awesome指標,以及兩個趨勢指標,移動平均收斂散度和Aroon指標。

動量指標很有用,因為它們試圖量化股票在先前價格的背景下的走勢。這可能對代理人有所幫助,因為它可以嘗試了解動量增加通常是股價可能上漲的好兆頭,並且可以自信地持有股票直到動量開始減少。另一方面,趨勢指標通常形成動量指標的超集,因為趨勢跟蹤通常涉及動量和移動平均值的計算。通常,我們嘗試獲取動量生成的不容易量化的值,並將其轉換為百分比,其中正數和負數表示各自的趨勢。這種設置將進一步幫助代理了解股票走勢的能力,並希望了解趨勢和動量都開始上升時獲利的可能性很高。

一個關鍵的發現是在我們的數據上應用了信號處理濾波器,該濾波器在固定數量的點之間插入多項式以顯著平滑數據。這是很重要的,因為我們使用的技術分析功能在本質上仍具有相當高的噪聲和連續性,因此更平滑的數據將使模型具有更清晰的信息並在環境中做出更好的決策。下圖通過顯著消除了許多容易造成模型混亂的隨機運動,證明了濾波器對開盤價的巨大平滑作用。

在特徵被挑選出來之後,還有一個預處理的關鍵操作,即對我們的數據進行標準化。儘管很容易忽略,但是忘記進行標準化會嚴重影響模型性能。更有趣的是,由於財務數字是無界的,因此沒有直接的方法來選擇如何規範化我們的數據,這與像素值介於0到255之間的圖像不同。例如,簡單的滾動窗口z得分計算可以很好地解決此問題。很好,因為z分數會將我們的所有數據轉換為大約-3到3的合理範圍。

確定輸入後,我們就進入了超參數調整和模型優化的階段。在大多數深度學習應用程式中,模型具有多個可調超參數,即我們可以指定訓練時使用的模型的變量。這些參數的變化可以說是對模型性能的最重要的結果,因為模型訓練中的關鍵時刻受這些值控制。

我們能夠了解近端策略優化(PPO)框架背後的機制,以幫助實驗,調整和改進現有模型的超參數。在此過程中,我們能夠深入了解某些超參數與代理獲得的獎勵之間的關係。這使我們能夠真正了解代理是否真正在學習。通過我們的探索,我們能夠發現我們的模型從股票交易中學到的一些有趣的見解。

為了測試不同的超參數值與模型性能之間的關係,我們決定採用科學的方法。這種方法涉及我們一次只更改一個超參數來測試代理的性能。通過確保所有其他超參數保持恆定,我們能夠找出最有效地允許我們的代理學習的每個超參數的範圍。我們還通過使用種子控制了每個試驗中訓練的數據的隨機性。這樣可以確保模型性能的任何變化都可以歸因於指定的參數,而不是其他無關的變量。

默認參數值:

『n_steps』: 1024,

『gamma』: 0.9391973108460121,

『learning_rate』: 0.0001,

『noptepochs』: 5,

『lam』: 0.8789545362092943

N_steps:此超參數告訴我們每個環境在更新模型之前要運行的步驟數。這從根本上決定了單一學習經歷對政策更新的影響程度。如果n_steps較低,則意味著該策略將不斷變化,並適應可能由隨機機會造成的經驗。因此,當模型的n_steps低時,每種學習經歷可能會對策略更改產生更大的影響。但是,與此有關的一個問題是,它可能導致相對不穩定的策略,該策略可能永遠不會收斂到最佳狀態。因此,通過調整超參數找到合適的平衡可以幫助獲得更好的代理交易性能。

Gamma:接下來,我們繼續修改伽瑪值。這是折扣因子,基本上意味著它會削弱下一個獎勵在政策上的權重。通過對此進行調整,我們可以優化新政策與舊政策之間的差異。這使我們的代理可以朝著其最大目標邁出較小的步伐,而不會受到最新經驗的過度影響。

Entropy coefficient:我們還試圖調整熵係數,該熵係數充當正則項並給策略增加隨機性。探索是強化學習中找到一個好的策略的至關重要的一點,如果策略收斂得太快,代理可能會發現自己陷入重複執行相同次優操作的局部最大值中。可以通過調整熵係數來糾正此行為,以防止過早收斂並鼓勵探索。

Lambda:Lambda是用於減少Generalized Advantage Estimator(GAE)中方差的平滑參數。GAE使用每個時間步驟的獎勵來估算採取特定行動後,代理的狀況會好轉多少。Lambda通過確保策略不會過度適應特定的狀態-操作對,幫助穩定這種學習。

關鍵發現

在運行和微調每個列出的超參數後,我們得出了一些有趣的結論。首先,較高的n_step值範圍似乎會產生更健康的獎勵和優勢曲線。這意味著,當我們的代理在更新模型之前在每個環境中採取更多步驟時,它將學習更有效的交易策略。因為當n_steps參數較高時,模型的表現似乎更好,這可能意味著最佳策略是一種策略,即交易員購買股票並持有較長時間。這可能表明,我們在交易時可以採取的最佳策略是買入一隻股票並持有它,而不是在更高的頻率上進行微交易的股票。

除了從調整n_steps超參數中獲得的一些有趣的見解外,我們還發現在我們的模型中gamma的最佳值相對較高,性能最大化可達0.99。gamma值代表折扣率,因此會影響我們根據最新經驗更新策略的程度。這個超參數在較大值上的成功意味著,在改變策略時,新體驗會得到輕微的權衡。這意味著代理只稍微優先考慮短期回報。

加入熵正則化有助於減少梯度估計中固有的噪聲。通過調整熵係數,我們發現將默認值調整到較高的0.01會導致更穩定的情節獎勵增加,並產生更健康的優勢曲線。在1e-3到1e-5的較小範圍內,我們看到熵損失迅速崩潰,這表明agent的策略過於迅速地變得確定性。相反,當熵係數過高的值(0.1 - -0.5),我們看到這一集獎勵壓扁和熵的減少損失,表明我們的代理無法學習由於高的概率熵係數是持有所有可能的行動幾乎是相同的。對於我們的代理來說,擁有一個相當高的熵係數值有助於防止由於短期市場趨勢而採取行動,因為它們並不總是轉化為長期收益。

在改變lambda超參數時,我們發現它有一個很高的最優值範圍為0.99 ~ 0.999。當lambda設置為0時,GAE就變成了一步優勢估計器,它在進行策略更新時只考慮當前狀態。這類政策有很高的偏見。另一方面,如果我們讓lambda為1,GAE成為基線蒙特卡羅估計器,它可能會受到高方差的影響。有一個較高的lambda值表明在模型中注入一些偏差對我們的代理來說是重要的,但它確實有價值的長期回報。最大的增長是當我們的代理不受市場短期波動的影響,而是專注於長期的增量收益。

在進行了充分的超參數調整後,我們能夠使用真實的市場數據生成我們的政策交易運行,每天政策可以買進、賣出或持有股票。灰色的點表示持有,黃色表示買入,綠色表示賣出。在下面的測試運行中,我們可以看到,總的來說,該政策在持有購買的資產幾天來產生一些利潤方面做得很好,但它也經歷了縮水,損失了一些利潤。這個測試運行是使用本文前面建議的超參數生成的。儘管超參數設置較強,但模型中仍存在大量波動性,這表明強模型訓練性能與實時模型結果並不完全相關。這個結果通常是金融建模中反覆出現的主題。儘管如此,我們的智能體知道除了最大化我們的目標函數,沒有其他目標,卻能夠盈利,這無疑是強化學習的一個了不起的壯舉。

總體而言,我們在這家PPO股票交易員上的工作使我們能夠深入研究最先進的強化學習研究,同時還致力於利用我們的知識來解決實際問題。儘管問題非常複雜,但是我們每個人都能夠執行最適合我們每個技能的任務,並隨後與團隊的其他成員分享我們的結果以改善模型的性能。

作者:UCLA DataRes

原文地址:https://ucladatares.medium.com/stock-market-trading-with-reinforcement-learning-df406c2c1935

deephub翻譯組

相關焦點

  • 深度學習與強化學習
    隨著 DeepMind 公司的崛起,深度學習和強化學習已經成為了人工智慧領域的熱門研究方向。
  • 強化學習的10個現實應用
    本文我們將會聚焦於強化學習在現實生活中的實際應用。無人駕駛中的應用很多論文都提到了深度強化學習在自動駕駛領域中的應用。該系統的工作方式如下:當然,具體的措施還是由本地控制系統操作完成。強化學習在金融貿易中的應用有監督的時間序列模型可用來預測未來的銷售額,還可以預測股票價格。然而,這些模型並不能決定在特定股價下應採取何種行動,強化學習(RL)正是為此問題而生。通過市場基準標準對RL模型進行評估,確保RL智能體正確做出持有、購買或是出售的決定,以保證最佳收益。
  • DeepMind綜述深度強化學習中的快與慢,智能體應該像人一樣學習
    這些技術允許深度強化學習更靈活地進行操作,能夠比之前的方法更快速地解決問題。深度強化學習的快與慢近期的 AI 研究引出了強大的技術,如深度強化學習。深度強化學習將表示學習和獎勵驅動的行為結合起來,似乎與心理學和神經科學具備內在的相關性。然而深度強化學習需要大量訓練數據,這表明深度強化學習算法與人類學習的底層機制存在根本區別。
  • 當強化學習遇見泛函分析
    隨著 DeepMind 公司的崛起,深度學習和強化學習已經成為了人工智慧領域的熱門研究方向。
  • 專題| 深度強化學習綜述:從AlphaGo背後的力量到學習資源分享(附...
    而在最近深度學習的突破性進展之下(LeCun et al., 2015; Goodfellow et al., 2016),得益於大數據的普及、計算能力的提升及新的算法技術,我們正見證著強化學習的復興(Krakovsky, 2016),特別是強化學習及深度學習的結合(也就是深度強化學習(deep RL))。
  • ...深度強化學習綜述:從AlphaGo背後的力量到學習資源分享(附論文)
    而在最近深度學習的突破性進展之下(LeCun et al., 2015; Goodfellow et al., 2016),得益於大數據的普及、計算能力的提升及新的算法技術,我們正見證著強化學習的復興(Krakovsky, 2016),特別是強化學習及深度學習的結合(也就是深度強化學習(deep RL))。
  • 深度強化學習走入「死胡同」,繼續死磕電子遊戲還是另闢蹊徑?
    強化學習通常被劃分為除監督機器學習和無監督機器學習以外的第三類,但在我看來,它其實就是監督學習。當前的強化學習實現步驟是這樣的:你開始訓練模型,然後你看著它失敗然後「死掉」,接著你花費大量的時間一次又一次調整獎勵函數,直到你「有可能」得到一個理想的結果,但僅僅是「有可能」。這個過程中有哪一步你沒有給系統提供訓練數據?
  • 資料| Python強化學習實戰:應用OpenAI Gym和TensorFlow精通強化...
    內容簡介 · · · · · ·強化學習是一種重要的機器學習方法,在智能體及分析預測等領域有許多應用。《Python強化學習實戰:應用OpenAI Gym和TensorFlow精通強化學習和深度強化學習》共13章,主要包括強化學習的各種要素,即智能體、環境、策略和模型以及相應平臺和庫;Anaconda、Docker、OpenAIGym、Universe和TensorFlow等安裝配置;馬爾可夫鏈和馬爾可夫過程及其與強化學習問題建模之間的關係,動態規劃的基本概念;蒙特卡羅方法以及不同類型的蒙特卡羅預測和控制方法
  • 「句子級」的深度強化學習方法難以求解器空間
    backpropagation和progressivegradientxpress(引入hinton先驗,更多方法變為基於歷史記錄的scheme)都是深度學習起步之初的主流方法,除此之外還有包括reinforcementlearning和proximalandadaptiverl等重要進展。但是深度學習從起步到發展至今,說的上的諸多進展似乎都停留在rl的範疇。
  • DRL:強化學習——實例
    強化學習作為一門靈感來源於心理學中的行為主義理論的學科,其內容涉及概率論、統計學、逼近論、凸分析、計算複雜性理論、運籌學等多學科知識,難度之大,門檻之高,導致其發展速度特別緩慢。強化學習特徵:試錯:agent需要不斷的嘗試,通過reward的反饋學習策略。延遲獎勵:某一時刻action可能會對後面時刻reward有影響。
  • 深度強化學習:阿里巴巴「AI 智能體」認知
    阿里巴巴認知計算實驗室資深總監袁泉在接受新智元專訪時表示,當下,人工智慧的每一個進步,幾乎都受到了神經科學的啟發,尤其是新一輪通用智能發展的中堅力量——基於神經網絡的深度強化學習。本文轉自「新智元」,作者:胡祥傑;經億歐編輯,供業內人士閱讀。
  • 南京大學俞揚博士:強化學習前沿(下)
    2015年,DeepMind在Atari遊戲上使用深度網絡直接從屏幕圖像訓練強化學習,直接推動了「深度強化學習」的發展。用深度神經網絡,放在Policy Gradient裡面,作為一個策略的模型;或者放在基於值函數的方法裡面,作為值函數Q值的一個估計。這樣的方法就稱為深度強化學習。
  • ARXIV:深度學習在金融領域中的應用 | 唧唧堂論文解析
    研究背景和問題股票市場預測、算法交易、信用風險評估、投資組合配置、資產定價和衍生品市場是ML(機器學習)研究人員專注於開發模型的領域,這些模型可以為金融行業解決一些問題。因此,關於這方面的文獻和其它出版物有很多。
  • Pieter Abbeel:深度強化學習加速方法
    來源:深度強化學習算法  編輯:元子  【新智元導讀】深度強化學習一直以來都以智能體訓練時間長、計算力需求大、模型收斂慢等而限制很多人去學習,加州大學伯克利分校教授Pieter Abbeel最近發表了深度強化學習的加速方法,解決了一些問題。
  • 142頁「ICML會議」強化學習筆記整理,值得細讀
    作者 | David Abel編輯 | DeepRLICML 是 International Conference on Machine Learning的縮寫,即國際機器學習大會。ICML如今已發展為由國際機器學習學會(IMLS)主辦的年度機器學習國際頂級會議。
  • 詳解凸優化、圖神經網絡、強化學習、貝葉斯方法等四大主題
    為了迎合時代的需求,我們去年推出了《機器學習高端訓練營》班。這個訓練營的目的很簡單:想培養更多高端的人才,幫助那些即將或者目前從事科研的朋友,同時幫助已從事AI行業的提高技術深度。  在本期訓練營(第四期)中我們對內容做了大幅度的更新,一方面新增了對前沿主題的講解如圖神經網絡(GCN,GAT等),另外一方面對核心部分(如凸優化、強化學習)加大了對理論層面上的深度。
  • 機器學習算法盤點:人工神經網絡、深度學習
    機器學習算法盤點:人工神經網絡、深度學習 佚名 發表於 2016-08-01 16:26:33   機器學習無疑是當前數據分析領域的一個熱點內容。很多人在平時的工作中都或多或少會用到機器學習的算法。
  • 強化學習中的線性代數知識
    線性代數的基本原理如何用於深度強化學習?答案是解決了馬爾可夫決策過程時的迭代更新。強化學習(RL)是一系列用於迭代性學習任務的智能方法。由於計算機科學是一個計算領域,這種學習發生在狀態向量、動作等以及轉移矩陣上。狀態和向量可以採用不同的形式。當我們考慮通過某個線性系統傳遞一個向量變量,並得到一個類似的輸出時,應該想到特徵值。
  • 多巴胺引領下的分布式強化學習
    1月份有關機器學習和神經科學研究領域的重大論文可謂這一篇Nature主刊的文章, 一出頭便引爆朋友圈:這篇署名作者包含了deepmind 創始人Demis Hassabis的文章,到底意義在哪裡?我們從多巴胺和強化學習的研究歷史中娓娓道來一窺究竟。
  • 【強化學習實戰】基於gym和tensorflow的強化學習算法實現
    1新智元推薦【新智元導讀】知乎專欄強化學習大講堂作者郭憲博士開講《強化學習從入門到進階》,我們為您節選了其中的第二節《基於gym和tensorflow的強化學習算法實現》,希望對您有所幫助。同時,由郭憲博士等擔任授課教師的深度強化學習國慶集訓營也將於 10 月 2 日— 6 日在北京舉辦。