當前位置:
首頁 > 科技 > 用C+實現強化學習,速度不亞於Python,這裡有個框架可用

用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:量子位 |