- 本系列是對《深度強(qiáng)化學(xué)習(xí)落地指南》全書的總結(jié)睬捶,這本書是我市面上看過對深度強(qiáng)化學(xué)習(xí)落地講的最好的一本書坠敷,大大拓寬了自己對RL落地思考的維度,形成了強(qiáng)化學(xué)習(xí)落地分析的一套完整框架,本文內(nèi)容基本摘自這本書,有興趣的讀者可以自行購買吼驶。
作者對這本書的推薦序:https://zhuanlan.zhihu.com/p/403191691
第一章 需求分析
1.1 需求分析:勿做DRL鐵錘人
須知任何機(jī)器學(xué)習(xí)方法都有各自的優(yōu)勢和適用范圍,DRL算法也同樣有其鮮明的優(yōu)勢和局限性港准,因此務(wù)必要做到具體問題具體分析。不是所有需求都適合用DRL解決咧欣,適合用DRL解決的需求在性能上也未必超越傳統(tǒng)方法浅缸。因此在面對一個新需求的適合,要依次回答“是不是”魄咕、“值不值”衩椒、“能不能”、“邊界在哪里”四個問題哮兰。
- 這點非常重要毛萌,就我正在做的落地項目而言,甲方由于現(xiàn)在外界對DRL的猛吹喝滞,所以只想使用DRL算法一把梭阁将,但實際上工業(yè)界的一些經(jīng)典控制算法(如PID等)在項目上本身就能有不錯的表現(xiàn),只需要針對特定場景和DRL做一些結(jié)合就能得到預(yù)期指標(biāo)右遭,所以在接到需求之后一定要嚴(yán)格評估再做決定做盅。
1.2 一問“是不是”
1.2.1 Agent和環(huán)境定義
首先我們要明確需求任務(wù)中的Agent和環(huán)境。對于大多數(shù)任務(wù)而言窘哈,通常只存在一個決策和行為的主體吹榴,此時就是典型的單智能體強(qiáng)化學(xué)習(xí)問題。然而當(dāng)任務(wù)中同時存在多個行為主體時滚婉,情況會變得復(fù)雜图筹,即使這些行為主體之間完全同質(zhì)和相互合作的關(guān)系,也至少存在兩種Agent定義方案让腹。第一種方案是將所有行為主體看作一個整體远剩,從而構(gòu)成單智能體強(qiáng)化學(xué)習(xí)問題;第二種方案是將每個行為主體都作為獨(dú)立的Agent骇窍,從而構(gòu)成多智能體強(qiáng)化學(xué)習(xí)(Multi-Agent Reinforcement Learning, MARL)問題民宿。
第一種方案可以保證得到全局最優(yōu)的聯(lián)合策略,但狀態(tài)空間維度和策略復(fù)雜度會隨著行為主體數(shù)量的增加而迅速膨脹像鸡,導(dǎo)致算法難以擴(kuò)展到大規(guī)模問題上活鹰;第二種方案通過每個Agent獨(dú)立感知和決策避免了維度詛咒哈恰,但隨之產(chǎn)生了多Agent間貢獻(xiàn)度分配(見4.3.1)和聯(lián)合探索難題,以及多策略協(xié)同優(yōu)化所導(dǎo)致的環(huán)境不穩(wěn)定性(Environment Nonstationarity)志群,從而影響算法性能着绷。
- 這個問題我也遇到了,說實話做方案選擇時候還是挺糾結(jié)的锌云,在我的落地場景中如果單純從單智能體的角度考慮荠医,無論是狀態(tài)的維度,動作的維度都會變得非常大桑涎,再加上真實落地過程中可憐的數(shù)據(jù)采樣效率彬向,顯然是沒辦法收斂的;選擇多智能體的方案正如作者所說攻冷,也會會一些別的問題(當(dāng)然沒選擇的更大原因是自身對這方面并沒有過多的涉獵)娃胆。最后我采取的方案還是單智能體,但是使用一些機(jī)器學(xué)習(xí)篩選和相關(guān)領(lǐng)域?qū)<抑R的方法對狀態(tài)維度和動作維度分別都進(jìn)行了大幅度的減少等曼,確保最后算法能夠收斂里烦。
1.2.2 馬爾科夫決策過程和強(qiáng)化學(xué)習(xí)
- 首先我們需要判斷這個需求任務(wù)是不是一個強(qiáng)化學(xué)習(xí)問題,這個需要從強(qiáng)化學(xué)習(xí)的數(shù)學(xué)定義出發(fā)(Agent ->
->
->
->
->
禁谦,這里簡單用幾個符號表示胁黑,就不具體展開了 )。以上過程被稱為馬爾科夫決策過程(Markov Decision Process,MDP)州泊。若每步只能觀測到部分狀態(tài)信息丧蘸,則稱為部分可觀測馬爾科夫決策過程(Partially Observable Markov Decision Process,POMDP)。
強(qiáng)化學(xué)習(xí)的涵蓋范圍不止于此遥皂,當(dāng)環(huán)境不存在特定狀態(tài)轉(zhuǎn)移概率分布
触趴,或者說狀態(tài)轉(zhuǎn)移完全隨機(jī)時,MDP問題就退化為上下文多臂老虎機(jī)(Contextual Multi-Armed bandits, CMAB)了渴肉;如果環(huán)境不存在狀態(tài)的概念冗懦,或者說只有一個狀態(tài)且沒有狀態(tài)轉(zhuǎn)移,問題就退化為多臂老虎機(jī)仇祭。
1.3 二問“值不值”
在判斷一個任務(wù)是否適合用DRL作為解決方案時披蕉,首先需要考慮兩種可能性:能否使用規(guī)則或啟發(fā)式搜索,以及是否應(yīng)該使用傳統(tǒng)強(qiáng)化學(xué)習(xí)算法乌奇,這兩個問題的答案取決于任務(wù)解空間的大小和復(fù)雜度没讲。任務(wù)解空間通常表示為
,即狀態(tài)和動作的復(fù)合空間礁苗。
1.3.1 試試規(guī)則和啟發(fā)式搜索
在解決實際問題時爬凑,應(yīng)該追求條件允許范圍內(nèi)的最優(yōu)定制化方案,即我們要想辦法降低解空間的維度试伙。這些方案可能抓住了底層的物理和數(shù)學(xué)本質(zhì)嘁信,可能充分挖掘了任務(wù)邏輯和先驗知識于样,可能充分發(fā)揮了計算機(jī)的算力,甚至可能主動設(shè)置高度可控的應(yīng)用場景規(guī)避了很多棘手的問題潘靖。
- 在面對需求的時候穿剖,我們應(yīng)當(dāng)先放下RL這種“玄學(xué)”的想法,把"work"當(dāng)做第一要義卦溢。一個非常重要的經(jīng)驗就是先花大量的功夫在數(shù)據(jù)處理和可視化上面糊余,如果數(shù)據(jù)可視化做得好的話往往可以發(fā)掘一些潛在規(guī)律,從簡單來說可以用if-else能解決单寂,稍微難點可能用一些數(shù)學(xué)模型來表示贬芥;這個部分還有一些小彩蛋:就算只是發(fā)現(xiàn)了一些小規(guī)律,在獎勵函數(shù)設(shè)計的時候如果可以加進(jìn)去宣决,往往會有意想不到的驚喜蘸劈。
1.3.2 別忘了傳統(tǒng)強(qiáng)化學(xué)習(xí)
在有一類任務(wù)中,一方面面由于維度較高導(dǎo)致很難通過觀察發(fā)現(xiàn)有效規(guī)則疲扎,且啟發(fā)式搜索所需的算力和存儲能力顯著增加昵时,難以利用有限資源獲得滿意性能捷雕;另一方面椒丧,狀態(tài)-動作組合的期望累計回報分布無顯著規(guī)律并呈現(xiàn)多模態(tài)特征,即在相同狀態(tài)下不同動作的期望累計回報較為接近救巷。強(qiáng)化學(xué)習(xí)在這類任務(wù)中是可能具有優(yōu)勢的壶熏,并且在解空間可窮舉、規(guī)模適中的前提下浦译,諸如Q-learning和Sarsa等傳統(tǒng)強(qiáng)化學(xué)習(xí)方法的性能未必遜于DRL算法棒假。
- 在維度沒那么高的時候,親測使用傳統(tǒng)RL的方法在很多時候都能work精盅,有時候迫于甲方宣傳的壓力(眾所周知帽哑,產(chǎn)品+AI綁定的宣傳方式能提升銷量)會加上神經(jīng)網(wǎng)絡(luò),但效果不但沒有變好叹俏,收斂的時間往往也會變長妻枕。
1.3.2 使用DRL的理由
- 作者將一定要使用DRL的理由總結(jié)為以下三點:
- 難以從龐大的解空間中分析出有效規(guī)則和啟發(fā)式搜索方案,或者解空間中可能存在比已有規(guī)則和啟發(fā)式搜索更好的方案粘驰。
- 解空間維度過高或不可窮舉屡谐,基于表格值估計的傳統(tǒng)強(qiáng)化學(xué)習(xí)算法(如Q-learning)在存儲空間和計算效率上遇到瓶頸。
- 類似于二維圖像和長跨度時序信息等高維狀態(tài)信息中包含大量冗余成分蝌数,有賴于深度神經(jīng)網(wǎng)絡(luò)的強(qiáng)大特征提取能力愕掏,從中提取有用的高層抽象語義特征,并建立起長期決策相關(guān)性顶伞。
1.4 三問“能不能”
在明確了使用DRL算法的必要性后饵撑,還需要仔細(xì)評估其可行性剑梳,即回答“能不能”的問題。在具體層面肄梨,這取決于目標(biāo)任務(wù)是否滿足場景固定和數(shù)據(jù)廉價這兩個關(guān)鍵要求阻荒。前者關(guān)系到訓(xùn)練后的策略能否順利遷移至部署環(huán)境并維持高性能,而后者則決定了是否有足夠多的數(shù)據(jù)使DRL算法成功收斂众羡。
1.4.1 場景固定:兩個分布一致
如果說有監(jiān)督學(xué)習(xí)的訓(xùn)練過程是針對某個目標(biāo)函數(shù)侨赡,關(guān)于輸入數(shù)據(jù)的單分布定制優(yōu)化,DRL則是關(guān)于輸入狀態(tài)和狀態(tài)轉(zhuǎn)移概率的雙分布定制優(yōu)化粱侣。算法從前者習(xí)得定制化的特征提取能力羊壹,并根據(jù)后者學(xué)會基于上述特征的定制化決策或估值能力。
1.4.1.1 狀態(tài)分布一致
狀態(tài)分布是由初始狀態(tài)分布齐婴、策略和狀態(tài)轉(zhuǎn)移概率共同決定油猫,其中最根本的影響因素還是來自環(huán)境的固有屬性。關(guān)于狀態(tài)分布的一致性柠偶,可以參考下圖(a)的圍棋游戲情妖,若訓(xùn)練時直接采用左半邊木質(zhì)棋盤的原始圖像作為輸入,那么DRL算法中神經(jīng)網(wǎng)絡(luò)的特征提取功能將會在這種特殊狀態(tài)分布下高度定制化诱担。若后續(xù)把游戲切換為右上角的極簡風(fēng)格或右下角的“化石”風(fēng)格毡证,無論是棋盤底紋和棋子樣式均發(fā)生了顯著變化,則相當(dāng)于狀態(tài)信息進(jìn)入了另外一種截然不同的分布蔫仙,原來的網(wǎng)絡(luò)將無法提取出有效的高層特征料睛。
為了使同一套DRL算法適用于各種棋盤風(fēng)格,一種有效手段是對原始信息進(jìn)行抽象化預(yù)處理摇邦。如圖(b)所示恤煞,整張棋盤被初始化為19×19大小的矩陣,空白位置施籍、白子和黑子被分別表示為0,1和2居扒。無論棋盤和棋子實際長什么樣子,狀態(tài)分布都始終保持一致丑慎。
1.4.1.2 狀態(tài)轉(zhuǎn)移概率分布一致
所謂狀態(tài)轉(zhuǎn)移概率一致喜喂,就是要求Agent在任意狀態(tài)
下采取動作
后,進(jìn)入下一個狀態(tài)
的概率分布
保持不變立哑。狀態(tài)轉(zhuǎn)移概率分布一致要求的最大挑戰(zhàn)通常來自使用模擬器(Simulator)訓(xùn)練時帶來的Reality Gap夜惭。另外如果想要訓(xùn)練好的模型能順利遷移至別的場景痹愚,需要在訓(xùn)練過程中制定更泛化的場景唱遭,使?fàn)顟B(tài)轉(zhuǎn)移概率分布擴(kuò)展至更大的范圍。
1.4.2 數(shù)據(jù)廉價:多纺念、快捂掰、好敢会、省
由于強(qiáng)化學(xué)習(xí)缺乏高效的監(jiān)督信號曾沈,再加上深度神經(jīng)網(wǎng)絡(luò)眾所周知的特點,DRL算法天然需要大量數(shù)據(jù)進(jìn)行訓(xùn)練鸥昏,這也是DRL一直被學(xué)術(shù)界詬病的重要缺陷——低成本效率(Low Sample Efficiency)
- 因此擁有多快好省的數(shù)據(jù)非常重要塞俱,多指的是數(shù)據(jù)量多,快指的是數(shù)據(jù)采集速度快吏垮,好指的是數(shù)據(jù)質(zhì)量高障涯,質(zhì)量高指的是訓(xùn)練環(huán)境和部署環(huán)境差異較小,省指的是數(shù)據(jù)采集成本小膳汪。為了省通常會使用模擬器來生成數(shù)據(jù)唯蝶,但是會存在Reality Gap,所以往往需要一個好的模擬器來采集數(shù)據(jù)遗嗽。
- 當(dāng)然并非所有模擬器都存在Reality Gap粘我,其中最典型的代表是視頻游戲和棋盤類游戲。這類任務(wù)也就是Game as Simulation痹换。當(dāng)然并非所有任務(wù)都能做到Game as Simulation征字,但只要盡量縮小模擬器的Reality Gap,就仍然能用DRL算法訓(xùn)練出具備實用價值的策略娇豫。
1.5 四問“邊界在哪里”
在實際應(yīng)用中匙姜,對于DRL算法在一個具體任務(wù)中的“職責(zé)范圍”需要清晰界定。即使經(jīng)過仔細(xì)評估后認(rèn)為DRL可以帶來較為顯著的整體性能提升锤躁,也不代表任務(wù)內(nèi)部每個子功能模塊都應(yīng)該交給DRL處理搁料,任務(wù)中每個子功能模塊也都可能有各自最適用的解決方案或详。
- 這里主要是體現(xiàn)各方法系羞、各模塊協(xié)同合作的思想。對于一個落地應(yīng)用來說霸琴,往往能按照功能分為多個模塊(包括一個主模塊和多個次模塊)椒振,在實踐過程中可以把核心模塊中定義為強(qiáng)化學(xué)習(xí)問題的交給DRL解決,其他模塊可以根據(jù)自身特點再分別選擇各自合適的算法梧乘,從而組成一整個決策系統(tǒng)澎迎。如下圖麻將AI Suphx所示:
當(dāng)然上述DRL和其他方法分別負(fù)責(zé)不同子功能模塊的方案并不是協(xié)同式混合方案的唯一形式,在實踐中還有其他融合方式:(1)可以在基于規(guī)則或傳統(tǒng)控制算法的原有策略基礎(chǔ)上訓(xùn)練增量式DRL策略选调,此時DRL算法學(xué)習(xí)的是如何修正原有策略的不足夹供;還可以將其他方法作為DRL動作空間的一部分,此時DRL算法學(xué)習(xí)的是如何在恰當(dāng)時機(jī)切換到這些方法使其發(fā)揮最大作用(見2.3.2節(jié))仁堪。
- 和傳統(tǒng)方法融合這個做法在我的RL落地實踐中起到了很大的作用哮洽,因為傳統(tǒng)方法往往是有理論支撐,可能優(yōu)化的效果不夠好但總體來說是一個相對穩(wěn)妥的選擇弦聂,我舉個可能不恰當(dāng)?shù)睦樱罕热鐝腁地去到B地鸟辅,有三條大路氛什,現(xiàn)在的任務(wù)需求是讓你選擇一條最短路徑,RL可能可以在某一條大路里面選擇最短的一個路線匪凉,但可能會走偏枪眉,走到別的大路去;而傳統(tǒng)方法就像是一個矯正器再层,雖然在每條大路里面不一定能選擇最短的走法贸铜,但總能保證走在正確的大路上。所以這時候可以在每次RL決策幾步后聂受,用傳統(tǒng)方法做一個矯正萨脑,這樣才在保證下限的情況下做到一定的優(yōu)化。