迷霧探險(xiǎn)12 | RL的開源庫

推薦RL開源庫

參考:https://www.zhihu.com/question/49230922

  • 主流開源強(qiáng)化學(xué)習(xí)框架推薦如下。提供的強(qiáng)化學(xué)習(xí)算法較為全面,如Q-learning、Sarsa、DQN、PG、DPG、DDPG、PPO等算法。
  1. OpenAI提供的Baselines:openai/baselines 6.6k stars(Gym環(huán)境)
  2. 百度提供的PARL:PaddlePaddle/PARL 0.2k stars 集成PaddlePaddle (Gym環(huán)境)
  3. 谷歌提供的Dopamine:google/dopamine 7.0k stars 集成TensorFlow(Gym環(huán)境)
  4. DeepMind提供的TRFL:deepmind/trfl 2.2k stars(Gym環(huán)境)
  5. 伯克利提供的RLlab:rll/rllab 2.0k stars(一個(gè)類似于Gym的工具包)
  6. reinforceio提供的Tensorforce:reinforceio/tensorforce 1.2k stars(Gym環(huán)境)
  7. Intel提供的Coach:NervanaSystems/coach 1.1k stars(Gym環(huán)境)
  8. keras-rl:keras-rl/keras-rl 3.4k stars 集成深度學(xué)習(xí)庫Keras(Gym環(huán)境)

RL庫簡介

Baseline

  • 基于 OpenAI Gym 和 TensorFlow 的實(shí)現(xiàn)了經(jīng)典的(深度) 強(qiáng)化學(xué)習(xí)算法
  • OpenAI、DeepMind,伯克利三個(gè)可以說是強(qiáng)化學(xué)習(xí)的推動(dòng)者,其中OpenAI 為很多算法都寫了baselines,放在github庫中供開發(fā)者學(xué)習(xí)參考。
  • 提供兩個(gè)基準(zhǔn)測試
    (1)Example 1. PPO with MuJoCo Humanoid (1M timesteps)
    (2)Example 2. DQN on Atari (10M timesteps)
  • 實(shí)現(xiàn)多個(gè)算法
    • A2C、ACER、ACKTR、DDPG、DQN、GAIL、HER、PPO1 (obsolete version, left here temporarily)、PPO2、TRPO

PARL

  • 在成為NIPS2018的AI for Prosthetics Challenget挑戰(zhàn)賽第一名后,百度在2019年1月推出的一個(gè)基于PaddlePaddle的靈活高效的強(qiáng)化學(xué)習(xí)框架。
  • 特點(diǎn):
    (1)Reproducible:可以穩(wěn)定地再現(xiàn)許多有影響力的強(qiáng)化學(xué)習(xí)算法的結(jié)果
    (2)Large Scale:能夠支持?jǐn)?shù)千個(gè)CPU和多GPU的高性能并行培訓(xùn)
    (3)Reusable:存儲(chǔ)庫中提供的算法可以通過定義轉(zhuǎn)發(fā)網(wǎng)絡(luò)直接適應(yīng)新任務(wù),并且將自動(dòng)構(gòu)建培訓(xùn)機(jī)制。
    (4)Extensible:通過在框架中繼承抽象類來快速構(gòu)建新算法。
  • 在agent的基礎(chǔ)上抽象了Model、Algrithm、Agent,方便遞歸構(gòu)建agent。
  • 目前實(shí)現(xiàn)的算法:QuickStart、DQN、DDPG、PPO、Winning Solution for NIPS2018: AI for Prosthetics Challenge

Dopamine

  • 谷歌早2018年8月推出了一款全新的開源強(qiáng)化學(xué)習(xí)框架 Dopamine,該框架基于 TensorFlow,主打靈活性、穩(wěn)定性、復(fù)現(xiàn)性,能夠提供快速的基準(zhǔn)測試。包括:
    (1)一個(gè)基于 Arcade 學(xué)習(xí)環(huán)境(一個(gè)成熟的、易于理解的基準(zhǔn))
    (2)四種不同的機(jī)器學(xué)習(xí)模型:DQN、C51、簡化版的 Rainbow 智能體和 IQN(Implicit Quantile Network)四個(gè)基于值的代理 DQN、C51、Rainbow 代理的簡化版本以及隱式分位數(shù)網(wǎng)絡(luò)代理。

相比 OpenAI 的強(qiáng)化學(xué)習(xí)基準(zhǔn),Dopamine 更多關(guān)注 off-policy 方法。 為了實(shí)現(xiàn)可重復(fù)性,Github 代碼包括 Arcade Learning Environment 支持的全部 60 個(gè)游戲的完整測試和訓(xùn)練代碼,并遵循標(biāo)準(zhǔn)化經(jīng)驗(yàn)評(píng)估結(jié)果的最佳實(shí)踐。 除此之外,谷歌還推出了一個(gè)可視化網(wǎng)站,允許開發(fā)人員將訓(xùn)練中的多個(gè)智能體的運(yùn)行情況快速可視化。

特點(diǎn)

  • 易用性
    清晰和簡潔是這個(gè)框架的兩個(gè)關(guān)鍵設(shè)計(jì)考慮因素。
    代碼緊湊(大約 15 個(gè) Python 文件),并且有詳細(xì)的文檔。代碼簡潔,能夠讓研究人員輕松了解代理的內(nèi)部運(yùn)作并快速嘗試新的想法。

  • 可重現(xiàn)性
    可重現(xiàn)性在強(qiáng)化學(xué)習(xí)研究中的作用很重要。代碼通過了完整的測試覆蓋,這些測試用例也可作為某種形式的文檔使用。此外,其實(shí)驗(yàn)框架遵循了 Machado 等人給出的使用 Arcade 學(xué)習(xí)環(huán)境標(biāo)準(zhǔn)化進(jìn)行經(jīng)驗(yàn)評(píng)估的建議。

  • 基準(zhǔn)測試
    對于研究人員來說,能夠根據(jù)已有方法快速對想法進(jìn)行基準(zhǔn)測試是非常重要的。因此,Dopamine以 Python pickle 文件(用于使用我們的框架訓(xùn)練的代理)和 JSON 數(shù)據(jù)文件(用于與其他框架訓(xùn)練的代理進(jìn)行比較)的形式提供了受 Arcade 學(xué)習(xí)環(huán)境支持的 60 個(gè)游戲的完整訓(xùn)練數(shù)據(jù)。還提供了一個(gè)網(wǎng)站,可以在上面快速查看所有的訓(xùn)練運(yùn)行情況。

谷歌的 4 個(gè)智能體在 airraid游戲上的訓(xùn)練運(yùn)行。x 軸表示迭代,每個(gè)迭代是一百萬個(gè)游戲幀(實(shí)時(shí)游戲 4.5 小時(shí));y 軸是每次游戲獲取的平均分。陰影區(qū)域表示 5 個(gè)獨(dú)立運(yùn)行的置信區(qū)間

谷歌還提供利用這些智能體訓(xùn)練的深度網(wǎng)絡(luò)、原始統(tǒng)計(jì)日志以及用于 Tensorboard 可視化的 TensorFlow 事件文件。相關(guān)地址:https://github.com/google/dopamine/tree/master/docs#downloads

TRFL

  • TRFL(讀作「truffle」)一個(gè)用于在 TensorFlow 環(huán)境中開發(fā)強(qiáng)化學(xué)習(xí)智能體的代碼庫
  • DeepMind 自己用來開發(fā) DQN、DDPG 以及 IMPALA(重要性加權(quán)行動(dòng)者-學(xué)習(xí)者架構(gòu))等知名強(qiáng)化學(xué)習(xí)技術(shù)的許多關(guān)鍵算法組件都包含在其中。

RLlab

  • 伯克利大學(xué)和 openai 的學(xué)者開發(fā)的強(qiáng)化學(xué)習(xí)算法框架
  • 不是一個(gè)RL庫,而是與Gym類似一個(gè)比較完整的強(qiáng)化學(xué)習(xí)開源工具包。基于Theano。與OpenAI Gym的區(qū)別在于OpenAI Gym支持更廣泛的環(huán)境,且提供在線的scoreboard可以用于共享訓(xùn)練結(jié)果。
  • pytorch是一個(gè)python優(yōu)先的深度學(xué)習(xí)框架

Tensorforce

  • 強(qiáng)化學(xué)習(xí)組件開發(fā)者 reinforce.io 于2017年提出的一個(gè)開源深度強(qiáng)化學(xué)習(xí)框架,強(qiáng)調(diào)模塊化靈活的庫設(shè)計(jì)和直觀的可用性。
  • 構(gòu)建于Google的TensorFlow框架之上,與Python 3兼容(Python 2支持在0.5版本中刪除)
  • 特點(diǎn):
    (1)基于模塊化組件的設(shè)計(jì):功能實(shí)現(xiàn)盡可能地普遍適用和可配置。
    (2)RL算法和應(yīng)用的分離:算法與輸入(狀態(tài)/觀察)和輸出(動(dòng)作/決策)的類型和結(jié)構(gòu),與應(yīng)用環(huán)境的交互無關(guān)。
    (3)Full-on TensorFlow模型:整個(gè)強(qiáng)化學(xué)習(xí)邏輯(包括控制流)在TensorFlow中實(shí)現(xiàn),以實(shí)現(xiàn)獨(dú)立于應(yīng)用程序編程語言的便攜式計(jì)算圖形,并促進(jìn)模型的部署。
  • 通過配置文件快速運(yùn)行不同的算法
python examples/openai_gym.py CartPole-v1 --agent examples/configs/ppo.json --network examples/configs/mlp2_network.json
  • 支持DDPG和PPO等算法的實(shí)現(xiàn),詳見配置文件tensorforce/examples/configs/

Coach

  • Intel 收購的 Nervana 公司(還開發(fā)了Neon) 推出的強(qiáng)化學(xué)習(xí)框架
  • Coach包含一些領(lǐng)先的增強(qiáng)學(xué)習(xí)算法的多線程實(shí)現(xiàn),可以方便地實(shí)現(xiàn)并行算法,充分利用cpu gpu多核。
  • 主要針對2016年以來許多算法通過在許多CPU內(nèi)核中并行運(yùn)行多個(gè)實(shí)例,能夠更快地實(shí)現(xiàn)更好的策略。包括A3C 、DDPG、PPO、DFP和NAF等。
  • 所有的算法都是使用英特爾優(yōu)化的TensorFlow來實(shí)現(xiàn)的,也可以通過Intel的neon?框架來實(shí)現(xiàn)。
  • Coach可與如OpenAI Gym、Roboschool和ViZDoom等頂級(jí)環(huán)境進(jìn)行集成
  • 可視化調(diào)試工具:Intel還發(fā)布了Coach Dashboard作為可視化和調(diào)試的補(bǔ)充工具。Dashboard是Coach的一個(gè)圖形用戶界面,通過展示訓(xùn)練過程中的不同信號(hào),可以讓用戶以簡單易懂的方式比較不同方式運(yùn)行的訓(xùn)練質(zhì)量。在訓(xùn)練期間,Coach可跟蹤任何有意義的內(nèi)部信息并存儲(chǔ),以便在執(zhí)行期間和完成后可視化進(jìn)度。

圖片來源:雷鋒網(wǎng)

keras-rl

  • 集成深度學(xué)習(xí)庫Keras實(shí)現(xiàn)了一些最先進(jìn)的深度強(qiáng)化學(xué)習(xí)算法,可使用在Gym環(huán)境上。
  • 目前實(shí)現(xiàn)的算法:
    (1)Deep Q Learning (DQN)
    (2)Double DQN
    (3)Deep Deterministic Policy Gradient (DDPG)
    (4)Continuous DQN (CDQN or NAF)
    (5)Cross-Entropy Method (CEM)
    (6)Dueling network DQN (Dueling DQN)
    (7)Deep SARSA

RL庫使用方法

  • 如果是以gym為基礎(chǔ)的RL庫,用起來更便于對比,畢竟環(huán)境一致

  • 直接import開源庫,并調(diào)用其API

  • 包括兩部分
    (1)訓(xùn)練部分:初始化算法需要的參數(shù),比如學(xué)習(xí)率,steps,episode以及他們的最大值
    (2)測試部分:act接受當(dāng)前狀態(tài)obs后給出action,將其傳給環(huán)境的step()函數(shù),得到下一時(shí)間步的狀態(tài)、回報(bào)、是否結(jié)束。循環(huán)打印每輪的總回報(bào)和時(shí)間步數(shù)。如果總回報(bào)為正且時(shí)間步數(shù)較少,則表明我們的算法取得了較好的效果。

  • 測試基準(zhǔn)
    (1)在連續(xù)控制場景主要用mujoco環(huán)境游戲來評(píng)估,在離散控制場景主要用atatri環(huán)境評(píng)估,也有一些其他環(huán)境。
    (2)Mujoco(1M時(shí)間步長)和Atari(10M時(shí)間步長)
    (3)評(píng)估指標(biāo)主要看分?jǐn)?shù)還有steps。


參考

知乎上的RL開源項(xiàng)目:
https://www.zhihu.com/question/49230922

開源RL庫推薦(最下面)
https://github.com/aikorea/awesome-rl/tree/master

參考https://www.itcodemonkey.com/article/3646.html


其他

  • OpenAi universe
    openai 開發(fā)的開源人工智能軟件平臺(tái) 1000 多個(gè)環(huán)境
    可以讓一個(gè)程序變?yōu)閛penai gym 環(huán)境,將程序封裝成docker 容器
    https://github.com/openai/universe
    模擬很多的游戲場景
  • DeepMind Lab
    DeepMind 發(fā)布的 3d強(qiáng)化學(xué)習(xí)平臺(tái)
    最初是DeepMind 內(nèi)部使用 之后開源了
    https://github.com/deepmind/lab
    模擬一些走迷宮之類的3d實(shí)驗(yàn)環(huán)境。

附:一張不錯(cuò)的對比圖

image.png

圖來源:https://zhuanlan.zhihu.com/p/60241809

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,156評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,401評(píng)論 3 415
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,069評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,873評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,635評(píng)論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,128評(píng)論 1 323
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,203評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,365評(píng)論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,881評(píng)論 1 334
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,733評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,935評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,475評(píng)論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,172評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,582評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,821評(píng)論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,595評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,908評(píng)論 2 372