在使用深度強化學習(Deep Reinforcement Learning,DRL)算法解決實際問題的過程中,明確任務需求并初步完成問題定義后,就可以為相關任務選擇合適的DRL算法了。
以DeepMind的里程碑工作AlphaGo為起點,每年各大頂級會議DRL方向的論文層出不窮,新的DRL算法如雨后春筍般不斷涌現,大有“亂花漸欲迷人眼”之勢。
然而,落地工作中的算法選擇并不等同于在這個急劇膨脹的“工具箱”中做大海撈針式的一對一匹配,而是需要根據任務自身的特點從DRL算法本源出發進行由淺入深、粗中有細的篩選和迭代。
在介紹具體方法之前,筆者先嘗試按照自己的理解梳理近年來DRL領域的發展脈絡。
1
DRL算法的發展脈絡
盡管DRL算法已經取得了長足進步,但筆者認為其尚未在理論層面取得質的突破,而只是在傳統強化學習理論基礎上引入深度神經網絡,并做了一系列適配和增量式改進工作。
總體上,DRL沿著Model-Based和Model-Free兩大分支發展。
前者利用已知環境模型或者對未知環境模型進行顯式建模,并與前向搜索(Look Ahead Search)和軌跡優化(Trajectory Optimization)等規劃算法結合達到提升數據效率的目的。
作為當前學術界的研究熱點,Model-Based DRL尚未在實踐中得到廣泛應用,這是由于現實任務的環境模型通常十分復雜,導致模型學習的難度很高,并且建模誤差也會對策略造成負面影響。
在筆者看來,任何Model-Free DRL算法都可以解構為“基本原理—探索方式—樣本管理—梯度計算”的四元核心組件。
其中按照基本原理,Model-Free DRL又存在兩種不同的劃分體系,即Value-Based和Policy-Based,以及Off-Policy和On-Policy。
如圖1所示,DQN、DDPG和A3C作為這兩種彼此交織的劃分體系下的經典算法框架,構成了DRL研究中的重要節點,后續提出的大部分新算法基本都是立足于這三種框架,針對其核心組件所進行的迭代優化或者拆分重組。
Off-Policy指算法中采樣策略與待優化策略不同;
On-Policy指采樣策略與待優化策略相同或差異很小;
Value-Based指算法直接學習狀態-動作組合的值估計,沒有獨立策略;
Policy-Based指算法具有獨立策略,同時具備獨立策略和值估計函數的算法又被稱為Actor-Critic算法。
關于上述Model-Free DRL算法的四元核心組件,其中:
基本原理層面依然進展緩慢,但卻是DRL算法將來大規模推廣的關鍵所在;
探索方式的改進使DRL算法更充分地探索環境,以及更好地平衡探索和利用,從而有機會學到更好的策略;
樣本管理的改進有助于提升DRL算法的樣本效率,從而加快收斂速度,提高算法實用性;
梯度計算的改進致力于使每一次梯度更新都更穩定、無偏和高效。
總體而言,DRL算法正朝著通用化和高效化的方向發展,期待未來會出現某種“超級算法”,能夠廣泛適用于各種類型的任務,并在絕大多數任務中具有壓倒式的性能優勢,同時具備優秀的樣本效率,從而使算法選擇不再是問題。
2
一篩、二比、三改良
從一個較粗的尺度上看,依據問題定義、動作空間類型、采樣成本和可用運算資源等因素的不同,的確存在一些關于不同類型DRL算法適用性方面的明確結論。
例如,Value-Based算法DQN及其變體一般只適用于離散動作空間;相反,采用確定性策略的Policy-Based算法DDPG及其變體只適合連續動作空間;而A3C和SAC等采用隨機策略的Policy-Based算法則支持離散和連續兩種動作空間;此外,隨機策略通常比確定性策略具有更好的訓練穩定性。
在MuJoCo-Humanoid控制任務中,分別采用隨機策略和確定性策略的兩種SAC算法變體在不同隨機種子下多次訓練的曲線顯示,隨機策略比確定性策略對隨機因素的影響更加魯棒,因此具有更好的訓練穩定性。
對于機器人等涉及硬件的應用,或者其他采樣成本較高的任務,能夠重復利用歷史數據的Off-Policy算法相比On-Policy算法更有優勢。
在多智能體強化學習任務中,多個交互的Agent互相構成對方環境的一部分,并隨著各自策略的迭代導致這些環境模型發生變化,從而導致基于這些模型構建的知識和技能失效,學術界將上述現象稱為環境不穩定性(Environment Nonstationarity)。
由于該問題的存在,除非Replay Buffer(經驗回放緩存)中的數據更新足夠快,否則重復使用歷史數據的Off-Policy算法反而可能引入偏差。
由于利用貝爾曼公式Bootstrap特性的值迭代方法是有偏的(Biased),On-Policy算法在訓練穩定性方面一般好于Off-Policy算法。
然而,為了盡可能獲取關于值函數的無偏估計,On-Policy算法往往需要利用多個環境并行采集足夠多的樣本,這就要求訓練平臺具有較多的CPU核,而Off-Policy算法則沒有這種要求,盡管后者也能夠從并行采樣中受益。
在完成“粗篩”之后,對于符合條件的不同DRL算法之間的取舍變得微妙起來。
一般而言,學術界提出的新算法,尤其是所謂SOTA(State of the Art,當前最佳)算法,性能通常優于舊算法。
但這種優劣關系在具體任務上并不絕對,目前尚不存在“贏者通吃”的DRL算法,因此需要根據實際表現從若干備選算法中找出性能最好的那個。
此外,只有部分經過精細定義的實際任務可以通過直接應用標準算法得到較好解決,而許多任務由于自身的復雜性和特殊性,需要針對標準算法的核心組件進行不同程度的優化后才能得到較為理想的結果,這一點可以在許多有代表性的DRL算法落地工作中找到蹤跡。
注意這里所說的優化未必是學術級創新,更多時候是基于對當前性能瓶頸成因的深入分析,在學術界現有的組件改良措施和思想中“對癥”選擇,是完全有跡可循的。
例如,為了改善DQN的探索,可以用噪聲網絡(Noisy Net)代替默認的-greedy;為了提升其樣本效率,可以將常規經驗回放改為優先級經驗回放(Prioritized Experience Replay,PER);為了提高其訓練穩定性,可以在計算目標值時由單步Bootstrap改為多步Bootstrap等。
在《深度強化學習落地指南》一書的5.2節和5.3節中介紹具體的DRL算法時,會專門列出針對相關算法的可用組件優化措施供讀者參考。
3
從獨當一面到眾星捧月
需要強調的是,算法在學術研究和落地應用中與諸如動作空間、狀態空間、回報函數等強化學習核心要素的關系是不同的。
具體可以概括為:學術研究為了突出算法的優勢,其他要素只需要保持一致甚至被刻意弱化;落地應用為了充分發揮算法的性能,其他要素應該主動迎合算法需求以降低其學習難度。
可以說一邊是獨當一面,另一邊是眾星捧月,這種角色上的差異是由學術研究和落地應用各自不同的出發點決定的。
學術研究的目標是在普遍意義上解決或改善DRL算法存在的固有缺陷,如低樣本效率、對超參數敏感等問題,因此算法自身特質的優劣處于核心地位。
為了保證不同算法之間進行公平的比較,OpenAI Gym、Rllab等開放平臺為各種任務預設了固定的狀態空間、動作空間和回報函數,研究者通常只需要專心改進算法,而很少需要主動修改這些要素,即使修改也往往是為了刻意提升任務難度,從而突出算法在某些方面的優點,比如將回報函數變得更稀疏,簡化狀態空間設計使其只包含低效的原始信息等。
與學術研究不同,落地應用的目標是在特定任務上獲得最佳策略性能,而算法僅僅是實現該目標的眾多環節之一。
一方面,在學術研究中依靠算法改進做到的事情,在實際應用中可以通過狀態空間、動作空間和回報函數的協同優化達到相同甚至更好的效果。
另一方面,在學術研究中被認為應當盡量避免的超參數精細調節和各種難以標準化、透明化的訓練技巧,在落地應用中成為必要工作。
總之,落地應用中的策略性能優化是一項系統工程,需要“不擇手段”地充分調動包括算法在內的各種有利因素。
責任編輯:haq
-
AI
+關注
關注
87文章
30763瀏覽量
268908 -
DRL
+關注
關注
0文章
6瀏覽量
12969
原文標題:技術分享 | 如何在AI工程實踐中選擇合適的算法?
文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論