推薦RL開源庫
參考:https://www.zhihu.com/question/49230922
- 主流開源強化學(xué)習(xí)框架推薦如下。提供的強化學(xué)習(xí)算法較為全面荞怒,如Q-learning傀蓉、Sarsa芭届、DQN、PG郭变、DPG企垦、DDPG环壤、PPO等算法。
- OpenAI提供的Baselines:openai/baselines 6.6k stars(Gym環(huán)境)
- 百度提供的PARL:PaddlePaddle/PARL 0.2k stars 集成PaddlePaddle (Gym環(huán)境)
- 谷歌提供的Dopamine:google/dopamine 7.0k stars 集成TensorFlow(Gym環(huán)境)
- DeepMind提供的TRFL:deepmind/trfl 2.2k stars(Gym環(huán)境)
- 伯克利提供的RLlab:rll/rllab 2.0k stars(一個類似于Gym的工具包)
- reinforceio提供的Tensorforce:reinforceio/tensorforce 1.2k stars(Gym環(huán)境)
- Intel提供的Coach:NervanaSystems/coach 1.1k stars(Gym環(huán)境)
- 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)練運行情況闷营。
谷歌還提供利用這些智能體訓(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)境徐块。
附:一張不錯的對比圖
圖來源:https://zhuanlan.zhihu.com/p/60241809