人人能上手:OpenAI發射初學者友好的強化學習教程 | 程式碼簡約易懂
栗子 發自 凹非寺
量子位 出品 | 公眾號 QbitAI
OpenAI說,全無機器學習基礎的人類,也可以迅速上手強化學習。
他們剛剛發射了一套強化學習 (RL) 入門教程,叫做Spinning Up。真誠友好,無微不至。
從一套重要概念,到一系列關鍵演算法實現程式碼,再到熱身練習,每一步都以清晰簡明為上,全程站在初學者視角。
△ 新手光環
團隊表示,目前還沒有一套比較通用的強化學習教材,RL領域只有一小撮人進得去。這樣的狀態要改變啊,因為強化學習真的很有用。
說不定你也用得上。所以,仔細翻翻這個新手包,看看到底有多關懷:
五大核心
Spinning Up包含了5個重要部分。
第一部分,認識一下強化學習
這裡分為三小步:
一是瞭解基礎概念,即知道RL能用來做什麼,理解概念和術語。
二是瞭解演算法分為哪些種類。
三是瞭解策略優化。
https://spinningup.openai.com/en/latest/spinningup/rl_intro.html
第二部分,成為RL研究人員
(此部分可選擇性忽略)
如何讓自己習慣RL研究人員的新設定?
第一,知道哪些數學知識深度學習知識,是需要簡要了解的。
第二,在實踐中學習,寫最最最簡單的實現 (後面有程式碼) ,注重理解。
第三,有了小小的經驗之後,試著開發自己的研究專案。這是入門之後的事了。
第四之後,有些遙遠,暫時不詳述了。
第三部分,論文閱讀清單
這個論文列表非常詳細,分為12個小類別,每個類別下有2-8篇論文。
團隊說,列表比全面還全面,足夠給一個想做RL研究的人類鋪路了。
https://spinningup.openai.com/en/latest/spinningup/keypapers.html
第四部分,為初學者定製的程式碼
GitHub上面有個叫spinningup的專案,包含了強化學習能用到的各種關鍵演算法:
VPG、TRPO、PPO、DDPG、TD3和SAC等。
團隊說,這裡的程式碼都是為初學者定製,很短很好學。比起模組化,Spinning Up以清晰為重,程式碼都註釋過
目標就是用最簡約的實現,來演示一條理論是如何變成程式碼的,而抽象層和混淆層(Layers of Abstraction and Obfuscation) 這些東西,都省去了。
https://github.com/openai/spinningup
第五部分,熱身練習
這裡有兩個習題集。
一是關於實現的基礎,二是關於演算法失效模式。
後面還有附加題,是要從零開始自己寫程式碼實現,相對艱辛。
https://spinningup.openai.com/en/latest/spinningup/exercises.html
Hello World
團隊說,要感受強化學習是怎樣運作的,最好的方式是跑一跑。
在Spinning Up裡面,就很容易,只要用這段程式碼:
1python -m spinup.run ppo --env CartPole-v1 --exp_name hello_world
訓練結束的時候,你會看到說明,然後可以按照裡面講的方法來觀察資料,也觀察訓練好的智慧體的視訊。
另外,Spinning Up裡面的實現,和一系列Gym環境都相容:Classic Control,Box2D,MUJOCO等等。
去吧,皮卡丘
看上去,好像真的沒有很難。
OpenAI就是希望其他領域的研究人員,也能很輕易地用強化學習來輔助研究。
所以,試一下吧。
教程入口:
https://spinningup.openai.com/en/latest/index.html
GitHub傳送門:
https://github.com/openai/spinningup
— 完 —
年度評選申請
加入社群
量子位AI社群開始招募啦,歡迎對AI感興趣的同學,在量子位公眾號(QbitAI)對話介面回覆關鍵字“交流群”,獲取入群方式;
此外,量子位專業細分群(自動駕駛、CV、NLP、機器學習等)正在招募,面向正在從事相關領域的工程師及研究人員。
進專業群請在量子位公眾號(QbitAI)對話介面回覆關鍵字“專業群”,獲取入群方式。(專業群稽核較嚴,敬請諒解)
活動策劃招聘
量子位正在招聘活動策劃,將負責不同領域維度的線上線下相關活動策劃、執行。歡迎聰明靠譜的小夥伴加入,並希望你能有一些活動策劃或運營的相關經驗。相關細節,請在量子位公眾號(QbitAI)對話介面,回覆“招聘”兩個字。
量子位 QbitAI · 頭條號簽約作者
վ'ᴗ' ի 追蹤AI技術和產品新動態