關於RL強化學習的研究


https://www.zhihu.com/question/65064314/answer/1868894159

我是半路出家自學的機器學習和強化學習,以下僅分享我能接觸到的強化學習/RL的知識(可能學院派的看到的會不一樣)

基礎部分:

《Reinforcement Learning:An Introduction》--Sutton老爺子的傑作,網上有英文電子版和已出版的中文版;

強化學習(第2版) 京東

另附上當時我自己的學習筆記,應該可以幫助到你:

【機器學習筆記】強化學習概述 - 知乎 (zhihu.com)

進階的課程:

【官方授權】【中英雙語】2019 UC 伯克利 CS285 深度強化學習_嗶哩嗶哩 (゜-゜)つロ 干杯~-bilibili

 

資源、代碼:

善用google(scholoar), axiv網站--搜的時候盡量用英文;

所有你能看到有實例代碼的論文網站:Browse the State-of-the-Art in Machine Learning | Papers With Code(找到“Playing Game”這一欄就是強化學習的部分)

 

研究方向選擇:

先附上當時我歸納的一個思維導圖每一個分支都可以是一個研究方向。

具體的,要我說的話,可以有以下幾點:

1.理論部分的研究: 我們知道,rl學習方法本身是基於動態規划的2大分支,一個是值迭代(Value Iteration),另一個是策略迭代(Policy Iteration)---二者都是可理論保證收斂至最優的。但是加入深度學習后(簡稱DRL,即深度強化學習),情況就有些撲朔迷離了,值迭代的DQN, ALphaZero的蒙特卡洛樹用的策略迭代,以及DRL特有的策略梯度(Policy Gradient),如A2C、A3C\PPO\soft Actor Critic----這些“深度”的方法如何保證它能收斂至最優呢? 初代的AlphaGo用的是策略梯度來學習模型的,可從第二代ALphaGo Zero開始就換成了策略迭代,這二者理論上學習效率上有什么區別呢? 這些都可以是你的研究方向!

2.RL學習效率的研究:如何又快又好地學習到某個環境的策略是RL實踐層面的根本目標。基於此,又可以從方法上分成以下幾個方面:

2.1 model free vs model based: model free易於理解,且不需要知道環境的model,但學習效率太差,而model based 則反之。給定一個陌生的環境,如何又快又好地學習到model成為了提升學習效率的根本目標。這方面環境model該如何學習,又是個大坑,如alphazero的最新一代Muzero是直接在用蒙特卡洛樹規划時就順便把環境模型給學出來的,參考:When to Trust Your Model: Model-Based Policy Optimization

2.2 .explore vs exploitation: 探索與利用一直就是個學習機制的核心問題。什么時候該探索,學到什么時候該利用?在RL語境中,就是給定每個state,到底該選擇最優action還是隨機的action,這個隨機又有多隨機呢? 而這里的”時候“即可能需要考慮當前的state,又需要考慮到agent策略目前學習的進度。 針對每個state,DQN是用的e-greedy這種固定概率的機制,而象Soft Actor Critic這類則基於策略梯度的則直接從策略網絡的aciton分布抽樣來采樣每個state的action來作為其探索利用的機制。另外GO-EXPLORE的作者們則認為應該針對某些state進行完全的利用,而其他的一些state可以用action分布來采樣。那對於探索和利用,到底怎樣的一種分配制度才是最優的呢,這又是個研究方向。

2.3 sparse reward issue: 現實中,有些環境我們只知道最終state怎么樣是好的,怎樣是壞的,但對於中途的state到底是好是壞沒有准確的概念,如各種棋類游戲,賽車等。 那怎么定義這些中途的reward呢? 全部定位為0,則agent會學不到知識,因為一直沒有反饋。 可通過分層強化學習HER或者一些其他方法(如上述的GO-explore,alphaGo之類的蒙特卡洛樹規划, rudder)來做。

3.可解釋性:這個嚴格來說不算是DRL特有的,但既然用到了深度學習,這也可以是個研究方向,畢竟如果你用DRL學了個自動駕駛的agent,1.自己肯定不敢坐,2.萬一在某個state出了問題,貌似也不知如何”針對性“調整。 參考:Evolutionary learning of interpretable decision trees | Papers With Code

4.非RL的學習方法:若只是希望找到一個最優策略,未必需要用到RL,如可以用Evolutionary Algorithms (EAs) 或利用遺傳算法的NEAT

5.網絡模型的改進:RL要求state是具有馬爾可夫性的,但實際情況並非如此。如谷歌的DQN中為了緩解這個問題將相鄰的4幀畫面作為一個state,但仍有局限性,那如果把帶有記憶的RNN LSTM TRANFORMER等網絡模型加入會如何呢?Adaptive Transformers in RL ;

6.IT架構層面的優化:DRL難免是要同時用到CPU和GPU的,GPU用來訓練agent模型,而cpu則用來產生訓練用數據,那如何每時每刻都榨干CPU和GPU的性能則是這個領域需要考慮的問題。參考: 一條咸魚的強化學習之路8之並行AC框架(A3C & G-A3C & PAAC) - 知乎 (zhihu.com)

Accelerated Methods for Deep Reinforcement Learning

7. action相關: 若是某些state的某些action是無效的,該怎么排除這些action呢?A Closer Look at Invalid Action Masking in Policy Gradient Algorithms; 若是有些環境輸出既需要離散的action又需要連續的action怎么處理呢(如自動駕駛中既需要選擇是踩油門或者剎車,同時有需要決定踩多深)?Discrete and Continuous Action Representation for Practical RL in Video Games

8.multi-agent RL: 這領域是個大坑。因為所有單agent有的問題它都有,並需要額外考慮多agent交互的問題。(這個領域我不熟,做實驗的話一般也只有大公司玩得起)

最后一點,作為科班的研究方向,有個很實際的問題就是你研究的方向得是你老板喜歡的(至少是允許的),若是實驗性質的研究還得保證你能找的到合適的gpu服務器去跑,我個人最推薦的方法是租個雲服務器(如 極客雲服務器,華為雲,騰訊雲等),若是理論性質的得保證你及你的導師有較強的數學理論基礎。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM