促進強化學習落地產業界:網易推出強化程式設計框架
人工智慧頂會NeurIPS 2018正在如火如荼的進行著,並且首次在第一天增加了Expo Workshop。一共有十家公司有幸拿到了組織workshop的機會,其中中國有四家,分別是阿里巴巴,百度,Pony.AI和網易。其中,AI方面一向低調的網易首次公佈了自主研發的創新性強化程式設計(Reinforced Programing)框架。下面我們就一起了解下網易在NeurIPS 2018的Workshop,以及這個強化程式設計框架吧。
Workshop簡介
隨著李世石與AlphaGO的巔峰對決,強化學習為越來越多的人所知曉。強化學習(Reinforcement Learning,RL)是機器學習中的一個重要分支,智慧體(Agent)通過與環境不斷互動學習如何進行連續決策。Agent從環境中獲取狀態(State),決策要做的動作(Action),並得到環境反饋(Reward),逐漸學會更好的策略(Policy),從而最大化自己的收益。換句話說,強化學習可以通過人機訓練或者自我學習,不斷進步,找到解決問題的最佳方法。隨著強化學習的爆發性進展,它也被大家寄予了越來越大的期望。


強化學習發展歷程
既然強化學習這麼厲害,已經在棋類遊戲中打遍人類無敵手。是不是之後所有的事情就可以交給強化學習讓機器自己來學習了呢?其實大部分強化學習的研究都還侷限在學術界,如何把強化學習落地到實踐中來依舊是個非常大的難題,受著很多條件的限制。因此網易伏羲AI實驗室組織舉辦了主題為“Make Reinforcement Learning in Touch with Industry”的Expo Workshop來討論如何更好的讓強化學習應用到產業界中來。在Workshop中,網易除了公佈自主研發的強化程式設計框架外,還邀請了南京大學的俞揚教授,天津大學的郝建業教授,氪信科技的CEO朱明傑博士,和滴滴AI實驗室強化學習組負責人秦志偉博士等多位學術界和產業界著名專家學者共同探討強化學習落地產業應用的相關進展。
強化程式設計框架
強化學習之所以難在產業界落地,主要有以下幾個問題:
1.知識依賴:強化學習這麼前沿,對理論深刻理解的人自然少之又少,而僅僅想做應用也必需掌握一些基本的理論概念。
2. 現實場景的複雜性和多變性:學術研究是把問題簡單和抽象化,而現實中產業應用問題通常更加複雜,需要結合大量的先驗知識,而且場景豐富多變。
3.計算及資料量巨大:產業應用中問題的複雜性同樣帶來更大的計算量及資料樣本量需求。
強化程式設計框架的設計也正是為了解決這幾個問題。在解決知識依賴的問題上,新框架希望最終將學習成本降至最低,在傳統程式設計的基礎上,創新性的將函式概念擴展出可學習的“神經網路函式”。也就是說,就算你不懂強化學習,你也可以像呼叫普通函式一樣簡單的呼叫神經網路函式,而且這個神經網路函式可以自我學習。在解決現實場景複雜性和多變性的問題上,新框架設計了一套視覺化的流程圖前端工具,可以快速設計及維護上層邏輯,應對複雜多變的場景需求;同時,新框架讓傳統程式設計和強化學習無縫銜接,靈活的支援邏輯規則與強化學習混合程式設計,並支援多網路的協同訓練。這通常對應了複雜問題的分解及分層結構的強化學習,在這裡都可以通過流程圖輕鬆直觀的表達。在解決計算及資料量巨大的問題上,伏羲實驗室提供了一整套後端雲平臺作為解決方案。之所以叫強化程式設計這個名字,實際上是一語雙關。首先是對現有程式設計方法的一種增強,其次是通過強化學習來實現這種能力。


伏羲強化程式設計框架
從整個框架來看,首先提供了一個面向業務方的流程圖工具,以流程圖的形式對強化學習問題進行建模,自動生成程式碼(目前支援Lua、Python及C#語言),嵌入到各種型別的業務產品中,實現與環境互動,並具有除錯功能。同時提供一個基於完整計算叢集的容器雲平臺,將各種RL演算法(DQN、A3C、Impala等)通過容器化的方式進行封裝,支援所有主流的深度學習框架(TensorFlow、Mxnet、PyTorch等)。基於RPC連線環境和訓練叢集,並對客戶端獲取的資料進行有效地封裝和轉發,同時將伺服器產生的策略返回給客戶端,組包在伺服器端進行,支援並行及動態擴容的訓練。網易伏羲實驗室還提供了一套完整的SDK方案,在平臺上完成訓練後,可以方便地將訓練結果匯出,部署到伺服器或客戶端。最後可以通過一個Web控制前端,檢視訓練資料及效果、規劃計算資源、改進訓練方案,從而提升工作效率。
實際應用
伏羲實驗室先在Atari遊戲Pong上驗證了該框架解決經典強化學習實驗問題的有效性。下圖為相應的流程圖和訓練效果:




Pong遊戲訓練流程圖 (GIF1 Pong訓練效果)
然後,伏羲實驗室使用一款1v1動作對戰遊戲驗證了混合程式設計和多網路程式設計在解決複雜問題上的的優勢。通過流程圖的方式可以引入專家經驗,也可以對訓練模型進行分層。實驗設定如下:實驗1為未經任何處理的端到端模型,直接由RL演算法探索所有空間。實驗2為單個神經網路與專家知識的混合程式設計模型,神經網路先選擇技能大類,同一類技能內再靠人工規則實現選擇。實驗3為結合經驗的分層神經網路模型,在這裡,上層策略與底層策略都由神經網路實現。


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


實驗結果對比
在過去的一年多時間裡,伏羲實驗室已經利用該框架將深度強化學習應用於遊戲產業。目前已在網易的多款自研產品中取得成果並上線,涵蓋MMORPG、籃球、動作及休閒等眾多品類。
下面是強化程式設計框架在潮人籃球這款遊戲中的應用例項。以多網路的方式實現了籃球遊戲內的AI設計,通過流程圖實現attack、defense、ball clear、free ball四個網路的建模,編輯對應的神經網路,呼叫RL外掛介面,在Web前端申請計算資源進行訓練。
https://url.cn/5TS6ifu?sf=uri
流程圖工具建模例項
可以看到4個網路的訓練隨著機器人的狀態進行切換
https://url.cn/5hDZefB?sf=uri
流程圖工具建模例項
最終,在潮人籃球線上3V3模式中,3個AI Bot勝率達82%,2個AI與1個玩家人機合作勝率達70%。
https://url.cn/5KXsIzp?sf=uri
潮人籃球3v3
網易伏羲實驗室
網易伏羲實驗室是國內首家專業遊戲AI研究機構,成立於2017年9月,目前已有160名成員。實驗室在強化學習、自然語言處理、計算機視覺和虛擬人等方向開展學術研究及產業落地嘗試。願景是“以人工智慧技術點亮遊戲未來”,希望運用人工智慧的尖端技術為玩家營造新世代的遊戲體驗,同時藉助遊戲平臺的海量資料和模擬環境,推動人工智慧技術發展。
在本屆NeurIPS Expo研討會上,伏羲實驗室提出了一種新的強化程式設計框架,能夠讓沒有任何強化學習背景知識的使用者也能將這項技術應用到現實問題,促進強化學習在產業界落地。該框架是對傳統程式設計的增強,使用者能夠以呼叫一種可學習函式的方式使用強化學習,方便的實現邏輯規則與強化學習的混合程式設計及多網路協同學習,該框架還提供了視覺化的流程圖前端工具和整合各種演算法的後端雲平臺,能夠更加快捷地實現上述程式設計模式。此外,很多後續工作也在進行,如整合AutoML、支援模仿學習等。
在該框架的工作中,南京大學LAMDA實驗室的俞揚教授團隊與伏羲團隊建立了合作,並計劃將該框架用於星際AI和基於環境建模的模仿學習研究中。該框架已經在多款網易的遊戲中應用,並計劃和氪信科技一起將其推廣到金融領域。網易方面表示,希望這套強化程式設計框架不斷改進變得更加通用,讓強化學習技術更快的在產業應用中發揮價值,未來幫助使用者解決更多實際問題。同時也歡迎各界積極交流、探討,共同推進AI技術發展。