迷霧探險12 | RL的開源庫

推薦RL開源庫

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

  • 主流開源強化學(xué)習(xí)框架推薦如下。提供的強化學(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(一個類似于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 的實現(xiàn)了經(jīng)典的(深度) 強化學(xué)習(xí)算法
  • OpenAI钞诡、DeepMind郑现,伯克利三個可以說是強化學(xué)習(xí)的推動者,其中OpenAI 為很多算法都寫了baselines荧降,放在github庫中供開發(fā)者學(xué)習(xí)參考接箫。
  • 提供兩個基準(zhǔn)測試
    (1)Example 1. PPO with MuJoCo Humanoid (1M timesteps)
    (2)Example 2. DQN on Atari (10M timesteps)
  • 實現(xiàn)多個算法
    • 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月推出的一個基于PaddlePaddle的靈活高效的強化學(xué)習(xí)框架钱反。
  • 特點:
    (1)Reproducible:可以穩(wěn)定地再現(xiàn)許多有影響力的強化學(xué)習(xí)算法的結(jié)果
    (2)Large Scale:能夠支持?jǐn)?shù)千個CPU和多GPU的高性能并行培訓(xùn)
    (3)Reusable:存儲庫中提供的算法可以通過定義轉(zhuǎn)發(fā)網(wǎng)絡(luò)直接適應(yīng)新任務(wù)掖看,并且將自動構(gòu)建培訓(xùn)機制匣距。
    (4)Extensible:通過在框架中繼承抽象類來快速構(gòu)建新算法。
  • 在agent的基礎(chǔ)上抽象了Model哎壳、Algrithm墨礁、Agent,方便遞歸構(gòu)建agent耳峦。
  • 目前實現(xiàn)的算法:QuickStart、DQN焕毫、DDPG蹲坷、PPO、Winning Solution for NIPS2018: AI for Prosthetics Challenge

Dopamine

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

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

特點

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

  • 可重現(xiàn)性
    可重現(xiàn)性在強化學(xué)習(xí)研究中的作用很重要郊尝。代碼通過了完整的測試覆蓋,這些測試用例也可作為某種形式的文檔使用战惊。此外流昏,其實驗框架遵循了 Machado 等人給出的使用 Arcade 學(xué)習(xí)環(huán)境標(biāo)準(zhǔn)化進(jìn)行經(jī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 個游戲的完整訓(xùn)練數(shù)據(jù)。還提供了一個網(wǎng)站刁绒,可以在上面快速查看所有的訓(xùn)練運行情況闷营。

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

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

TRFL

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

RLlab

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

Tensorforce

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

Coach

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

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

keras-rl

  • 集成深度學(xué)習(xí)庫Keras實現(xiàn)了一些最先進(jìn)的深度強化學(xué)習(xí)算法,可使用在Gym環(huán)境上梧油。
  • 目前實現(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ù)呀枢,得到下一時間步的狀態(tài)胚股、回報、是否結(jié)束裙秋。循環(huán)打印每輪的總回報和時間步數(shù)琅拌。如果總回報為正且時間步數(shù)較少,則表明我們的算法取得了較好的效果摘刑。

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


參考

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

附:一張不錯的對比圖

image.png

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末未玻,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子胡控,更是在濱河造成了極大的恐慌扳剿,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,207評論 6 521
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昼激,死亡現(xiàn)場離奇詭異舞终,居然都是意外死亡轻庆,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,455評論 3 400
  • 文/潘曉璐 我一進(jìn)店門敛劝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來余爆,“玉大人,你說我怎么就攤上這事夸盟《攴剑” “怎么了?”我有些...
    開封第一講書人閱讀 170,031評論 0 366
  • 文/不壞的土叔 我叫張陵上陕,是天一觀的道長桩砰。 經(jīng)常有香客問我,道長释簿,這世上最難降的妖魔是什么亚隅? 我笑而不...
    開封第一講書人閱讀 60,334評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮庶溶,結(jié)果婚禮上煮纵,老公的妹妹穿的比我還像新娘。我一直安慰自己偏螺,他們只是感情好行疏,可當(dāng)我...
    茶點故事閱讀 69,322評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著套像,像睡著了一般酿联。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上夺巩,一...
    開封第一講書人閱讀 52,895評論 1 314
  • 那天贞让,我揣著相機與錄音,去河邊找鬼柳譬。 笑死震桶,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的征绎。 我是一名探鬼主播蹲姐,決...
    沈念sama閱讀 41,300評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼人柿!你這毒婦竟也來了柴墩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,264評論 0 277
  • 序言:老撾萬榮一對情侶失蹤凫岖,失蹤者是張志新(化名)和其女友劉穎江咳,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哥放,經(jīng)...
    沈念sama閱讀 46,784評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡歼指,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,870評論 3 343
  • 正文 我和宋清朗相戀三年爹土,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片踩身。...
    茶點故事閱讀 40,989評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡胀茵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出挟阻,到底是詐尸還是另有隱情琼娘,我是刑警寧澤,帶...
    沈念sama閱讀 36,649評論 5 351
  • 正文 年R本政府宣布附鸽,位于F島的核電站脱拼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏坷备。R本人自食惡果不足惜熄浓,卻給世界環(huán)境...
    茶點故事閱讀 42,331評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望省撑。 院中可真熱鬧赌蔑,春花似錦、人聲如沸丁侄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,814評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鸿摇。三九已至,卻和暖如春劈猿,著一層夾襖步出監(jiān)牢的瞬間拙吉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,940評論 1 275
  • 我被黑心中介騙來泰國打工揪荣, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留筷黔,地道東北人。 一個月前我還...
    沈念sama閱讀 49,452評論 3 379
  • 正文 我出身青樓仗颈,卻偏偏與公主長得像佛舱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子挨决,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,995評論 2 361