曾紀(jì)鈞 梁哲恒
(廣東電網(wǎng)有限責(zé)任公司信息中心 廣東 廣州 510080)(中國南方電網(wǎng)公司信息化評測重點實驗室 廣東 廣州 510080)
機器學(xué)習(xí)算法可以分為監(jiān)督學(xué)習(xí)、非監(jiān)督學(xué)習(xí)和強化學(xué)習(xí)[1]。作為一種新興的機器學(xué)習(xí)算法,強化學(xué)習(xí)由于其具有無監(jiān)督的自適應(yīng)能力[2]、自我學(xué)習(xí)的特性,引起了學(xué)者的極大興趣。傳統(tǒng)的強化學(xué)習(xí)算法有:Q學(xué)習(xí)算法、SARSA算法、Q(λ)、SARSA(λ)等[3-5]。
強化學(xué)習(xí)的訓(xùn)練過程可以看成是智能體為實現(xiàn)目標(biāo)的探索過程,也是環(huán)境對智能體動作的評價過程[3,6]。Agent根據(jù)自身策略以及狀態(tài)選擇動作,環(huán)境根據(jù)智能體的行為進行評價,反饋給Agent獎懲值。Agent根據(jù)獎懲值優(yōu)化更新自身的知識庫,并根據(jù)累計獎勵值最大化的原則繼續(xù)選擇動作,最終實現(xiàn)目標(biāo)[3]。由此可見,Agent的訓(xùn)練是一個“動作—評價—動作”探索的過程,其為實現(xiàn)目標(biāo)必須要付出較大的計算代價,會帶來訓(xùn)練收斂速度慢等系列問題。
相對而言,監(jiān)督式強化學(xué)習(xí)算法是一種結(jié)合導(dǎo)師監(jiān)督評價和強化學(xué)習(xí)主動探索的方法。它結(jié)合了監(jiān)督學(xué)習(xí)和強化學(xué)習(xí)的優(yōu)點,通過導(dǎo)師指導(dǎo)(監(jiān)督式學(xué)習(xí))降低Agent在前期學(xué)習(xí)探索過程的難度,通過強化學(xué)習(xí)的主動探測不斷豐富Agent 的經(jīng)驗,最終實現(xiàn)系統(tǒng)的最優(yōu)控制,這就是監(jiān)督式強化學(xué)習(xí)的思想[7-8]。
監(jiān)督式強化學(xué)習(xí)有三種途徑實現(xiàn)導(dǎo)師監(jiān)督:(1) 塑造成型(Shaping)。其主要思想是導(dǎo)師給出輔助回報函數(shù),參與強化學(xué)習(xí)模型中環(huán)境給予Agent的匯報。(2) 標(biāo)稱控制(Nominal control)。其主要思想是導(dǎo)師直接給出明確的控制信息。(3) 探索(Exploration),其主要思想是導(dǎo)師暗示那種控制可能是有效的[3,8-10]。
本文介紹了強化學(xué)習(xí)模型和算法,提出了監(jiān)督式強化學(xué)習(xí)算法模型和算法,并將該算法應(yīng)用到機器人路徑規(guī)劃問題當(dāng)中。通過實驗對比分析顯示,監(jiān)督式強化學(xué)習(xí)能有效降低系統(tǒng)的訓(xùn)練次數(shù),提高機器人路徑規(guī)劃的智能化水平。
強化學(xué)習(xí)的模型如圖1所示[3]。Agent與環(huán)境互動并獲得環(huán)境獎懲,根據(jù)環(huán)境給予的獎勵不斷調(diào)整自身的策略,并最終學(xué)習(xí)到最優(yōu)策略。
圖1 強化學(xué)習(xí)模型
其典型的交互步驟如下所示:
1) Agent在控制決策時,根據(jù)自己的環(huán)境(狀態(tài)st)以及自身的控制策略π,采取相應(yīng)的動作at。
2) 由于Agent的動作,其所屬的狀態(tài)發(fā)生了轉(zhuǎn)移,即實現(xiàn)st→st+1。
3) Agent根據(jù)自身的狀態(tài)轉(zhuǎn)移,從外界獲得其動作的評價(獎懲rt+1)。
4) Agent根據(jù)外界環(huán)境的評價,更新自己的知識庫(Q表),為自己的下一步動作做準(zhǔn)備。
5) 回到第1步,Agent繼續(xù)做出決策,直到實現(xiàn)目標(biāo)。
以上步驟為Agent的強化探索過程,當(dāng)知識庫(Q表)收斂時,Agent將學(xué)習(xí)到完成任務(wù)的最優(yōu)策略π*。
為實現(xiàn)Agent知識庫的可量化以及安全策略的可計算,定義“回報變量”Rt,用它來估算所有回報值和評價當(dāng)前動作的好壞?;貓笞兞渴侵窤gent從t時刻開始所有獲得的所有獎懲之和,其計算公式如下:
(1)
式中:0≤γ≤1,稱為折扣系數(shù)。
由于Agent在同一狀態(tài)有多個動作可以選擇,通過定義變量“狀態(tài)值函數(shù)”Vπ(s)代表Agent處于狀態(tài)s時的期望回報值:
(2)
因此,可以通過期望的“回報變量”Vπ(s)表示Agent處于狀態(tài)s的好壞程度。
同理,可以定義“狀態(tài)-動作值函數(shù)”Qπ(s,a),表示在狀態(tài)s,采取動作a后所期望的回報值:
Qπ(s,a)=Eπ{Rt|st=s,at=a}=
(3)
Vπ(s)、Qπ(s,a)和策略π緊密相關(guān),Agent根據(jù)它們的數(shù)值評價其所處狀態(tài)s或(s,a)的好壞,繼而選擇動作a。Agent的典型選擇策略為:動作a的選擇讓Agent在t時刻獲得“狀態(tài)-動作值函數(shù)”Qπ(s,a)最大。
由于強化學(xué)習(xí)離散模型的馬爾科夫性,容易得到:
(4)
由于式(4)對模型要求很高,需要根據(jù)模型的轉(zhuǎn)移概率才能計算出期望的狀態(tài)“回報值”Vπ(s),我們希望得到一個與模型無關(guān)的算法。利用平均的“回報值”來逼近Vπ(s):設(shè)第k-1次訓(xùn)練中,狀態(tài)的“回報值”為Rk-1,那么在第k次訓(xùn)練中,狀態(tài)s的“值函數(shù)”為:
(5)
根據(jù)式(5),得到相應(yīng)的對應(yīng)的“動作-狀態(tài)值函數(shù)”:
(6)
由于強化學(xué)習(xí)最初的訓(xùn)練是隨機探索,這必然會帶來收斂慢的問題。監(jiān)督式強化學(xué)習(xí)結(jié)合了監(jiān)督學(xué)習(xí)導(dǎo)師的指導(dǎo)和強化學(xué)習(xí)自我學(xué)習(xí)的特性,在強化學(xué)習(xí)的基礎(chǔ)上引入了導(dǎo)師Supervisor的經(jīng)驗,在Agent的探索過程中加入導(dǎo)師的監(jiān)督指導(dǎo),賦予Agent的先驗知識,加快Agent尋找最優(yōu)解的過程。監(jiān)督式強化學(xué)習(xí)算法模型如圖2所示[8,11]。
圖2 監(jiān)督式強化學(xué)習(xí)模型
監(jiān)督式強化學(xué)習(xí)的動作更新策略如下所示,
a=kaE+(1-k)aS
(7)
式中:aE代表強化學(xué)習(xí)選擇的動作;aS代表監(jiān)督學(xué)習(xí)選擇的動作;k為0~1線性增加的權(quán)重系數(shù)。在初始時刻,aS的權(quán)重較大,機器人主要依靠監(jiān)督學(xué)習(xí)選擇動作。多次訓(xùn)練之后,aS的權(quán)重逐漸降低,并最終退出動作a的決策過程,此時機器人依靠強化學(xué)習(xí)選擇動作。監(jiān)督學(xué)習(xí)的動作aS可以通過多種方式得到,常用的是PID控制器、決策樹、神經(jīng)網(wǎng)絡(luò)控制器等[12]。
k的遞增方式及遞增速度對監(jiān)督式強化學(xué)習(xí)的訓(xùn)練過程有較大影響。增長過快,起到的指導(dǎo)作用不明顯;增長過慢,在有限次的訓(xùn)練過程當(dāng)中會對強化學(xué)習(xí)起到誤導(dǎo)作用。
本文將監(jiān)督式強化學(xué)習(xí)算法應(yīng)用到機器人路徑規(guī)劃當(dāng)中來說明監(jiān)督式強化學(xué)習(xí)的效果。機器人所處的物理環(huán)境為40×40的方格地圖,如圖3所示。
圖3 機器人路徑規(guī)劃地圖
機器人需要從起點(6,35)走到終點(36,6),每次只能行走一格,方向為東南西北四個方向之一。如何規(guī)劃機器人行走的路徑,讓機器人能夠以最少的步數(shù)達到目標(biāo)點是監(jiān)督式強化學(xué)習(xí)算法需要解決的問題。
設(shè)計機器人在未達到終點時,每一步的轉(zhuǎn)移得到的獎勵值r=-1,到達目標(biāo)點時的獎勵值,γ=0.9,α=0.9,機器人訓(xùn)練的次數(shù)為step=1 000,監(jiān)督學(xué)習(xí)權(quán)重增長公式為:
k=k+Δ
(8)
為了比較實驗結(jié)果,我們讓Δ取0.01、0.003 3、0.002 5三個值。
我們通過Q學(xué)習(xí)算法來得到aE,通過P控制器算法來選擇aS。首先將aE和aS單位化,然后采用式(7)以及向量合成法(如圖4所示)計算動作a。
圖4 機器人動作選擇
由于a的方向未必是東南西北四個方向之一,我們采取就近原則,將其規(guī)整到最近的四個方向之一上。
我們定義算法的性能指標(biāo)函數(shù)(平均的搜索步數(shù)):
(9)
式中:counter(i)為第i訓(xùn)練時,從起始點到目標(biāo)點所需要的步數(shù)。step為訓(xùn)練的次數(shù)。
強化學(xué)習(xí)算法和監(jiān)督式強化學(xué)習(xí)得出的結(jié)果分別如圖5、圖6所示。機器人均以最優(yōu)的步數(shù)收斂到了目標(biāo)點。
圖5 強化學(xué)習(xí)算法實現(xiàn)的路徑規(guī)劃
圖6 監(jiān)督式強化學(xué)習(xí)算法實現(xiàn)的路徑規(guī)劃
強化學(xué)習(xí)、監(jiān)督式強化學(xué)習(xí)迭代的步數(shù),如圖7-圖10所示。
圖7 強化學(xué)習(xí)算法得到的迭代步數(shù)
圖8 監(jiān)督式強化學(xué)習(xí)算法得到的迭代步數(shù)(Δ=0.01)
圖9 監(jiān)督式強化學(xué)習(xí)算法得到的迭代步數(shù)(Δ=0.003 3)
圖10 監(jiān)督式強化學(xué)習(xí)算法得到的迭代步數(shù)(Δ=0.002 5)
可以看出,強化學(xué)習(xí)在前50次訓(xùn)練當(dāng)中,Agent需要搜索多次才能找到目標(biāo)點。經(jīng)過計算它的平均搜索次數(shù)為200.638。當(dāng)Δ=0.01時,即監(jiān)督學(xué)習(xí)只在前100訓(xùn)練當(dāng)中指導(dǎo)Agent尋找目標(biāo),它的平均搜索次數(shù)為150.158;Δ=0.003 3時,它的平均搜索次數(shù)為98.974;Δ=0.002 5時,它的平均搜索次數(shù)為76.064。
從得到的數(shù)據(jù)來看,監(jiān)督學(xué)習(xí)能夠極大的提高Agent的搜索效率:強化學(xué)習(xí)在550次訓(xùn)練之后會以較穩(wěn)定的步數(shù)找到目標(biāo)點,而在Δ取0.01、0.003 3、0.002 5時,監(jiān)督強化學(xué)習(xí)的訓(xùn)練次數(shù)分別為:400、250、300。但并不是監(jiān)督學(xué)習(xí)加得越多越好,監(jiān)督學(xué)習(xí)一旦撤銷,強化學(xué)習(xí)在短時間內(nèi)會出現(xiàn)短暫的震蕩。比如當(dāng)Δ=0.002 5時,Agent在第300次以及第540次出現(xiàn)了震蕩比較大的情況。當(dāng)Δ=0.003 3時,監(jiān)督強化學(xué)習(xí)的收斂性是比較好的。
本文針對機器人的路徑規(guī)劃問題,提出了基于標(biāo)稱控制的監(jiān)督式強化學(xué)習(xí)算法。實驗結(jié)果表明:當(dāng)監(jiān)督式強化學(xué)習(xí)的導(dǎo)師信息正確時,其能顯著提高機器人的智能化水平,使機器人快速找到目標(biāo)點;當(dāng)導(dǎo)師信息給得太多,也容易出現(xiàn)對Agent的干擾,具體表現(xiàn)為
機器人的搜索目標(biāo)步驟出現(xiàn)震蕩。盡管如此,機器人仍在導(dǎo)師信息弱化時迅速找到實現(xiàn)目標(biāo)的最優(yōu)策略。