強化學習基礎篇(二十七)Model-free控制
終于推進到控制部分了,控制的問題才是核心框咙。
1伸辟、預測與控制
預測與控制的區(qū)別在于:
- 預測問題中是輸入一個MDP 以及一個策略,然后輸出基于當前策略的價值函數(shù)梅惯。
- 控制問題是MDP 宪拥,然后輸出最優(yōu)價值函數(shù)以及最優(yōu)策略。
之前的內(nèi)容主要講了MC铣减,TD她君,算法,這三個算法都是為了在給定策略下去估計價值函數(shù)葫哗。其區(qū)別在于MC需要得到一個完整的episode才能進行一次價值函數(shù)的更新缔刹,而TD方法則可以沒走一步就更新一次價值函數(shù)。但是我們的目標是要得到最優(yōu)的策略劣针,所以我們需要通過控制問題校镐,在有MDP的情況下,通過價值函數(shù)去改進策略捺典。不斷得進行迭代改進鸟廓,最終收斂到最優(yōu)策略和最優(yōu)價值函數(shù)。
控制的例子很多,比如控制一個機器人行走肝箱,讓智能體學會玩圍棋哄褒,開發(fā)一個交易管理的智能體等等。這些實際的問題在顯示中可能有著兩類問題:
- 一是煌张,MDP模型未知呐赡,但是我們可以從現(xiàn)實中很容易進行采樣收集數(shù)據(jù)。
- 二是骏融,MDP模型已知链嘀,但是問題的規(guī)模太大了,完全沒辦法進行高效的計算档玻,所以必須使用采樣的方法怀泊。
Model-free控制就是專注于解決這類問題。
2误趴、同軌策略與異軌策略(On and Off Policy)
同軌策略學習(On policy learning)就是智能體已經(jīng)有了一個策略霹琼,并且基于該策略進行采樣,以得到的經(jīng)驗軌跡集合來更新價值函數(shù)。雖有采用策略評估和策略改進對給定策略進行優(yōu)化,以獲得最優(yōu)策略迫肖。由于需要優(yōu)化的策略基于當前給定的策略肌厨,所以稱之為On Policy。
異軌策略學習(Off policy learning)是智能體雖然有一個策略,但是并不基于該策略進行采樣,而是基于另一個策略進行采樣。另一個策略可以是人類專家制定的策略等一些較為成熟的策略方法模孩。由于優(yōu)化的策略不完全基于當前策略,所以稱為Off Policy贮缅。
3榨咐、同軌蒙特卡洛控制(On-policy Monte Carlo Control)
廣義策略迭代(GPI)
回顧一下之前提到的廣義策略迭代(Generalized Policy Iteration,GPI)模型是指讓策略評估和策略改善交互的一般概念谴供,它不依賴于兩個過程的粒度(granularity)和其他細節(jié)祭芦。幾乎所有強化學習方法都可以被很好地描述為GPI。
如果評估過程和改善過程都穩(wěn)定下來憔鬼,即不再發(fā)生變化龟劲,那么價值函數(shù)和策略必須都是最優(yōu)的,如上圖(右)所示轴或。
人們還可以用兩個目標來考慮GPI中評估和改善過程的相互作用昌跌,如上圖(左)所示,上面的線代表目標價值函數(shù)照雁,下面的線代表目標蚕愤。目標會發(fā)生相互作用答恶,因為兩條線不是平行的。從一個策略和一個價值函數(shù)開始萍诱,每一次箭頭向上代表著利用當前策略進行價值函數(shù)的更新悬嗓,每一次箭頭向下代表著根據(jù)更新的價值函數(shù)貪婪地選擇新的策略,說它是貪婪的裕坊,是因為每次都采取轉(zhuǎn)移到可能的包竹、狀態(tài)函數(shù)最高的新狀態(tài)的行為。最終將收斂至最優(yōu)策略和最優(yōu)價值函數(shù)籍凝。
基于MC的GPI
在之前的GPI方法中周瞎,策略評估用到的是貝爾曼方程,策略改進使用的是貝爾曼最優(yōu)方程:
但是使用動態(tài)規(guī)劃算法來改善策略是需要知道某一狀態(tài)的所有后續(xù)狀態(tài)及狀態(tài)間轉(zhuǎn)移概率饵蒂,即:
但是如果后續(xù)的轉(zhuǎn)移概率未知声诸,則在策略估計中就不能使用貝爾曼期望方程,而是變?yōu)閟ample方法退盯,比如MC方法或TD方法彼乌。
在模型未知的時候,首先應該用狀態(tài)行為對的價值來代替狀態(tài)價值:
這樣做的目的是可以改善策略而不用知道整個模型渊迁,只需要知道在某個狀態(tài)下采取什么樣的行為價值最大即可慰照。
所以基于的GPI可以為如下形式。
即使這樣宫纬,至少還存在一個問題焚挠,即當我們每次都使用貪婪算法來改善策略的時候膏萧,將很有可能由于沒有足夠的采樣經(jīng)驗而導致產(chǎn)生一個并不是最優(yōu)的策略漓骚,我們需要不時的嘗試一些新的行為,這就是探索(Exploration)榛泛。
探索的例子
如上圖蝌蹂,在你面前有兩扇門,考慮如下的行為曹锨、獎勵并使用貪婪算法改善策略:
- 你打開左側(cè)門得到獎勵為0:
- 你打開右側(cè)門得到獎勵為1:
- 使用greedy策略孤个,會繼續(xù)去打開右側(cè)門,而不會打開左側(cè)門沛简,假設得到獎勵為+3:
- 繼續(xù)greedy策略齐鲤,打開右側(cè)門,假設得到獎勵+2:
- 如此一直循環(huán)下去椒楣,會一直打開右側(cè)門给郊。
這種情況下,打開右側(cè)門是否就一定是最好的選擇呢捧灰?
答案顯而易見是否定的淆九。因此完全使用貪婪算法改善策略通常不能得到最優(yōu)策略。為了解決這一問題,我們需要引入一個隨機機制炭庙,以一定的概率選擇當前最好的策略饲窿,同時給其它可能的行為一定的幾率,這就是探索焕蹄。
探索策略
策略是一個最簡單的探索策略逾雄,其假設所有個動作都有著非0的概率被執(zhí)行,在策略選擇中以的概率去選擇貪婪動作擦盾,并以的概率選擇隨機動作嘲驾。其數(shù)學表達式為:
如果我們在GPI的策略改進部分使用探索策略,那么我們會有理論證明保障改進的策略可以可以單調(diào)遞增的迹卢。
即對于任意的策略辽故,使用相應的得到的策略是在上的一次策略提升,即腐碱。
證明過程如下:
所以完整的MC策略迭代過程在引入了之后如下所示:
和之前講到的策略迭代方法不一樣誊垢,MC策略迭代在估計中用的是Q函數(shù),在策略改進中用的是方法症见,在實際應用中喂走,我們稱之為蒙特卡洛控制,且更確切地給出其迭代示意圖:
MC控制使用Q函數(shù)進行策略評估谋作,使用探索改善策略芋肠。該方法最終可以收斂至最優(yōu)策略。
圖中每一個向上或向下的箭頭都對應著多個episode遵蚜。也就是說我們一般在經(jīng)歷了多個episode之后才進行依據(jù)Q函數(shù)更新或策略改善帖池。
實際上我們也可以在每經(jīng)歷一個episode之后就更新Q函數(shù)或改善策略。但不管使用那種方式吭净,在使用探索下我們始終只能得到基于某一策略下的近似Q函數(shù)睡汹,且該算法沒有一個終止條件,因為它一直在進行探索寂殉。
GLIE
我們希望得到一個這樣的學習方法:
- 1囚巴、在學習開始時有足夠的探索:
- 2、最終得到的策略沒有探索友扰,是一個確定性的策略彤叉。
為此引入了另一個理論概念:GLIE(Greedy in the Limit with infinite Exploration), 如果策略能夠使得在時候降低到0,那么策略也是一個GLIE策略村怪。其算法流程如下所示:
- 首先從環(huán)境中使用策略采樣k個episode:
- 對于在episode中的每個狀態(tài)以及動作秽浇,進行如下增量更新:
- 對于在episode中的每個狀態(tài)以及動作秽浇,進行如下增量更新:
- 基于新得到的Q函數(shù)更新策略:
- 基于新得到的Q函數(shù)更新策略:
在理論上GLIE MC控制的方法是可以收斂到最優(yōu)動作值函數(shù),实愚。
4兼呵、同軌時序差分(On-policy TD)學習
MC和TD控制的差別
時序差分(Temporal-difference,TD)學習方法相比于MC的方法有著幾個優(yōu)勢:
- 低方差(low variance)
- 可以在線實學習
- 可以學習不完整的episode
因此可以很自然的想到在控制的迭代中去使用TD方法代替MC方法兔辅。也就是下面降到的Sarsa算法。
Sarsa算法
Sarsa算法的名字就是來源于上圖這個過程击喂,在智能體處在某個狀態(tài)的時候按執(zhí)行動作维苔,會得到一個即時獎勵,并在與環(huán)境交互中轉(zhuǎn)移到下一個狀態(tài)懂昂,再一次基于策略選擇動作介时。
這個時候智能體不會去執(zhí)行,而是通過自身當前的狀態(tài)行為價值函數(shù)得到該狀態(tài)行為對的價值凌彬,同時結(jié)合獲得的獎勵來更新沸柔。所以通過公式很容易可以看出SARSA的更新規(guī)則:
同軌策略的Sarsa算法描述如下:
Sarsa的收斂性
Sarsa的收斂性是有定理支持的,在滿足如下兩個條件時铲敛,Sarsa算法將收斂至最優(yōu)行為價值函數(shù)褐澎。
- 條件1:任何時候的策略符合GLIE特性;
- 條件二:步長系數(shù)滿足:以及
n-Step Sarsa
考慮從得到的n-step回報伐蒋,
我們可以得到n-step的Q-return:
所以接下來可以根據(jù)n-step的Q-return去更新Q函數(shù):
前向觀點的Sarsa()
是考慮了所有的n-step回報工三,同樣我們對,我們也可以考慮所有的n-step的Q-return 先鱼。
接下來可以根據(jù) 去更新Q函數(shù):
后向觀點的Sarsa()
和一樣俭正,我們在算法中會使用到資格跡(Eligibility trace),但是Sarsa()算法是對環(huán)境中的的state-action對維護了一個資格跡焙畔。
它體現(xiàn)的是一個結(jié)果與某一個狀態(tài)行為對的因果關(guān)系掸读,與得到結(jié)果最近的狀態(tài)行為對,以及那些在此之前頻繁發(fā)生的狀態(tài)行為對對得到這個結(jié)果的影響最大宏多。
在引入資格跡之后儿惫,Q函數(shù)的更新規(guī)則可以進行如下更新:
Sarsa()算法
除了狀態(tài)價值函數(shù)的更新方式、超參數(shù)绷落,以及資格跡以為姥闪,Sarsa()算法的思想和Sarsa是類似的始苇,這里總結(jié)下算法流程:
5砌烁、異軌策略學習(Off-policy Learning)
異軌策略學習的目標是通過計算或者去評估一個目標策略,但是會遵循另外一個行為策略來進行催式。其采樣可以是:
異軌策略這種方式之所以有效函喉,主要有幾個考慮的因素:
- 智能體可以不從自身的行為學習,而是從觀測人類專家的行為或者觀察其他智能體的行為中進行學習荣月。
- 我們可以服用在運行中那些以前產(chǎn)生的舊策略進行學習管呵,比如在更新過程中產(chǎn)生的各種策略 。
- 智能體可以在遵循一些探索策略的時候去學習最優(yōu)策略哺窄。
- 智能體可以在只遵循一個策略的時候去學習多種策略捐下。
重要性采樣
這里要先介紹下載Off-policy中重要的概念重要性采樣(Importance Sampling)账锹,重要性采樣就是我們要計算函數(shù)在分布下的期望時候,不好計算坷襟。那么我們可以轉(zhuǎn)換下思路奸柬,去轉(zhuǎn)化到計算函數(shù)在一個比較容易計算的分布下下的期望:
考慮時刻之后的動作狀態(tài)軌跡 ,可以得到該軌跡出現(xiàn)的概率為:
因此可以得到相應的重要性權(quán)重為:
即便是未知環(huán)境模型婴程,也能得到重要性權(quán)重廓奕。
IS下的異軌MC
對于off-policy Monte-Carlo使用importance sampling:
- a、使用從MC的行為策略中得到的回報去評估策略,
- b档叔、得到的加權(quán)回報為:
- c桌粉、根據(jù)加權(quán)回報更新值函數(shù):
這里要注意的是如果行為策略的概率為0,但是目標策略的概率非0衙四,就不能用了铃肯。
同時我們知道,MC方法的方差本來就很大传蹈,而重要性采樣將會使得方差急劇增大缘薛,因此結(jié)合重要性采樣的MC方法更不適用。
IS下的異軌TD
對于off-policy TD使用importance sampling卡睦,使用從TD方法在遵循行為策略的同時去去評估策略宴胧,其更新方式為:
采用TD的方式比MC的方式大大降低了方差。
算法
算法是不需要使用重要性采樣的表锻,其過程是這樣的:
- 在時刻與環(huán)境進行實際交互的行為由一個策略生成:
- 在時刻用來更新值的行為恕齐,通過一個完全greedy的策略產(chǎn)生:
其動作狀態(tài)值函數(shù)的更新方式為:
其中的TD target是:,
這里和之前的TD target還是有區(qū)別的:瞬逊,
進行異軌控制
我們已經(jīng)知道中目標策略是一個關(guān)于的貪婪策略:
行為策略是一個關(guān)于的策略显歧,所以的目標可以簡化為:
其Q函數(shù)的更新方式為:
算法描述為:
6、總結(jié)
下面兩張圖概括了各種DP算法和各種TD算法确镊,同時也揭示了各種不同算法之間的區(qū)別和聯(lián)系士骤。總的來說TD是采樣+有數(shù)據(jù)引導(bootstrap)蕾域,DP是全寬度+實際數(shù)據(jù)拷肌。如果從Bellman期望方程角度看:聚焦于狀態(tài)本身價值的是迭代法策略評估(DP)和TD學習,聚焦于狀態(tài)行為對價值函數(shù)的則是Q-策略迭代(DP)和SARSA旨巷;如果從針對狀態(tài)行為價值函數(shù)的Bellman優(yōu)化方程角度看巨缘,則是Q-價值迭代(DP)和Q學習。