馬騁乾,謝 偉,孫偉杰
(國防科技大學(xué)信息通信學(xué)院,湖北 武漢 430019)
根據(jù)不同的反饋方式,機器學(xué)習(xí)可以分為監(jiān)督學(xué)習(xí)、非監(jiān)督學(xué)習(xí)、強化學(xué)習(xí)三大類[1]。其中監(jiān)督學(xué)習(xí)近年來相關(guān)研究較多且主要集中在深度學(xué)習(xí)領(lǐng)域,深度學(xué)習(xí)利用大量的有標(biāo)簽訓(xùn)練數(shù)據(jù)對神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,使得神經(jīng)網(wǎng)絡(luò)具備某些特定的能力,如分類、回歸等,目前已經(jīng)在計算機視覺、自然語言處理、語音識別等方面取得很好的效果[2]。但現(xiàn)實中很多問題無法提供大量的有標(biāo)簽數(shù)據(jù),如機器人路徑規(guī)劃、自主駕駛、玩游戲等,這些涉及決策優(yōu)化以及空間搜索的問題,深度學(xué)習(xí)并不擅長,但強化學(xué)習(xí)卻可以有效地解決這些問題,因此,近年來關(guān)于強化學(xué)習(xí)的研究越來越受到重視。
本文對國內(nèi)外強化學(xué)習(xí)的現(xiàn)狀進行研究,首先解釋強化學(xué)習(xí)的基本原理和主要算法;其次對目前強化學(xué)習(xí)3個重點研究方向:深度強化學(xué)習(xí)、元強化學(xué)習(xí)和逆向強化學(xué)習(xí)分別進行綜述;最后介紹強化學(xué)習(xí)的3個經(jīng)典應(yīng)用和未來研究方向。
強化學(xué)習(xí)的基本思想是智能體(Agent)在與環(huán)境交互的過程中根據(jù)環(huán)境反饋得到的獎勵不斷調(diào)整自身的策略以實現(xiàn)最佳決策,主要用來解決決策優(yōu)化類的問題。其基本要素有策略(Policy)、獎賞函數(shù)(Reward Function)、值函數(shù)(Value Function)、環(huán)境模型(Environment)[3],學(xué)習(xí)過程可以描述為如圖1所示的馬爾科夫決策過程。
首先智能體感知當(dāng)前狀態(tài)St,從動作空間A中選擇動作at執(zhí)行;環(huán)境根據(jù)智能體做出的動作來反饋相應(yīng)的獎勵rt+1,并轉(zhuǎn)移到新的狀態(tài)St+1,智能體根據(jù)得到的獎勵來調(diào)整自身的策略并針對新的狀態(tài)做出新的決策。強化學(xué)習(xí)的目標(biāo)是找到一個最優(yōu)策略π*,使得智能體在任意狀態(tài)和任意時間步驟下,都能夠獲得最大的長期累積獎賞:
其中π表示智能體的某個策略,γ∈[0,1]為折扣率,k為未來時間步驟,S為狀態(tài)空間。
強化學(xué)習(xí)的各類算法根據(jù)不同的特征具有多種分類方式,如根據(jù)模型是否已知可以分為模型已知(Model Based)和模型未知(Model Free)兩類;根據(jù)算法更新的方式可以分為單步更新和回合制更新兩類;根據(jù)動作選擇方式可以分為以值為基礎(chǔ)(Value Based)的強化學(xué)習(xí)方式和以策略為基礎(chǔ)(Policy Based)的強化學(xué)習(xí)方式;根據(jù)學(xué)習(xí)策略和執(zhí)行策略是否為同一策略可以分為同策略(On Policy)學(xué)習(xí)和異策略(Off Policy)學(xué)習(xí);根據(jù)參數(shù)化方式的不同可以分為基于值函數(shù)的強化學(xué)習(xí)方法和基于直接策略搜索的強化學(xué)習(xí)方法。本文從參數(shù)化方式的角度來闡述基本的強化學(xué)習(xí)算法。
1.2.1 基于值函數(shù)的強化學(xué)習(xí)方法
基于值函數(shù)的強化學(xué)習(xí)方法通過評估值函數(shù),并根據(jù)值的大小來選擇相應(yīng)的動作,主要包括動態(tài)規(guī)劃(Dynamic Programming)、蒙特卡洛(Monte Carlo)、時間差分(Temporal Difference)、值函數(shù)逼近(Value Function Approximation)四類[4]。在強化學(xué)習(xí)模型已知的情況下,選擇動態(tài)規(guī)劃法,在策略迭代和值迭代的過程中利用值函數(shù)來評估和改進策略?,F(xiàn)實中大部分問題的模型是未知的。在模型未知的情況下,我們可以通過蒙特卡洛法利用部分隨機樣本的期望來估計整體模型的期望,在計算值函數(shù)時,蒙特卡洛法利用經(jīng)驗平均來代替隨機變量的期望。
蒙特卡洛法雖然解決了模型未知的問題,但更新方式是回合制,學(xué)習(xí)效率很低。Sutton等人提出了采用時間差分法(TD)來改善這個問題[3]。時間差分法采用自舉(Bootstrapping)方法,在回合學(xué)習(xí)過程中利用后繼狀態(tài)的值函數(shù)來估計當(dāng)前值函數(shù),使得智能體能夠?qū)崿F(xiàn)單步更新或多步更新,從而極大地提高了學(xué)習(xí)效率,目前大部分的強化學(xué)習(xí)研究都基于時間差分方法,如Q學(xué)習(xí)、Sarsa等相關(guān)算法[3]。
動態(tài)規(guī)劃、蒙特卡洛、時間差分三種方法應(yīng)用的同一前提是狀態(tài)空間和動作空間都必須離散,且狀態(tài)空間和動作空間不能過大。當(dāng)狀態(tài)空間維數(shù)很大,或者為連續(xù)空間時,使用值函數(shù)方法會帶來維數(shù)爆炸的問題。針對維數(shù)很大或連續(xù)空間的問題,可以使用函數(shù)逼近的方式來表示值函數(shù),然后再利用策略迭代或值迭代方法來構(gòu)建強化學(xué)習(xí)算法。
1.2.2 基于直接策略搜索的強化學(xué)習(xí)方法
直接策略搜索方法是將策略進行參數(shù)化,優(yōu)化參數(shù)使得策略的累計回報期望最大。與值函數(shù)參數(shù)化方法相比,策略參數(shù)化更簡單、具有更好的收斂性且能較好地解決連續(xù)動作選取問題,主要包括經(jīng)典策略梯度[5]、置信域策略優(yōu)化[6](Trust Region Policy Optimization, TRPO)、確定性策略[7]搜索三類。
經(jīng)典策略梯度通過計算策略期望總獎賞關(guān)于策略參數(shù)的梯度來更新策略參數(shù),通過多次迭代后最終收斂得到最優(yōu)策略[7]。在進行策略參數(shù)化時,一般通過使用神經(jīng)網(wǎng)絡(luò)來實現(xiàn),在不斷試驗的過程中,高回報路徑的概率會逐漸增大,低回報路徑的概率則會逐漸減小。策略梯度的參數(shù)更新方程式為
θnew=θold+αθJ
其中,α為更新步長,J為獎賞函數(shù)。
經(jīng)典策略梯度最大的問題是選取合適的更新步長非常困難,而步長選取是否合適又直接影響學(xué)習(xí)的效果,不合適的步長都導(dǎo)致策略越學(xué)越差,最終崩潰。為了解決更新步長的選取問題,John Schulman等人提出了TRPO方法[6]。TRPO將新的策略所對應(yīng)的獎勵函數(shù)分解為舊策略所對應(yīng)的獎勵函數(shù)和其他項兩個部分,只要新策略中的其他項滿足大于等于零,便可以保證新策略所對應(yīng)的獎勵函數(shù)單調(diào)不減,策略就不會變差。
經(jīng)典策略梯度和TRPO采用的均是隨機策略,相同的狀態(tài)選取的動作可能不一樣,這使得算法模型要達到收斂需要相對較多的試驗數(shù)據(jù)。為了提高算法效率,Silver等人提出了確定性策略方法[7]。確定性策略利用異策略學(xué)習(xí)方式,執(zhí)行策略采用隨機策略來保證探索性,為了使?fàn)顟B(tài)對應(yīng)的動作唯一,評估策略采取確定性策略,也稱AC(Actor-Critic)方法[3]。這種方式所需要的采樣數(shù)據(jù)較少,且能夠?qū)崿F(xiàn)單步更新,算法性能有較大提升。
傳統(tǒng)強化學(xué)習(xí)在模型較為簡單的場景取得了較好的效果,但現(xiàn)實中的問題往往都比較復(fù)雜,狀態(tài)空間和動作空間維數(shù)很大,此時傳統(tǒng)的表格型強化學(xué)習(xí)不再適用。近年來,隨著深度學(xué)習(xí)的興起,深度學(xué)習(xí)與強化學(xué)習(xí)的結(jié)合研究也受到了很多關(guān)注。谷歌DeepMind團隊創(chuàng)新性地將具有強大感知能力及表征能力的深度學(xué)習(xí)與具有決策能力的強化學(xué)習(xí)相結(jié)合,形成了人工智能領(lǐng)域新的研究熱點,深度強化學(xué)習(xí)(Deep Reinforcement Learning,DRL)。
DRL中最具代表性的算法是由谷歌DeepMind團隊中Mnih等人提出的深度Q網(wǎng)絡(luò)(Deep Q Network, DQN)[8]。在DQN算法中,使用深度神經(jīng)網(wǎng)絡(luò)來代替Q表,能夠適用狀態(tài)空間和動作空間非常復(fù)雜的場景,將當(dāng)前狀態(tài)值作為神經(jīng)網(wǎng)絡(luò)的輸入,輸出端輸出所要采取的動作。并采用Q學(xué)習(xí)的方式對神經(jīng)網(wǎng)絡(luò)的參數(shù)進行更新,利用經(jīng)驗回放機制減小了數(shù)據(jù)之間的相關(guān)性,縮短了訓(xùn)練時間[9]。
DQN算法在進行優(yōu)化時,每次都會選取下一個狀態(tài)最大Q值所對應(yīng)的動作,這會帶來過估計的問題,Van Hasselt等人在雙Q學(xué)習(xí)算法[15]的研究基礎(chǔ)上提出了深度雙Q網(wǎng)絡(luò)(Deep Double Q-Network,DDQN)算法[10]。在DDQN中有兩套不同的參數(shù)網(wǎng)絡(luò),分別是當(dāng)前值網(wǎng)絡(luò)和目標(biāo)值網(wǎng)絡(luò),當(dāng)前值網(wǎng)絡(luò)用來選取動作,目標(biāo)值網(wǎng)絡(luò)用來對動作做出評估,這樣使動作選擇和策略評估得以分離,有效降低了Q值過估計的風(fēng)險。
在DQN取得成功后,DeepMind團隊中Timothy等人又將深度神經(jīng)網(wǎng)絡(luò)與確定性策略相結(jié)合提出深度確定性策略梯度(Deep Deterministic Policy Gradient, DDPG)算法[11]。DDPG使用深度神經(jīng)網(wǎng)絡(luò)來表示策略,并使用策略梯度的方式來更新策略。DDPG同時具備AC算法和深度學(xué)習(xí)的優(yōu)點,在實際運用中,這種學(xué)習(xí)方式往往能夠帶來更加有效的學(xué)習(xí)過程。
元學(xué)習(xí)(Meta Learning)的目標(biāo)是學(xué)會學(xué)習(xí),從一系列學(xué)習(xí)任務(wù)中訓(xùn)練一個模型,這個模型在面對新的學(xué)習(xí)任務(wù)時只需要少量的樣本便可以實現(xiàn)快速學(xué)習(xí)。元學(xué)習(xí)的學(xué)習(xí)思想是將同一系列任務(wù)的內(nèi)在特征分成兩類,一類是通用特征,另一類是靈敏度較高的特征。在試驗過程中,首先通過求最小方差的方式得到通用特征,面對新任務(wù)時只需要少量樣本就可以學(xué)習(xí)到具體任務(wù)中其他靈敏度較高的特征。
深度學(xué)習(xí)對大數(shù)據(jù)的過度依賴也在一定程度上制約了深度強化學(xué)習(xí)的發(fā)展,為了實現(xiàn)小樣本學(xué)習(xí),元強化學(xué)習(xí)研究開始受到關(guān)注。元強化學(xué)習(xí)(Meta Reinforcement Learning)框架最早由Schmidhuber等人提出[12]。JX等人將深度學(xué)習(xí)與元強化學(xué)習(xí)相結(jié)合提出深度元強化學(xué)習(xí)(Deep Meta Reinforcement Learning)概念[13],使用神經(jīng)網(wǎng)絡(luò)實現(xiàn)了對強化學(xué)習(xí)任務(wù)的快速學(xué)習(xí)。
大部分關(guān)于強化學(xué)習(xí)的研究都基于環(huán)境不變的假設(shè),但現(xiàn)實世界中的環(huán)境常常是不斷變化的,強化學(xué)習(xí)的策略也需要不斷學(xué)習(xí)調(diào)整以適應(yīng)不斷變化的環(huán)境。Chelsea等人提出一種模型未知的元學(xué)習(xí)(Model-Agnostic Meta-Learning, MAML)算法[14],這種算法不針對某種特定的模型,采用梯度下降方式進行更新,在面對新任務(wù)時,模型微調(diào)之后便可以獲得較好的泛化性能。Maruan等人將MAML算法和循環(huán)神經(jīng)網(wǎng)絡(luò)相結(jié)合研究,實現(xiàn)了強化學(xué)習(xí)模型在動態(tài)環(huán)境中的策略自適應(yīng)[15]。
元強化學(xué)習(xí)也被認(rèn)為是最有可能實現(xiàn)通用人工智能的方式,DeepMind團隊在用深度學(xué)習(xí)復(fù)現(xiàn)大腦的導(dǎo)航功能后[16],又利用元強化學(xué)習(xí)框架探索研究了大腦中的多巴胺在學(xué)習(xí)過程中所發(fā)揮的作用[17],幫助解釋了神經(jīng)科學(xué)和心理學(xué)的一系列發(fā)現(xiàn),也說明了元強化學(xué)習(xí)和人類智能存在的緊密聯(lián)系。
強化學(xué)習(xí)是求累計獎賞期望最大時的策略,求解過程中的獎賞函數(shù)是人為給定的,但在很多復(fù)雜的任務(wù)中,獎賞函數(shù)往往難以直接給定,而獎賞函數(shù)的好壞又對學(xué)習(xí)結(jié)果有著非常重要的影響。吳恩達等人提出逆向強化學(xué)習(xí)來解決該問題[18],專家在完成某項任務(wù)時,其決策往往是最優(yōu)或接近最優(yōu),當(dāng)獎賞函數(shù)難以給定時,可以通過從專家示例中來學(xué)習(xí)獎賞函數(shù)。
經(jīng)典的逆向強化學(xué)習(xí)算法包括基于學(xué)徒學(xué)習(xí)、最大邊際規(guī)劃、結(jié)構(gòu)化分類和概率模型形式化的方法[19]。Abbeel等人提出基于學(xué)徒學(xué)習(xí)的方法[20],使用函數(shù)逼近的方法從專家示例中學(xué)習(xí)獎賞函數(shù),使得在該獎賞函數(shù)下所得的最優(yōu)策略在專家示例策略附近,主要用來解決退化解和獎賞函數(shù)歧義性問題。最大邊際規(guī)劃法的目標(biāo)是找到使專家示例策略具有比其他策略更大累計獎賞的狀態(tài)到獎賞的映射,在這個映射下,最優(yōu)策略能夠逼近專家示例策略[21]。Klein等人提出結(jié)構(gòu)化分類方法[22],用分類的思想考慮最優(yōu)的策略,并將估計的專家期望特征作為獎賞函數(shù),這種做法避免了多次迭代計算過程。最大邊際規(guī)劃法和結(jié)構(gòu)化分類方法往往會產(chǎn)生歧義,很多不同的獎賞函數(shù)會導(dǎo)致相同的專家策略。Ziebart等人提出基于最大熵和交叉熵兩類概率模型來解決該問題[23]。
經(jīng)典的逆向強化學(xué)習(xí)算法不能很好地擴展到狀態(tài)空間維數(shù)很大的系統(tǒng),與深度學(xué)習(xí)的結(jié)合能夠發(fā)揮更大的作用。將模型中的狀態(tài)和動作使用深度神經(jīng)網(wǎng)絡(luò)替代,算法可以在大型復(fù)雜的系統(tǒng)中取得良好的效果。如基于最大邊際法的深度逆向強化學(xué)習(xí)、基于DQN的深度學(xué)徒學(xué)習(xí)[24]和基于最大熵模型的深度逆向強化學(xué)習(xí)[25]。
目前強化學(xué)習(xí)應(yīng)用較多的領(lǐng)域有對弈、決策和控制等,本節(jié)從這三個方面分別選擇一個典型應(yīng)用進行詳細介紹。
AlphaGo在戰(zhàn)勝李世石后開啟了深度學(xué)習(xí)的熱潮,而其能夠戰(zhàn)勝人類的關(guān)鍵技術(shù)就是深度強化學(xué)習(xí)。19×19的圍棋狀態(tài)空間復(fù)雜度近似10的172次方[8],傳統(tǒng)的搜索方法只能在局部進行搜索,無法有效提取整個空間的有效特征,容易進入局部最優(yōu)狀態(tài),且當(dāng)時計算能力較弱,因此無法有效解決圍棋這類狀態(tài)空間龐大的問題。
深度學(xué)習(xí)采用分層特征提取的方式將搜索的狀態(tài)空間由棋局縮小到局部態(tài)勢,最終到單個棋子,大大縮小了搜索空間。同時深層網(wǎng)絡(luò)能夠表示較為復(fù)雜的狀態(tài)空間,這使得深度學(xué)習(xí)在避免盲目搜索的同時可以擴大搜索范圍。采用強化學(xué)習(xí)中DDPG方法建立一個策略網(wǎng)絡(luò)和一個價值網(wǎng)絡(luò),策略網(wǎng)絡(luò)根據(jù)當(dāng)前的棋局狀態(tài)來選擇下一步棋的位置,價值網(wǎng)絡(luò)對當(dāng)前的棋局進行評估,若評估結(jié)果為勝的概率大則增大該棋步選擇的概率,否則降低選擇概率。這種方式大大提高了學(xué)習(xí)效率和搜索速度,同時輔助以高速的計算能力,最終實現(xiàn)了AlphaGo的成功。
服務(wù)鏈?zhǔn)且环N借助軟件定義網(wǎng)絡(luò)自動創(chuàng)建一個連接網(wǎng)絡(luò)服務(wù)的虛擬服務(wù)鏈[28],定義了特定順序的網(wǎng)絡(luò)功能集合,其網(wǎng)元負(fù)責(zé)執(zhí)行處理特定的功能,通常包括虛擬的交換機、虛擬的路由器等,網(wǎng)元的放置位置會影響服務(wù)提供和物力資源的使用效率。
實現(xiàn)網(wǎng)元位置的最佳決策,關(guān)鍵在于優(yōu)化服務(wù)鏈的平均鏈路延時和服務(wù)器的負(fù)載。采用強化學(xué)習(xí)方式進行學(xué)習(xí),通過不斷與服務(wù)環(huán)境的接觸和外部環(huán)境所反饋的獎勵信號來調(diào)整網(wǎng)元的部署位置。該模型的狀態(tài)集為網(wǎng)元的實時位置,動作集為網(wǎng)元位置的選擇,獎勵函數(shù)根據(jù)節(jié)點資源的門限值來設(shè)定。然后使用Q學(xué)習(xí)算法對狀態(tài)集和動作集進行表示,并在不斷學(xué)習(xí)迭代的過程中,增大那些使鏈路延時和負(fù)載變小的網(wǎng)元位置Q值,最終收斂于最優(yōu)值。
隨著人工智能的深入研究,自主駕駛與我們的生活越來越接近。自主駕駛的實現(xiàn)可以分為兩部分:第一部分是通過深度學(xué)習(xí)感知車輛所處的環(huán)境并進行信息收集和分析,使智能體能夠獲取當(dāng)前的路況信息。第二部分是通過強化學(xué)習(xí)選取策略,車輛方向盤的轉(zhuǎn)向等操作都是在連續(xù)動作空間內(nèi)選擇,因此采用DDPG的方法建立策略網(wǎng)絡(luò)。起初智能體對車輛可能遇到的一些情況,如行人、車輛或偏離軌道等,采取一些隨機動作,然后使用價值網(wǎng)絡(luò)增加避讓行人、車輛等安全動作的值,進而增大該動作的選擇概率,降低沖撞行人、偏離軌道、超速等動作的選擇概率。在不斷訓(xùn)練的過程中智能體逐漸學(xué)會避讓行人、車輛,并選擇合適的速度在預(yù)定軌道內(nèi)進行駕駛。
強化學(xué)習(xí)作為當(dāng)前人工智能領(lǐng)域的熱門研究方向之一,已經(jīng)吸引了越來越多的學(xué)者對其進行不斷地研究和擴展。雖然強化學(xué)習(xí)在某些領(lǐng)域已經(jīng)取得較好的效果,但在國內(nèi)相關(guān)研究目前并不是很多,在通信、軍事決策,無人系統(tǒng)控制以及通用人工智能等很多領(lǐng)域仍然具有很大的潛力。相信隨著強化學(xué)習(xí)研究的不斷深入,強化學(xué)習(xí)將會幫助我們解決更多的問題。