1. 程式人生 > >開源啦:連DeepMind也捉急的遊戲,OpenAI給你攻破第一關的高分演算法

開源啦:連DeepMind也捉急的遊戲,OpenAI給你攻破第一關的高分演算法

圓栗子 發自 凹非寺 
量子位 出品 | 公眾號 QbitAI

寫作“很好奇”,讀作“不怕死”。

640?wx_fmt=gif

 佛系操作

打遊戲的時候,有些平淡的操作,還沒執行就看得到結果

比如玩馬里奧,可以不去踩敵人,一路往前跳。

可是,沒試過怎麼知道,哪些敵人可以踩?

一扇門,不推開怎麼知道里面是什麼?

640?wx_fmt=gif

 就是死,也要進去看一眼 (來自山下智博)

人類玩家有好奇心,大概AI也要有好奇心比較好。

OpenAI想要鼓勵強化學習AI,去探索未知的世界,不要侷限在已知的舒適區。

於是,團隊推出了一種方法,叫做“隨機網路蒸餾 (Random Network Distillation, RND

) ”,專注培養AI的好奇心:隱藏房間什麼的,只有好奇的AI才能發現。

當然,這方法不止用來打馬里奧,不然就屈才了。

640?wx_fmt=gif

 蒙特祖瑪的復仇

用RND加持的演算法打蒙特祖瑪的復仇 (最難的雅達利遊戲,可稱強化學習AI的噩夢),智慧體逃出了第一關的全部24個房間,成績遠遠超過人類的平均分數 (4.7k) ,以及現有最前沿的演算法。

鼓勵探索,當然是用高額獎勵

RND是一種基於預測的方法。

給每一個備選的動作,預測一下結果:

如果,結果非常容易預測,獎勵分就偏低。

結果越難預測,就表示越“未知”,獎勵分也越高。

640?wx_fmt=gif

 第一次離開家,並不知道外面的危險 (還是來自山下智博)

重賞之下,AI探索新世界的意願就會更強了。

不過,預測結果有個難點,叫做嘈雜電視問題 (Noisy-TV Problem) :

舉個栗子,在一個迷宮遊戲裡,擺一臺“電視”,播放隨機頻道。

640?wx_fmt=gif

走到電視裡面前,智慧體就停下來不走了。

640?wx_fmt=gif

一旦沒有了“電視”,智慧體又能正常玩耍了。

是預測受到了干擾。

為了避免這樣的干擾,團隊定義了預測誤差的三個因素

一號因素,預測誤差很高,預測器無法從之前看到的例子中泛化。後面的經歷會受到高預測誤差的影像。

二號因素,預測誤差很高,因為預測目標是隨機 (Stochastic) 的。

三號因素,預測誤差很高,因為缺少必要資訊,或者預測器模型的侷限性太大,無法適應複雜的目標函式。

OpenAI團隊判斷,一號是必要的,因為它把新穎程度量化了,二號和三號則需要竭力避免。

RND就是為了避免這兩個因素,而誕生的探索獎

640?wx_fmt=png

上圖是傳統預測RND預測的對比。

避免二號因素,就要讓神經網路給出確定性的答案,而不是給出多個答案和它們各自的可能性;

避免三號因素,就要選擇和目標網路相同的架構。

640?wx_fmt=gif

對蒙特祖瑪的復仇來說,這樣特殊的獎勵機制尤其必要:

如果是一般的遊戲,簡單的探索策略就夠用了,但蒙特祖瑪裡面,除了拿到鑰匙有獎勵、碰到骷髏會死之外,其餘都是0,AI很難感受到遊戲規則,也不易學到有用的經驗。

加重探索獎,才能讓AI更加理解遊戲

團隊表示,RND不止蒙特祖瑪的復仇適用,馬里奧等等其他遊戲也適用。以及,越過遊戲範疇,更加廣泛的強化學習AI也都可以用這個方法,讓智慧體對新鮮事物更好奇。

好奇的寶寶成績好

從最簡單的雅達利打磚塊開始觀察。

640?wx_fmt=gif

 磚塊排列發生變化,獎勵就會達到峰值

內在獎勵,指探索獎;

外在獎勵,指遊戲中直接體現的獎勵,如遊戲分值。

每當智慧體打下一塊磚,磚塊有了新的排列格式,內在獎勵就會達到峰值 (訓練伊始) 。

當它首次通過第一關的時候,內在獎勵也達到了峰值 (訓練數小時後) 。

再看超級馬里奧。

內在目標外在目標已經基本一致了。

智慧體通過了11關,找到了許多隱藏的房間,並打敗了庫巴大魔王

接下來,就是蒙特祖瑪的復仇。

最好成績,當然是24個房間都攻破,順利通過第一關,得分17.5k

並且,多數情況下,智慧體都能解鎖20-22個房間,得分14.5k

對比一下,人類平均分是4.7k

有程式碼,有論文

現在,OpenAI已經把RND開源了,可以從傳送門前往瞻仰:

https://github.com/openai/random-network-distillation

還有,論文也公開了:

https://arxiv.org/pdf/1810.12894.pdf

部落格在這裡:

https://blog.openai.com/reinforcement-learning-with-prediction-based-rewards/

640?wx_fmt=gif

 吃蘑菇,變成彈簧 (依然來自山下智博)

加入社群

量子位AI社群開始招募啦,歡迎對AI感興趣的同學,在量子位公眾號(QbitAI)對話介面回覆關鍵字“交流群”,獲取入群方式;


此外,量子位專業細分群(自動駕駛、CV、NLP、機器學習等)正在招募,面向正在從事相關領域的工程師及研究人員。


進專業群請在量子位公眾號(QbitAI)對話介面回覆關鍵字“專業群”,獲取入群方式。(專業群稽核較嚴,敬請諒解)

活動策劃招聘

量子位正在招聘活動策劃,將負責不同領域維度的線上線下相關活動策劃、執行。歡迎聰明靠譜的小夥伴加入,並希望你能有一些活動策劃或運營的相關經驗。相關細節,請在量子位公眾號(QbitAI)對話介面,回覆“招聘”兩個字。

640?wx_fmt=jpeg

量子位 QbitAI · 頭條號簽約作者

վ'ᴗ' ի 追蹤AI技術和產品新動態