用C+實現強化學習,速度不亞於Python,這裡有個框架可用
乾明 發自 凹非寺
量子位 報道 | 公眾號 QbitAI
沒法用Python,怎麼實現強化學習?
現在,有了一個新選擇。
一位名叫Isaac Poulton的英國小哥,開源了一個名為CppRL的C 強化學習框架。
整個框架,用PyTorch C 編寫而成,主要的使用場景,就是在沒法使用Python的項目中實現強化學習。
現在,這個框架已經可以實現A2C(Advantage Actor Critic)、PPO(近端策略優化)演算法。
而且,用戶只需要很少的設置,就能夠在電腦的桌面程序中使用。
小哥說,之所以做這個框架,是因為C 中還沒有一個通用的強化學習框架。
但自己的個人項目中需要一個,就借著PyTorch C 前端的發布,做了一個出來,還順便訓練了一批LunarLander-v2遊戲中的智能體。
框架有何特性?用起來效果如何?
根據小哥的介紹,這個框架一共有五大特性:
首先,它能夠實現強化學習中很關鍵的兩個演算法A2C和PPO。
其次,支持基於門控循環單元(GRU)的循環策略。
第三,具備跨平台兼容性,已經在Windows 10和Ubuntu 16.04和Ubuntu 18.04上進行了測試。
第四,有可靠的測試覆蓋率。
第五,能夠適度進行優化,可以開放PR來推進框架優化。
此外,框架中還有對OpenAI Gym的實現,其通過ZeroMQ通信來測試框架在Gym環境中的表現。
基於當前的版本的框架,小哥在自己的筆記本電腦(i7-8550處理器)上,平均用60秒訓練一個智能體就可以獲得200獎勵。在登月遊戲LunarLander-v2中實現的效果如下:
這8個智能體中,有5個智能體完成了任務。
在回答Reddit上網友的提問時,他介紹了訓練智能體的速度,基本上和用Python實現速度相當。
但是,在一些環境中速度會比較慢。比如OpenAI Gym客戶端中,必須要與Python介面,並通過TCP發送觀察結果,所以訓練速度會大幅下降。
不過,小哥說會通過重做Gym客戶端來解決這個問題。
這一框架未來會如何?
小哥表示,要把它打造成一個可擴展的、經過合理優化的、隨時可以使用的框架。
在Reddit的帖子中,他也發起了呼籲,如果你有興趣來一起完成這一項目,非常歡迎提交PR~
傳送門
C 強化學習框架項目地址:
https://github.com/Omegastick/pytorch-cpp-rl
—完—
活動報名|多模態視頻人物識別
訂閱AI內參,獲取AI行業資訊
加入社群
量子位AI社群開始招募啦,量子位社群分:AI討論群、AI 行業群、AI技術群;
歡迎對AI感興趣的同學,在量子位公眾號(QbitAI)對話界面回復關鍵字「微信群」,獲取入群方式。(技術群與AI 行業群需經過審核,審核較嚴,敬請諒解)
喜歡就點「好看」吧 !
※Python機器學習資源菜單,選庫找工具不愁,GitHub精選列表都在這裡了
※禾多科技拿下首張高速自動駕駛路測牌照,低線激光雷達方案,劍指量產
TAG:量子位 |