強化學習特別是深度強化學習近年來取得了令人矚目的成就,除了應用於模擬器和遊戲領域,在工業領域也正取得長足的進步。百度是較早佈局強化學習的公司之一。這篇文章系統地介紹強化學習演算法基礎知識,強化學習在百度的應用,以及百度近期釋出的基於PaddlePaddle深度學習框架的強化學習工具PARL。
強化學習演算法
強化學習(RL)和其他學習方法的異同
首先,從巨集觀層面看,可以通過“三軸”圖來看強化學習與其他學習方法的聯絡和區別:第一條軸deterministic -stochastic可以描述轉移概率,決策過程和獎勵值分佈的隨機性;第二條軸fixed dataset -interactive data,表示學習資料的來源方式;第三軸instant reward -delayed reward表示獎勵值是立即返回還是有延遲的。我們熟知的有監督學習,針對的是靜態的學習資料,以及近似可以看作無延遲的獎勵;動態規劃針對的則是確定性的環境,以及靜態的資料;主動學習針對無延遲的獎勵以及互動型的資料;多臂老虎機(multi-armed bandits)則同時處理帶有獎勵隨機性和互動型的資料,但依舊是無延遲的獎勵問題;只有強化學習處理三個方向(隨機,有延時,互動)的問題。因此,強化學習能夠解決很多有監督學習方法無法解決的問題。
強化學習(RL)的基本定義
強化學習的主要思想是基於機器人(agent)和環境(environment)的互動學習,其中agent通過action影響environment,environment返回reward和state,整個互動過程是一個馬爾可夫決策過程。
舉個例子如雅利達遊戲:state指看到當前電遊螢幕上的影象資訊;agent或者人類專家面對state可以有相應的action,比如對應遊戲手柄的操作;environment在下一幀會反饋新的state和reward,整個過程可以用馬爾可夫決策過程來描述。在這個過程中的environment則主要包括兩個機制:一個是transition代表環境轉移的概率,另外一個是reward。
Markov Decision Process和Policy的定義
可以通過更具體的類比來理解有監督和強化學習的REINFORCE演算法的關聯。假設在t時刻action以來表示. 在有監督的學習過程中需要人來示範動作, 通常我們希望機器去學習人的示範動作,在這裡就代表示範的label。我們一般可以通過最小Negative Log-Likelihood (NLL)來使得我們的policy函式逼近人的示範。
從Supervised Learning到REINFORCE
在互動學習的過程中,沒有人的示範,而是讓機器自主去做一個動作。我們先考慮reward沒有延遲的情況,機器人用一定的初始策略選到這個動作。它不知道自己做的對不對, 但是可以他拿到一個立即的reward。如果我們嘗試最小化這樣一個目標函式。 同時假設這個動作做對了獎勵是+1,做錯了獎勵是0, 我們可以發現,這個式子跟是一致的,也就是退化為監督學習, 但卻並不需要示範label, 只需要reward。
進一步的,在馬爾可夫決策過程迭代中,我們希望優化整個序列的總收益(delayed reward),而不是單步的立即收益。進一步修改目標為,即整個序列如果更好地完成最終總體指標R,就強化整個動作序列的概率,反之弱化整個動作序列的概率。這便是強化學習最簡單的策略梯度方法。
除此之外,DQN、temporal difference等方法,則是基於一個值(critic)評價體系進行迭代,而非直接求解policy。這類方法存在顯著問題是無法針對連續動作空間。本文不再展開介紹。
REINFORCE 和 CreditAssignment
REINFORCE這類直接求解policy function的方法,效率通常比DQN低很多。以下圍棋舉例,比如前99步都下得很好,最後1步下的不好,導致滿盤皆輸。如果用REINFORCE方法,會認為這100步,包括下的不錯的前99步都不好。雖然從統計意義上來說,如果下的次數足夠多,梯度更新最終仍然是往正確的方向,但顯然這是一種學習效率很低的演算法。為了改善這個問題,另一類應用更廣的方法是actor-critic,其中actor是policy,critic是評價函式,這類方法是將策略函式和值函式一同學習,核心思想是希望評價函式做能夠給action返回一個合適針對它自己對於整個棋局影響的“綜合”反饋,通常被稱為credit Assignment。REINFORCE可以認為用整個序列的總體reward作為credit,而actor-critic賦予每一個動作一個獨立的反饋,也叫做advantage。下面列出的是一些不同的advantage的計算方式[1]。其中,1是傳統的REINFORCE,而後面的一些計算方式,則通過值函式的迭代,提升advantage計算準確性,從而提高策略梯度的效率。
從REINFORCE到Advantage Function的計算
強化學習涉及的演算法非常多,種類也非常廣,包括:model-free演算法,這類演算法最為大家所熟知,而它又可以分為critic only,actor only和actor-critic;model based演算法,通過對環境建模來進行規劃,這類演算法在訓練過程中具有很高效率,但因為inference的時候需要做planning效率則較低,這類方法最近獲得越來越多的關注;還有一些和不同演算法結合在一起的組合RL方法,如Auxiliary Tasks, Hiearchical RL,DeepExploration,逆強化學習等。
強化學習的演算法羅列
強化學習應用-推薦系統
2011年之前,強化學習主要用於Intelligent Robotics等控制問題。2012-2013年,強化學習伴隨深度學習的高漲逐漸火熱起來。2012年,百度已開始將multi-armed bandits用於搜尋排序。2014-2017年,百度將強化學習用於對話系統,廣告定價,新聞推薦等場景;在學術上,也釋出了首個AGI評測環境XWorld。2018-19年,百度在強化學習工具,研究,應用方面開始全面鋪開。
對於推薦類問題來說,工業界的推薦系統早期比較成熟的方法包括協同過濾,CTR預估等。而現有推薦系統有兩個尚未解決得很好的問題,也是業界研究熱點:
1)intra-list correlations:考慮列表裡的內容關聯。現有推薦系統通常針對使用者推薦一個列表,而不是一個一個內容推薦,因此內容之間的組合關聯就會有影響。傳統的多樣性推薦等技術,其實都在解決這個問題。
2)inter-list correlations:考慮的是列表頁間的時序關聯,即內容本身對使用者的價值,隨著時間和互動次數的增加而動態變化。
百度基於新聞資訊推薦場景,對這兩個層級的問題都開展了相應研究工作,並且均涉及強化學習技術:
在intra-list correlation角度,以往經典做法認為列表內的item之間是相互獨立的,以此來預估CTR,又被稱為item-independent prediction。
多樣性是在此基礎上的一個改進,即以整個組合來考慮推薦內容,而不單純只考慮item自身。學術界對多樣性理論的研究包括DPP,Submodular Ranking等方法[2][3]。Submodular實際上就是對“邊際效用遞減”這個說法的形式化,通俗的說,把所有商品看成一個集合,隨著所擁有的商品數量的增加,那麼獲得同類商品的滿足程度越來越小。在推薦系統中,在上文推薦的基礎上進行重新估計,例如下面的圖中,第i次新聞推薦內容項為,第i+1次推薦的內容需要考慮去掉已推薦過的相似內容,考慮使用者感興趣的topic空間,給使用者推薦的應該是月牙形區域的內容,這便是submodular中的net gain的定義。DPP的做法也類似。
然而,目前對於多樣性的研究缺乏統一的目標定義,多樣性也不對終端使用者反饋直接負責,導致多樣性效果很難客觀衡量,往往只能主觀調節。
Submodular排序Net-Gain的計算
基於此背景,百度提出了列表頁內組合優化框架,整合了學術界對列表頁框架的認識。這個框架包括多個方面貢獻:1. 提出了完全以使用者反饋utility來衡量列表頁內組合是否合理的方法。2. 提出了評價-生成的框架來解決組合優化的區域性和全域性最優的問題,以及off-policy訓練的問題。3. 提出了不少新的模型結構,包括Recursive網路,Transformer網路等,用於更加通用地建模列表頁內的組合,不僅包括兩兩關聯組合,包括更高階的組合,正向反向的組合等。百度相關產品在2017年底就上線了序列優化框架,相對於以往很多方法已經取得了不少收益,相關的成果已發表論文[4]。
建模列表頁內內容的一些模型和方法
Evaluator – Generator列表組合排序框架
而在inter-list correlation角度,對於新聞推薦這類產品的列表間優化,強化學習面臨一個難題是variance過大,可能導致準確率下降。過去Google,京東發表的一些論文,針對這個問題,較為機械地用傳統強化學習方法來解決。但是這些方法往往因為定義過大的action空間,以及過長的MDP,導致準確性下降。而且這些成果,大部分都是在理想的實驗環境,而非真正的線上環境使用。百度多年前針對機械使用強化學習技術的嘗試也發現,對於線上極大規模的排序或者推薦的列表頁間的互動優化並沒有實際優勢。目前百度正在採用Credit Assignment這類新的演算法,以更好地解決這些問題,不久之後會發布這些成果。
強化學習 應用-對話系統
對話系統可以分為任務型對話系統(Task Oriented Dialogue System)和開放對話系統(Open Domain Dialogue System),經典的任務對話系統結構如下。在對話管理中,強化學習可以起到非常重要的作用。
任務型對話系統流程
百度早在2012年就開始任務型對話系統的探索,其中一個早期的強化學習實驗是2012-2013年做的點餐系統。這是一個百度內部員工使用的外賣訂餐Demo。這個Demo基於一些NLU的特徵,以及一些對話NLG的模板,利用LSTD模型來迭代對話管理邏輯。這個Demo設計的反饋也很粗糙,就是內部員工自己來標註。這個專案拿到一些結論,但整體不是很理想。
百度早期探索的對話式點餐系統
之後百度在各種垂類對話系統上進行了進一步的的實驗。其中比如聊天氣的垂類對話。它的特徵相對點餐系統多一些,投入的人工評估和標註的資源也更多。最終效果上,有些指標能夠超越人精心設計的規則策略。
百度早期探索的聊天氣對話系統
這之後,隨著深度學習的興盛,學術界也產生了一些成果。如2016年WenTsung-Hsien提出端到端面向任務對話系統[5],使用神經網路把四個模組綜合起來,所有模組中的狀態都可訓練,相對以前工作有較大進步。利用深度強化學習結合端到端的對話模型,在足夠的資料下,任務型對話系統可以達到比較理想的效果。
與任務型對話系統不同,開放式對話系統的潛力更大,難度也更高。百度早期做過一些嘗試,比如聊天系統中的對話引導功能,引導使用者提出下一句可能的問題。這功能的傳統做法是通過語義匹配(semantic matching)網路來學習選擇使用者點選概率高的引導項,而通過強化學習來提升語義匹配網路的效果,使得語義匹配可以不單單考慮當前的點選概率,而是可以考慮後續的可能引導給出最佳的選擇。
通用引導對話邏輯
在開放式對話方向的研究基本可以分為基於檢索、自動生成兩種方式。檢索方式受限於有限的語料庫,對於最終解決開放式對話問題而言,生成方式更具有潛力。而業界對於開放域的對話的生成,尚沒有標準的解決方案。從2015年開始,端到端神經網路開始逐漸展現潛力。而當前端到端的對話系統存在的問題通常包括: 1)生成式回答中沒有內容,如經常回復“哈哈”,“呵呵”;2)缺乏邏輯性,如“我有一個女兒,我12歲”;3)答非所問,如問“你從哪裡來”,回答“我喜歡踢足球”;4)對話缺乏明確的目標和評價方式,導致效果評估效率低甚至無法實現。
強化學習作為解決上述部分問題的潛在方法,備受矚目。但強化學習對話系統也存在顯著問題:1)強化學習需要明確的學習目標,或者使用者明確反饋,而評價目標很難制定,使用者反饋則很難獲取;2)強化學習通常需要大量的資料,甚至比有監督學習需要更多的資料。這些是阻礙強化學習應用的關鍵因素。
百度目前在開展一個比較有野心的工作,就是建立一套完整的對話評估體系。基於一套完整的評估體系,有可能在包括人-機對話,機-機對話(self-play),機-模擬器對話系統中,引入強化學習,提升對話質量。對於這套評估系統,有幾個層面的要求:1)Word-level adversarial safe,使得這套評估系統能夠被任何強化學習生成方法作為穩定的學習目標;2)和人的評估接近,可以被不同任務特化。
百度正在優化的自動評估的對話進化系統
在這套框架下,百度開展了一些嘗試性工作。圖中是Facebook釋出的資料集persona[6],基於兩個persona(個性資料),產生兩個人之間的對話。通過兩個機器人相互聊,聊完之後用evaluation-system來進行評估獲得reward,從而強化這兩個機器人的對話。相關進展未來將釋出。
在自動評估-進化框架下,Self-Play訓練的效果
強化學習應用-移行控制
NeurIPS 2018 AI for Prosthetics Challenge介紹
百度在NeurIPS 2018 AI for Prosthetics Challenge中以絕對優勢奪冠
百度強化學習團隊近期在NeurIPS 2018 AI forProsthetics競賽中,也以絕對優勢奪冠。在這個比賽中,需要控制一個人體骨骼肌肉模型的肌肉(19維),學習的目標是按照外部不斷變換的給定的速度行走。對沒有按照速度行走或者跌落扣分。
這次比賽中百度用到四個關鍵技術包括:
1)模型結構和學習方法上,使用deep deterministic policy gradient[7],該網路結構由4層MLP組成,將速度目標,狀態,動作結合在一起建模,使得速度之間具有很好的可轉移性。
百度在NeurIPS 2018AI for Prosthetics Challenge中使用的模型
2)CurriculumLearning[8]:為了獲得穩定的奔跑姿態,首先訓練一個高效的高速奔跑姿勢,再利用課程學習(CurriculumLearning),設計一系列從易到難的課程,讓機器人逐漸地降低速度。通過這種方式,得到一種特別穩定的姿態用於熱啟動。
百度在NeurIPS 2018AI for Prosthetics Challenge中調研的Curriculum Learning啟動方法
3)DeepExploration[9]:這項技術利用多個header的預測,得到其預測的波動,這個波動代表了當前策略和值的波動範圍。這個能夠幫助策略有效探索到探索不足的空間。
4)Parallelization:最後,基於PaddlePaddle的高效的計算框架,採用多個CPU的模擬器,以及一個data server、一個高效能GPU作為單機多卡的訓練,將訓練效能提高几百上千倍。
百度在NeurIPS 2018AI for Prosthetics Challenge中使用的Distributed DDPG訓練框架
基於上述的方法,百度團隊不斷重新整理指標,最終以9980的絕對高分拿下比賽冠軍。
另外一個進展則和自動駕駛相關。端到端的控制在機器人領域一直都具有比較高的吸引力。但控制問題是典型的delayedreward的問題,有監督學習在這個領域作用相對較少。近年來不斷有用imitation learning,RL等提升端到端模型的研究。但同時,端到端模型又非常難以訓練。百度首次在一個飛行器上實現了一種新的強化學習訓練框架,並在避障導航問題中應用。
百度提出“干預強化學習(IARL)”和普通強化學習的比較
強化學習用在autonomous driving中的問題有:1)需要大量的資料;2)強化學習需要探索一些冒進的動作,並且經歷一些風險和失敗(比如碰撞)。然而在真實世界這個成本過大,不可能讓無人車或者無人機撞毀無數次來學會如何躲避障礙。
百度提出的一種解決方案是利用安全員,當發現緊急情況時,安全員會做一些緊急動作。policy如下圖所示,是一個比較複雜的端到端網路結構,融合CNN與LSTM(多幀資訊)。但是通常不能把無人車或者飛行器真的完全交給這個模型,而是通過引入安全員來保障安全。
飛行器上使用的端到端控制模型
當系統做出錯誤判斷或者出現高危動作時,安全員會及時介入。安全員的每次干預,說明機器的動作不對,這是非常珍貴的反饋資訊,可以被機器學習。這就是干預輔助強化學習(Intervention Aided Reinforcement Learning)的思想。百度設計的IARL演算法包括兩個方面:1. 懲罰任何干預; 2. 學習安全員干預時所採用的操作。
干預強化學習的流程
IARL在policy和loss function中的體現如下,一方面,需要修改behavior policy,因為現在的policy不再是機器完全自主,而是變成了機器和干預的混合策略;第二方面,在reward上,需要對干預的過程做出懲罰;第三方面,對於policy的目標函式進行修改,增加一項用於學習干預過程的imitation learningloss。
干預強化學習演算法
該演算法最終很好地實現了避障。而這個成果,也發表在CoRL 2018會議上[10],演示視訊地址如下: (http://www.iqiyi.com/w_19s79d6rr1.html)
干預強化學習的效果
工具-PARL
現在業界已有不少開源強化學習工具,百度也於近期釋出了PARL框架。(https://github.com/PaddlePaddle/PARL)PARL是基於PaddlePaddle的一個強化學習框架,特點是:1)靈活性高,支援多數的強化學習演算法;2)為數不多的開源其大規模分散式能力的強化學習演算法庫;3)通過之前介紹的工業級場景,驗證了演算法庫的可用性。
這套強化學習框架基於3個基礎類,分別是agent、algorithm、model。通過不同層級的定製,PARL能夠實現方便,靈活,可服用,定製方便的強化學習演算法,並具有對於大規模並行能力良好支援。使用者可以很方便寫出自己獨特的定製演算法,而不必去管具體通訊介面等邏輯。以DQN為例,PARL提供了algorithm的現成DQN演算法,使用者只需要定製自己的模型即可。
基於PARL的利用現成的DQN Algorithm來開發Model
而如果使用者需要定製全新的RL演算法,也可以通過定製algorithm簡單地實現。
PARL的DDPG Algorithm例項
最後,如果需要定義自己的全新的並行RL訓練框架,使用者能夠通過定義一些通訊邏輯,實現一些並行化的複雜操作。
PARL開發並行訓練方法例項
這套強化學習庫目前在業界已經引起了不少反響。主打靈活,易用和高併發的PARL能夠取得什麼樣的成果,請拭目以待。
強化學習的存在問題及應對方法
強化學習 – 問題和潛在的研究方向
強化學習絕不是AI的終點,它實實在在解決了一類問題,然而仍然有更多待解決的問題。深度強化學習還遠遠不夠好(Deep Reinforcement Learning Doesn't Work Yet, https://www.alexirpan.com/2018/02/14/rl-hard.html)。總結而言,強化學習存在的這些問題,也是未來值得去突破的方向,包括:
1)在很多應用中,往往目標不明確。例如對話最終目的一般來說是希望對話系統“表現得像人”,然而這個目標無法清楚地進行數學描述。因此reward modeling是很重要的研究方向。比如百度在推薦排序的時候,使用evaluation-generator的框架,即首先對reward的建模。
2)強化學習需要海量的樣本,甚至比有監督學習還需要更多的樣本。解決方法比如使用world model或planning。
3)獎勵函式過於稀疏,難以探索到優質解。研究方向比如分層訓練、課程學習和引入輔助任務。
4)泛化能力比較差,很多結果處在過擬合的區域。可以使用元學習,遷移學習,以及近期研究較多的攻防理論來改善。
5)實驗難以復現。很多實驗,甚至隨機種子不一樣都會得到完全不一致的效果。這也是百度將自己的工具開源的原因之一,也是要解決這個問題的第一步。
而這些方向,既是強化學習研究的前沿,也是很多工業應用面臨的實際問題。百度也正在著力研究,期待有更多突破性的產出。
參考文獻
[1] Schulman, John, etal. "High-dimensional continuous control using generalized advantageestimation." arXiv preprintarXiv:1506.02438 (2015).
[2] Yue, Yisong, andCarlos Guestrin. "Linear submodular bandits and their application todiversified retrieval." Advances in Neural Information Processing Systems.2011.
[3] Wilhelm, Mark, etal. "Practical Diversified Recommendations on YouTube with DeterminantalPoint Processes." Proceedings of the 27th ACM International Conference on Informationand Knowledge Management. ACM, 2018.
[4] WangF , Fang X , Liu L , et al. Sequential Evaluation and Generation Framework for CombinatorialRecommender System[J]. 2019.
[5] Wen, Tsung-Hsien,et al. "A network-based end-to-end trainable task-oriented dialoguesystem." arXiv preprintarXiv:1604.04562 (2016).
[6] Zhang, Saizheng,et al. "Personalizing Dialogue Agents: I have a dog, do you have petstoo?." arXiv preprint arXiv:1801.07243(2018). “Self-EvolvingDialogue System with Adversarial Safe Automatic Evaluation”
[7] Lillicrap, TimothyP., et al. "Continuous control with deep reinforcement learning."arXiv preprintarXiv:1509.02971(2015).
[8] Bengio, Yoshua, etal. "Curriculum learning." Proceedings of the 26th annualinternational conference on machine learning. ACM, 2009.
[9] Ian Osband,Charles Blundell, Alexander Pritzel, Benjamin Van Roy, Deep Exploration viaBootstrapped DQN, In NIPS 2016.
[10] Wang, F., Zhou,B., Chen, K., Fan, T., Zhang, X., Li, J., ... & Pan, J. (2018, October).Intervention Aided Reinforcement Learning for Safe and Practical PolicyOptimization in Navigation. In Conference on Robot Learning.