在12月4日正式開幕的人工智能頂會NeurIPS 2018上, 網易伏羲AI實驗室組織舉辦了主題爲“Make Reinforcement Learning in Touch with Industry”的Expo Workshop,邀請了多位學術界和產業界著名專家學者共同探討強化學習落地產業應用的相關進展。

研討會上,伏羲實驗室提出並實現了一種新的強化編程(Reinforced Programing)框架, 能夠讓沒有任何強化學習背景知識的使用者將強化學習算法應用到現實問題。該框架是對傳統編程的增強,讓使用者能夠以調用一種可學習函數的方式使用強化學習;同時可方便的實現邏輯規則與強化學習的混合編程;另外該框架還提供了可視化的流程圖前端工具和集成各種算法的後端雲平臺,能夠更加快捷地實現上述編程模式。

在該工作中,南京大學LAMDA實驗室的俞揚教授團隊與伏羲團隊建立了合作,並計劃將該框架用於星際AI和基於環境建模的模仿學習研究中。目前,該框架已經在多款網易的遊戲中應用,並計劃和氪信科技一起將其推廣到金融領域。

深度強化學習在遊戲中的應用

隨着李世石與AlphaGO的巔峯對決,強化學習爲越來越多的人所知曉。強化學習(Reinforcement Learning,RL)是機器學習中的一個重要分支,智能體(Agent)通過與環境不斷交互學習如何進行連續決策。Agent從環境中獲取狀態(State),決策要做的動作,並得到環境反饋(Reward),逐漸學會更好的策略(Policy),從而最大化自己的收益。

Agent需要從環境中學習,而在遊戲中使用強化學習有着許多天然的優勢。其具有更快的模擬加速更少的安全顧慮,以及可控且可複製的環境。目前大量強化學習的研究工作在遊戲環境中進行,Atari、圍棋和Dota等,都被用來進行強化學習算法的驗證,並且取得了很好的效果。

(圖1 強化學習發展歷程)

網易伏羲實驗室是國內首家專業遊戲AI研究機構,願景是“以人工智能技術點亮遊戲未來”,希望運用人工智能的尖端技術爲玩家營造新世代的遊戲體驗,同時藉助遊戲平臺的海量數據和仿真環境,推動人工智能技術的發展。

在過去的一年多時間裏,伏羲實驗室也嘗試將深度強化學習(DRL)應用於遊戲產業。目前已在網易的多款自研產品中取得成果並上線,涵蓋籃球、動作、休閒及MMORPG等衆多品類。比如在潮人籃球這款遊戲中,3V3模式3個AI Bot勝率達82%,2個AI與1個玩家人機合作勝率達70%。

強化編程框架的突破之處

具體來說,網易伏羲實驗室提出的這個編程框架可以解決以下四點強化學習算法在產業界落地的問題:

第1, 知識依賴。RL理論有一定學習成本,如馬爾科夫決策過程(MDP)、智能體(Agent)、各種RL算法等。新框架希望最終將學習成本降至最低,在傳統編程的基礎上,將函數概念擴展成可學習的“神經網絡函數”,並引入關聯收益的概念。

第2, 複雜性。現實中產業應用問題通常更加複雜,當前階段不引入領域先驗知識只靠RL很難求解。基於此,新框架強調引入混合編程的方式,靈活的支持邏輯規則與神經網絡混合,並可以實現多網絡之間的協同訓練。

第3, 場景多變。相對於固定的一些研究場景,產業應用中場景更加豐富多變。新框架設計了一套可視化的流程圖前端工具,對問題進行解耦,應對需求定製及快速迭代。具體的業務導出底層接口,由流程圖來便捷的組織上層邏輯,進行混合編程。

第4, 計算及數據量大,產業應用中問題的複雜性同樣帶來更大的計算量及樣本量需求,這裏伏羲實驗室的解決方案是提供一整套後端雲平臺。

另外,開發團隊也通過一系列實驗對比證明了這幾項突破。首先,使用該框架在Atari遊戲上進行了驗證。下圖爲Pong的流程圖和訓練效果

(圖2:Pong遊戲訓練流程圖)

(GIF 圖3:Pong訓練效果)

然後,爲了驗證混合編程和多網絡編程的優勢,開發團隊基於1v1對戰遊戲的戰鬥場景設置了三組對比實驗。在訓練場景中,Agent包含數十種技能,通過流程圖的方式可以引入專家經驗,也可以對訓練模型進行分層。實驗設置如下:

實驗1爲未經任何處理的端到端模型,探索空間巨大。

實驗2爲單個神經網絡與專家知識的混合編程模型,神經網絡選擇上層策略,底層策略採用規則實現。

實驗3爲結合經驗的分層神經網絡模型,在這裏,上層策略與底層策略都由神經網絡實現。

(圖4:端到端模型、混合編程模型與分層模型)

最終實驗結果顯示:藍色線條爲端到端的模型,效果最差;紅色的爲網絡加規則的混合模型一開始上升很快,且始終優於藍色;綠色線條爲分層模型,最初低於紅色,但在後續訓練過程中逐漸變成收益最高的一條曲線。驗證了複雜問題中混合編程與分層網絡訓練的優勢。

(圖5:實驗結果對比)

此外,開發組還將新該框架應用到一款籃球遊戲產品,以多網絡的方式實現了籃球遊戲內的AI設計。通過流程圖實現attack、defense、ball clear、free ball四個網絡的建模。視頻中增加attack網絡的訓練模型,編輯對應的神經網絡,並調用RL插件接口,在Web前端爲訓練申請相應的計算資源,配置算法參數進行訓練。

下方視頻中可以看到四個網絡的訓練隨着機器人的狀態進行切換。這是實際生產環境利用RL平臺進行訓練的一個案例。

(圖6:伏羲強化編程框架)

回到理論層面,整個框架首先提供了一個面向業務方的流程圖工具,以流程圖的形式對強化學習問題進行建模,並嵌入到各種類型的業務產品中,實現與環境交互。自動生成代碼,目前支持lua、python、C#、C++語言,具有調試功能。同時提供一個基於完整計算集羣的容器雲平臺,將各種RL算法(DQN、A3C、Impala等)通過容器化的方式進行封裝,支持所有主流的深度學習框架(TensorFlow、Mxnet、PyTorch等)。基於RPC連接環境和訓練集羣,並對客戶端獲取的數據進行有效地封裝和轉發,同時將服務器產生的策略返回給客戶端,組包在服務器端進行。網易伏羲實驗室還提供了一套完整的SDK方案,在平臺上完成訓練後,可以方便地將訓練結果導出,部署到服務器或客戶端。最後可以通過一個Web控制前端,查看訓練數據及效果、規劃計算資源、改進訓練方案,從而提升工作效率。

爲了實現更高效的資源分配,服務端劃分爲Gateway、Actor、SamplePool、Trainer等模塊。其中Actor可以根據訓練的負載情況進行動態擴展,而Trainer也可以在訓練過程中自由地進行配置修改和數量增減。

(圖7:後端框架)

據網易方面透露,框架中前端強化學習模塊的接口說明,多網絡協同訓練及樣本組包算法後續將會有更詳細介紹。整個框架也有規劃進行開放及開源。

網易助推新研究成果更快落地

網易伏羲實驗室提出的強化編程框架,定位是幫助產業界更靈活有效地使用強化學習方法。面對複雜問題,有明確經驗的地方可直接用邏輯表達,不明確的地方可以使用RL算法學習,讓新的研究成果也能更快在產業界落地。目前,該框架也有很多後續工作在進行,如集成AutoML、支持模仿學習等。網易方面表示,希望這套強化編程框架不斷改進變得更加通用,未來幫助用戶解決更多實際問題。同時也歡迎各界積極交流、探討,共同推進AI技術發展。

查看原文 >>
相關文章