一. 增強(qiáng)學(xué)習(xí)簡介
1.1 什么是增強(qiáng)學(xué)習(xí)?
機(jī)器學(xué)習(xí)的算法可以分為三類:監(jiān)督學(xué)習(xí),非監(jiān)督學(xué)習(xí)和增強(qiáng)學(xué)習(xí)。 增強(qiáng)學(xué)習(xí)也稱為強(qiáng)化學(xué)習(xí)。
增強(qiáng)學(xué)習(xí)就是將情況映射為行為,也就是去最大化收益。學(xué)習(xí)者并不是被告知哪種行為將要執(zhí)行,而是通過嘗試學(xué)習(xí)到最大增益的行為并付諸行動(dòng)。也就是說增強(qiáng)學(xué)習(xí)關(guān)注的是智能體如何在環(huán)境中采取一系列行為,從而獲得最大的累積回報(bào)。通過增強(qiáng)學(xué)習(xí),一個(gè)智能體應(yīng)該知道在什么狀態(tài)下應(yīng)該采取什么行為。RL是從環(huán)境狀態(tài)到動(dòng)作的映射的學(xué)習(xí),我們把這個(gè)映射稱為策略。
比如:flappy bird是現(xiàn)在很流行的一款小游戲,不了解的同學(xué)可以點(diǎn)鏈接進(jìn)去玩一會兒。現(xiàn)在我們讓小鳥自行進(jìn)行游戲,但是我們卻沒有小鳥的動(dòng)力學(xué)模型,也不打算了解它的動(dòng)力學(xué)。要怎么做呢? 這時(shí)就可以給它設(shè)計(jì)一個(gè)增強(qiáng)學(xué)習(xí)算法,然后讓小鳥不斷的進(jìn)行游戲,如果小鳥撞到柱子了,那就獲得-1的回報(bào),否則獲得0回報(bào)。通過這樣的若干次訓(xùn)練,我們最終可以得到一只飛行技能高超的小鳥,它知道在什么情況下采取什么動(dòng)作來躲避柱子。
增強(qiáng)學(xué)習(xí)和監(jiān)督學(xué)習(xí)的區(qū)別是:
1.? 增強(qiáng)學(xué)習(xí)是試錯(cuò)學(xué)習(xí)(Trail-and-error),由于沒有直接的指導(dǎo)信息,智能體要以不斷與環(huán)境進(jìn)行交互,通過試錯(cuò)的方式來獲得最佳策略。
2. ?延遲回報(bào),增強(qiáng)學(xué)習(xí)的指導(dǎo)信息很少,而且往往是在事后(最后一個(gè)狀態(tài))才給出的,這就導(dǎo)致了一個(gè)問題,就是獲得正回報(bào)或者負(fù)回報(bào)以后,如何將回報(bào)分配給前面的狀態(tài)。
增強(qiáng)學(xué)習(xí)的一個(gè)挑戰(zhàn)是exploration和exploitation之間的權(quán)衡。
Exploration就是嘗試之前沒有執(zhí)行過的動(dòng)作以期望獲得超乎當(dāng)前最有行為的收益。
Exploitation就是執(zhí)行根據(jù)歷史經(jīng)驗(yàn)學(xué)習(xí)到的獲得最大收益的動(dòng)作。
1.2 增強(qiáng)學(xué)習(xí)構(gòu)成的元素
1.policy 定義為在給定時(shí)刻t下,智能體表現(xiàn)的方式。具體來說,policy就是從環(huán)境狀態(tài)到動(dòng)作行為的一個(gè)映射。policy是增強(qiáng)學(xué)習(xí)的核心。
2.reward function定義為在增強(qiáng)學(xué)習(xí)問題中的目標(biāo)。具體來說,reward就是從環(huán)境狀態(tài)到獎(jiǎng)勵(lì)的一個(gè)映射。智能體的任務(wù)就是在長期的過程中,不斷最大化所得的總獎(jiǎng)勵(lì)。注意,這里的reward function指的是單次行為所造成環(huán)境狀態(tài)改變所帶來的獎(jiǎng)勵(lì),所以為即時(shí)獎(jiǎng)勵(lì)。這個(gè)reward function定義了對智能體來說,什么是對的行為,什么是錯(cuò)誤的行為。
3.value function定義為在長期獎(jiǎng)勵(lì)。也就是說是reward function的累加。如果說reward function告訴智能體什么行為是好的壞的,那么value function告訴智能體的是長期以來你的行為是好的還是壞的。
感覺來說,追求最大的reward為第一位,value為第二位。因?yàn)闆]有reward就沒有value而言。但是,對于決策動(dòng)作來說,應(yīng)該考慮value為第一位因?yàn)槲覀冏非蟮氖情L期的回報(bào)。對于估計(jì)reward是很簡單的,因?yàn)樵趫?zhí)行完當(dāng)前任務(wù)之后,就馬上能獲得回報(bào)。但是對value來說,回報(bào)需要經(jīng)過一段時(shí)間的動(dòng)作執(zhí)行才能夠得到。所以,value estimation是增強(qiáng)學(xué)習(xí)一個(gè)核心的內(nèi)容。
雖然增強(qiáng)學(xué)習(xí)的核心是value estimation,但是也有例外的情況,這就是進(jìn)化算法。進(jìn)化算法直接在策略空間搜索最優(yōu)策略,對于策略空間較小或者易于求出策略空間的情況下,進(jìn)化算法是有效的,另外當(dāng)環(huán)境狀態(tài)無法準(zhǔn)確感知的情況下,進(jìn)化算法具有優(yōu)勢。
4. a model of environment定義為對環(huán)境行為的模擬。比如說,給定state和action,我們要估計(jì)下一個(gè)時(shí)刻的state和reward,這時(shí)候就需要model of environment作出預(yù)測。
二. 可衡量的反饋(Evaluative feedback)
2.1 多臂老虎機(jī)問題
在多臂老虎機(jī)問題中,每個(gè)行為有個(gè)對應(yīng)的期望或者平均reward,我們稱這個(gè)為value of this action。如果你知道每個(gè)行為所對應(yīng)的value,那么每次試驗(yàn)?zāi)愣紩x擇對應(yīng)最大value的那個(gè)行為。但是我們假設(shè)你不知道每個(gè)行為所對應(yīng)的確切的value,但是你可有一個(gè)估計(jì)的value。
greedy action:如果保持估計(jì)value的話,那么在任何時(shí)刻都至少有一個(gè)action擁有最大的value。那么每次執(zhí)行這個(gè)對應(yīng)最大估計(jì)value的action,稱為greedy action。
Exploitation:每次選擇行為時(shí)選擇greedy action。
Exploration:每次選擇行為時(shí)選擇non-greedy action。
exploitation是正確的事,因?yàn)樗看味紘L試去最大化value的值,但是從長期來看,exploration可能會比exploitation帶來更大的收益。所以,需要在exploitation和exploration之間找到一個(gè)平衡。
2.2 Action-Value Method
聲明:Q*(a)表示action的真實(shí)值, Qt(a)表示action的估計(jì)值。
如何action a被執(zhí)行k次,并且得到reward是r1,....,rk,那么估計(jì)值就是
Qt(a) = (r1+r2+...+rk) / k
如果k=0,那么Qt(a) = 0; 如果k=∞,那么Qt(a)=Q*(a)
eplison-greedy methods:在大多數(shù)的時(shí)間內(nèi)使用exploitation,在eplison概率的情況下使用exploration。
eplison-greedy methods的好處取決于任務(wù)。如果該行為的value的方差很大,那么可以說eplison-greedy methods最終表現(xiàn)的會比greedy methods好。如果該行為的value的方差為0,那么可以說greedy methods更好,因?yàn)樗看味际菆?zhí)行最大value的行為。
2.3 Soft-max Action Selection
eplison-greedy methods雖然有很多的好處,但是一個(gè)缺點(diǎn)就是在exploration的時(shí)候,選擇每個(gè)action的概率是一樣的。那么就是說,它很可能會選到一個(gè)最爛的action。soft-max action selection就是基于對這種情況的考慮,在exploration的時(shí)候,還是給greedy action最大的概率,其他的action根據(jù)其value的大小,按概率進(jìn)行選擇。也就是說,最爛的行為被選到的概率是最小的。
2.4 Evaluation Versus Instruction
evaluative-feedback:當(dāng)執(zhí)行完一個(gè)行為后,得到的reward只是反映出你這個(gè)行為有多好,但是沒有一個(gè)明確的表態(tài)說你這個(gè)行為是正確的還是錯(cuò)誤的。
instructive-feedback:當(dāng)執(zhí)行完一個(gè)行為后,它會告訴你這個(gè)行為是正確的還是錯(cuò)誤的。所以在選擇行為的時(shí)候,就選擇在多大數(shù)時(shí)間內(nèi)提醒的是正確的動(dòng)作。這種方法也被稱為supervised learning。
比如有100個(gè)行為,你選了第32號行為,那么evaluative-feedback會告訴你,你的score是7.2,那么instructive-feedback會說67號行為可能才是正確的行為。
2.5 Incremental Implementation
Qt(a) = (r1+r2+...+rk) / k 計(jì)算Qt(a)的話,要存好多的r1到rk的值,那么隨著時(shí)間的增長,需要的計(jì)算量和內(nèi)存都很大。那么Qt(a)可換一種方式表達(dá):那么,可以表達(dá)為:
new estimate = old estimate + (target - old estimate) / step size
target - old estimate = error?
step size隨著k改變,從這個(gè)式子同樣可以看出,當(dāng)k趨近于無窮大的時(shí)候,這個(gè)error就很小,那么old estimate就幾乎約等于new estimate,也就是說收斂了。
2.6 Tracking a Nonstationary Problem
上面所討論的問題都是基于恒定的,假設(shè)多臂老虎機(jī)的action所對應(yīng)的值不是恒定的,是變化的,那又該如何處理。一個(gè)最典型的做法就是將step size設(shè)置為常數(shù),因?yàn)?.4的公式中,step size是隨著執(zhí)行k次action而變化的。其中, alpha為step-size,是0-1之間的取值。這導(dǎo)致Qk為過去所得到的所有reward的weighted平均值和Q0.
因?yàn)?/p>
所以稱為weighted average。
2.7 Optimistic Initial Values
所有我們之前討論的方法都在一定程度上依賴于初始動(dòng)作的值。初始動(dòng)作值可以作為一種簡單的手段來鼓勵(lì)explore.
比如,多臂老虎機(jī)的問題,我們設(shè)置每個(gè)動(dòng)作的初始估計(jì)值為5而不是0,動(dòng)作的真實(shí)值是服從0,1正態(tài)分布。 那么無論你一開始選擇哪個(gè)動(dòng)作,反饋總是小于初始估計(jì)值。那么,這種優(yōu)化機(jī)制會鼓勵(lì)去explore,因?yàn)槊看蝿?dòng)作的執(zhí)行,都會讓智能體很失望,因?yàn)檎鎸?shí)值和估計(jì)值總是相差很大。所以即使是采用greedy的方法,那也會采取不同動(dòng)作n次,直到估計(jì)值收斂。這個(gè)初始化方法對于stational的問題會鼓勵(lì)explore并且有效,但是對于nonstational的問題,就并能得到很好的效果。
2.8 Reinforcement Comparison
從直覺來說,一個(gè)動(dòng)作能帶來更大的reward應(yīng)該多執(zhí)行些,帶來更小的reward應(yīng)該少執(zhí)行些。但是,怎么樣才知道一個(gè)動(dòng)作帶來的reward是更大還是更小呢?這時(shí)候就需要和一個(gè)標(biāo)準(zhǔn)水平對比reward,叫做reference reward。reference reward通常來說就是前k個(gè)動(dòng)作的帶來的reward 的平均值。
Reinforcement Comparison:就是一個(gè)基于下列想法的方法:當(dāng)一個(gè)動(dòng)作帶來比reference reward更大的reward,那么就說這個(gè)reward更大。反之亦然。
所以該方法選擇action不是基于對value的估計(jì),而只是計(jì)算一個(gè)均值。對某個(gè)動(dòng)作的偏好可以用softmax表示:
該式子表示在t時(shí)刻選擇action a的概率。
pt(a)表示在t時(shí)刻,對action a的偏好程度。該偏好程度可通過下列公式進(jìn)行更新:
Belta是一個(gè)正的step size參數(shù)。rt是即時(shí)reward,r-t是reference reward。從這個(gè)式子可以看出來,當(dāng)action帶來reward更大的時(shí)候,那么選擇該action的概率就會增大。反之亦然。
reference reward的更新通過下面這個(gè)公式進(jìn)行:alpha是在于[0,1]之間取值的step size的參數(shù)。
2.9 Pursuit Methods
Pursuit Methods:這個(gè)方法是action-value和action preference的結(jié)合。該思想是不斷的‘pursuit’ greedy action(就是Q最大的那個(gè)action)然后通過action preference來更新對該action的偏好。
對該greedy action選擇的概率的更新如下:
對其他的action選擇的概率的更新如下:
對Q的更新同value-action的方法。
2.10 Associative Search
到目前為止,我們還沒考慮過一種情況,那就是不同動(dòng)作要對應(yīng)不同的情況。我們考慮的都是在task是stationary的時(shí)候,采取單一最優(yōu)動(dòng)作,或者在task是nonstationary的時(shí)候采取一系列最優(yōu)動(dòng)作以滿足環(huán)境的變化。但是,在通常的強(qiáng)化學(xué)習(xí)任務(wù)中,設(shè)計(jì)到的環(huán)境變化往往不是單一的,所以我們要讓智能體學(xué)會如何在不同的環(huán)境中,采取不同的動(dòng)作。
還是老虎機(jī)的例子,你可能面對n個(gè)賭博臂,如果每次變化是隨機(jī)的,那你面對的是單一的nonstationary的問題,如果每次變化是固定的,那你面對的是單一的stationary的問題。那么,能不能換個(gè)復(fù)雜點(diǎn)的情況。就是每當(dāng)你選擇不同的賭博臂的時(shí)候,老虎機(jī)的提示燈顏色變化不同,這個(gè)可以作為你選擇賭博臂的一個(gè)提示。比如說,所學(xué)到的結(jié)果是,當(dāng)是紅色提示燈的時(shí)候,選擇1號賭博臂,當(dāng)時(shí)黃色提示燈的時(shí)候,選擇2號賭博臂。所以,這個(gè)是強(qiáng)化學(xué)習(xí)更典型的一個(gè)問題。因此,這時(shí)候會需要state表示你周圍的環(huán)境,將其與action聯(lián)系起來。在接下來的一章會展開介紹。
三. 馬爾可夫鏈
3.1 The Agent-Environment Interface
agent:學(xué)習(xí)者和決策者
environment:除了agent之外的任何一切
state:環(huán)境的抽象表達(dá)
policy:agent會生成一個(gè)從state到選擇action的概率的一個(gè)映射,這個(gè)映射為policy。
3.2 Goals and Rewards
reward:要設(shè)置為我們想達(dá)到的目標(biāo)。如果agent為我們的目標(biāo)做出了行動(dòng),那么就應(yīng)該給它獎(jiǎng)勵(lì)。明確的是,這個(gè)獎(jiǎng)勵(lì)的信號應(yīng)該定義為你想要達(dá)成的目標(biāo)是什么,而不是告訴它如何去達(dá)成這個(gè)目標(biāo),比如設(shè)置子任務(wù)之類的。所以來說reward和goal是相連的,我們的goal決定了reward的定義。
3.3 Returns
Return 的無限表達(dá):簡單地,我們可以將return定義為reward的和:episodic tasks:在任務(wù)中,有一個(gè)自然的表示任務(wù)終結(jié)的時(shí)間點(diǎn),我們把這個(gè)開始到結(jié)束的一個(gè)過程稱為episode,比如說一盤游戲的結(jié)束,一盤棋的結(jié)束等。每個(gè)episode結(jié)束的那個(gè)特殊的state稱為terminal state。所有的nonterminal state的集合用S表示,含有terminal state的S用S+表示。episodic tasks能應(yīng)用上面定義的return。
continuing tasks:但是不同于episodic tasks,有的任務(wù)并沒有自然的終止過程。比如一個(gè)任務(wù)需要貫穿一個(gè)agent的一生。所以對于這種任務(wù)而言,終止時(shí)間T=∞。所以,對于return來說,很有肯能就是∞,假設(shè)定義r為1.
Return的有限表達(dá):discount rate決定了未來reward在當(dāng)前的價(jià)值。如何r<1,那么一個(gè)無限的和就會有一個(gè)有限的值。如果r=0,那么agent是鼠目寸光的,只關(guān)心當(dāng)前reward的最大回報(bào)就好。如果r趨近于1,那么agent是很有遠(yuǎn)見的,未來reward對當(dāng)前價(jià)值的影響越大。
3.4 Unified Notation for Episodic and Continuing Tasks
S_t,i 表示在時(shí)間t,第i個(gè)episode的狀態(tài)。但是因?yàn)槊總€(gè)episode的狀態(tài)具有共性,所以常用S_t代替S_t,i。此表示法同樣的道理用于a_t,i, r_t,i等。absorbing state:僅在自身和reward為0之間轉(zhuǎn)換。如上圖實(shí)心正方形所示。
上圖可知,無論是加S0-S2,還是S0-S∞,結(jié)果都是3.所以,這個(gè)對有限的reward也適用,因?yàn)槠淇梢员硎緸椋核裕眠@個(gè)表示episode和continuing tasks的關(guān)系。
3.5 馬爾科夫特性
Markov property: 馬爾可夫性(無后效性),也就是指系統(tǒng)的下個(gè)狀態(tài)只與當(dāng)前狀態(tài)信息有關(guān),而與更早之前的狀態(tài)無關(guān)。
state: 對agent來說一切有用的外界信息。
Markov:所有的state信號能成功的表示所有相關(guān)的信息。
試想下,如果在t的時(shí)刻采取的動(dòng)作,那么在t+1的時(shí)刻,環(huán)境對行為會產(chǎn)生什么反應(yīng)?所以這個(gè)是個(gè)動(dòng)態(tài)的過程,用數(shù)學(xué)可表示為:但是,如果這個(gè)state符合馬爾科夫特性,那么在t+1時(shí)刻的反應(yīng)僅僅依賴于t時(shí)刻的state和action。甚至在一些不符合馬爾科夫的state里,我們可以認(rèn)為它們近似于馬爾科夫特性。
3.6 馬爾科夫決策過程
Markov decision process(MDP):符合馬爾科夫特性的增強(qiáng)學(xué)習(xí)任務(wù)叫做馬爾科夫決策過程。與上面不同的是MDP考慮了動(dòng)作,即系統(tǒng)下個(gè)狀態(tài)不僅和當(dāng)前的狀態(tài)有關(guān),也和當(dāng)前采取的動(dòng)作有關(guān)。舉下棋的例子,當(dāng)我們在某個(gè)局面(狀態(tài)s)走了一步(動(dòng)作a),這時(shí)對手的選擇(導(dǎo)致下個(gè)狀態(tài)s’)我們是不能確定的,但是他的選擇只和s和a有關(guān),而不用考慮更早之前的狀態(tài)和動(dòng)作,即s’是根據(jù)s和a隨機(jī)生成的。
Hidden Markov Model(HMM):它用來描述一個(gè)含有隱含未知參數(shù)的馬爾可夫過程。
www.cnblogs.com/skyme/p/4651331.html
finite Markov decision process:如果state和action的空間是有限的,那么稱為有限的馬爾科夫決策過程。
給定state St和action a,下一個(gè)狀態(tài)St+1的概率是:
給定state St和action a,下一個(gè)狀態(tài)reward的是:3.7 Value Functions
State-value function:
the value of a state under a policy, denoted Vpai(s)
Action-value function:
在Qπ(s,a)中,不僅策略π和初始狀態(tài)s是我們給定的,當(dāng)前的動(dòng)作a也是我們給定的,這是Qπ(s,a)和Vπ(a)的主要區(qū)別。
例子:
blog.csdn.net/zz_1215/article/details/44138823
3.8 貝爾曼方程(Bellman Equation)
Bellman equation:
Vπ(s,a)和Qπ(s,a)這兩個(gè)式子稱為貝爾曼方程,它表明了當(dāng)前狀態(tài)的值函數(shù)與下個(gè)狀態(tài)的值函數(shù)的關(guān)系。optimal policy: 當(dāng)且僅當(dāng)一個(gè)policy比之前的policy所帶來的Value相等或者更好,這個(gè)policy稱為最優(yōu)policy。
optimal state-value function:optimal action-value function:
四. 動(dòng)態(tài)規(guī)劃
增強(qiáng)學(xué)習(xí)的目的就是求解馬爾可夫決策過程(MDP)的最優(yōu)策略,使其在任意初始狀態(tài)下,都能獲得最大的Vπ值。(本文不考慮非馬爾可夫環(huán)境和不完全可觀測馬爾可夫決策過程(POMDP)中的增強(qiáng)學(xué)習(xí))。那么如何求解最優(yōu)策略呢?基本的解法有三種:動(dòng)態(tài)規(guī)劃法(dynamic programming methods),蒙特卡羅方法(Monte Carlo methods),時(shí)間差分法(temporal difference)。動(dòng)態(tài)規(guī)劃法是其中最基本的算法,也是理解后續(xù)算法的基礎(chǔ)。
動(dòng)態(tài)規(guī)劃是一種通過把復(fù)雜問題劃分為子問題,并對自問題進(jìn)行求解,最后把子問題的解結(jié)合起來解決原問題的方法。「動(dòng)態(tài)」是指問題由一系列的狀態(tài)組成,而且狀態(tài)能一步步地改變,「規(guī)劃」即優(yōu)化每一個(gè)子問題。因?yàn)镸DP 的 Markov 特性,即某一時(shí)刻的子問題僅僅取決于上一時(shí)刻的子問題的 action,并且 Bellman 方程可以遞歸地切分子問題,所以我們可以采用動(dòng)態(tài)規(guī)劃來求解 Bellman 方程。
優(yōu)化目標(biāo):
4.1 Policy Evaluation
policy evaluation: ?對于任意的policy,計(jì)算state-value function。
對于確定性策略,值函數(shù):
擴(kuò)展到更一般的情況,如果在某策略π下,π(s)對應(yīng)的動(dòng)作a有多種可能,每種可能記為π(a|s),則狀態(tài)值函數(shù)定義如下:
一般采用迭代的方法更新狀態(tài)值函數(shù),首先將所有Vπ(s)的初值賦為0(其他狀態(tài)也可以賦為任意值,不過吸收態(tài)必須賦0值),然后采用如下式子更新所有狀態(tài)s的值函數(shù)(第k+1次迭代):
對于Vπ(s),僅用一個(gè)數(shù)組保存各狀態(tài)值函數(shù),每當(dāng)?shù)玫揭粋€(gè)新值,就將舊的值覆蓋,形如[Vk+1(s1),Vk+1(s2),Vk(s3)..],第k+1次迭代的Vπ(s)可能用到第k+1次迭代得到的Vπ(s')。更新算法如下:
4.2 Policy Improvement
Policy Improvement:上一節(jié)中進(jìn)行策略估計(jì)的目的,是為了尋找更好的策略,這個(gè)過程叫做策略改進(jìn)。
假設(shè)我們有一個(gè)策略π,并且確定了它的所有狀態(tài)的值函數(shù)Vπ(s)。對于某狀態(tài)s,有動(dòng)作a0=π(s)。 那么如果我們在狀態(tài)s下不采用動(dòng)作a0,而采用其他動(dòng)作a≠π(s)是否會更好呢?要判斷好壞就需要我們計(jì)算行為值函數(shù)Qπ(s,a)。
評判標(biāo)準(zhǔn)是:Qπ(s,a)是否大于Vπ(s)。如果Qπ(s,a)> Vπ(s),那么至少說明新策略【僅在狀態(tài)s下采用動(dòng)作a,其他狀態(tài)下遵循策略π】比舊策略【所有狀態(tài)下都遵循策略π】整體上要更好。
策略改進(jìn)定理(policy improvement theorem):π和π'是兩個(gè)確定的策略,如果對所有狀態(tài)s∈S有Qπ(s,π'(s))≥Vπ(s),那么策略π'必然比策略π更好,或者至少一樣好。其中的不等式等價(jià)于Vπ'(s)≥Vπ(s)。
有了在某狀態(tài)s上改進(jìn)策略的方法和策略改進(jìn)定理,我們可以遍歷所有狀態(tài)和所有可能的動(dòng)作a,并采用貪心策略來獲得新策略π'。即對所有的s∈S, 采用下式更新策略:
這種采用關(guān)于值函數(shù)的貪心策略獲得新策略,改進(jìn)舊策略的過程,稱為策略改進(jìn)(Policy Improvement)。
4.3 Policy Iteration
策略迭代算法就是上面兩節(jié)內(nèi)容的組合。假設(shè)我們有一個(gè)策略π,那么我們可以用policy evaluation獲得它的值函數(shù)Vπ(s),然后根據(jù)policy improvement得到更好的策略π',接著再計(jì)算Vπ'(s),再獲得更好的策略π'',整個(gè)過程順序進(jìn)行如下圖所示:算法如下:
4.4 Value Iteration
policy iteration的缺點(diǎn):在每次的policy iteration中,都包含了policy evaluation,因?yàn)閜olicy evaluation自身則需要掃描(sweep)所有的狀態(tài)若干次,其中巨大的計(jì)算量直接影響了策略迭代算法的效率。我們必須要獲得精確的Vπ值嗎?事實(shí)上不必,有幾種方法可以在保證算法收斂的情況下,縮短策略估計(jì)的過程。
Value Iteration:policy iteration的policy evaluation可以被簡化以至于不會失去其收斂的保證。Value Iteration就是其中一種簡化的辦法。它的每次迭代只掃描(sweep)了每個(gè)狀態(tài)一次。值迭代的每次迭代對所有的s∈S按照下列公式更新:
即在值迭代的第k+1次迭代時(shí),直接將能獲得的最大的Vπ(s)值賦給Vk+1。值迭代算法直接用可能轉(zhuǎn)到的下一步s'的V(s')來更新當(dāng)前的V(s),算法甚至都不需要存儲策略π。而實(shí)際上這種更新方式同時(shí)卻改變了策略πk和V(s)的估值Vk(s)。 直到算法結(jié)束后,我們再通過V值來獲得最優(yōu)的π。此外,值迭代還可以理解成是采用迭代的方式逼近1中所示的貝爾曼最優(yōu)方程。
值迭代完整的算法如圖所示:
由上面的算法可知,值迭代的最后一步,我們才根據(jù)V*(s),獲得最優(yōu)策略π*。
一般來說值迭代和策略迭代都需要經(jīng)過無數(shù)輪迭代才能精確的收斂到V*和π*, 而實(shí)踐中,我們往往設(shè)定一個(gè)閾值來作為中止條件,即當(dāng)Vπ(s)值改變很小時(shí),我們就近似的認(rèn)為獲得了最優(yōu)策略。在折扣回報(bào)的有限MDP(discounted finite MDPs)中,進(jìn)過有限次迭代,兩種算法都能收斂到最優(yōu)策略π*。
動(dòng)態(tài)規(guī)劃的優(yōu)點(diǎn)在于它有很好的數(shù)學(xué)上的解釋,但是動(dòng)態(tài)要求一個(gè)完全已知的環(huán)境模型,這在現(xiàn)實(shí)中是很難做到的。
4.5 Asynchronous Dynamic Programming(異步動(dòng)態(tài)規(guī)劃)
動(dòng)態(tài)規(guī)劃的缺點(diǎn):在上面討論過的DP中,它涉及了對所有狀態(tài)集的掃描。當(dāng)狀態(tài)數(shù)量較大的時(shí)候,動(dòng)態(tài)規(guī)劃法的效率也將是一個(gè)問題。異步動(dòng)態(tài)規(guī)劃就很好的解決了這個(gè)問題。
These algorithms back up the values of states in any order whatsoever, using whatever values of other states happen to be available. The values of some states may be backed up several times before the values of others are backed up once.
4.6 Generalized Policy Iteration
Generalized Policy Iteration:我們使用廣義策略迭代(GPI)一詞來引用policy evaluation和policy improvement過程互動(dòng)的一般思路,而不依賴于兩個(gè)流程的粒度和其他細(xì)節(jié)。
GPI可表示為如下:
五. 蒙特卡洛方法
蒙特卡羅方法又叫統(tǒng)計(jì)模擬方法,它使用隨機(jī)數(shù)(或偽隨機(jī)數(shù))來解決計(jì)算的問題,是一類重要的數(shù)值計(jì)算方法。該方法的名字來源于世界著名的賭城蒙特卡羅,而蒙特卡羅方法正是以概率為基礎(chǔ)的方法。
一個(gè)簡單的例子可以解釋蒙特卡羅方法,假設(shè)我們需要計(jì)算一個(gè)不規(guī)則圖形的面積,那么圖形的不規(guī)則程度和分析性計(jì)算(比如積分)的復(fù)雜程度是成正比的。而采用蒙特卡羅方法是怎么計(jì)算的呢?首先你把圖形放到一個(gè)已知面積的方框內(nèi),然后假想你有一些豆子,把豆子均勻地朝這個(gè)方框內(nèi)撒,散好后數(shù)這個(gè)圖形之中有多少顆豆子,再根據(jù)圖形內(nèi)外豆子的比例來計(jì)算面積。當(dāng)你的豆子越小,撒的越多的時(shí)候,結(jié)果就越精確。
現(xiàn)在我們開始講解增強(qiáng)學(xué)習(xí)中的蒙特卡羅方法,與上篇的DP不同的是,這里不需要對環(huán)境的完整知識。蒙特卡羅方法僅僅需要經(jīng)驗(yàn)就可以求解最優(yōu)策略,這些經(jīng)驗(yàn)可以在線獲得或者根據(jù)某種模擬機(jī)制獲得。
要注意的是,我們僅將蒙特卡羅方法定義在episode task上,所謂的episode task就是指不管采取哪種策略π,都會在有限時(shí)間內(nèi)到達(dá)終止?fàn)顟B(tài)并獲得回報(bào)的任務(wù)。比如玩棋類游戲,在有限步數(shù)以后總能達(dá)到輸贏或者平局的結(jié)果并獲得相應(yīng)回報(bào)。
那么什么是經(jīng)驗(yàn)?zāi)兀拷?jīng)驗(yàn)其實(shí)就是訓(xùn)練樣本。比如在初始狀態(tài)s,遵循策略π,最終獲得了總回報(bào)R,這就是一個(gè)樣本。如果我們有許多這樣的樣本,就可以估計(jì)在狀態(tài)s下,遵循策略π的期望回報(bào),也就是狀態(tài)值函數(shù)Vπ(s)了。蒙特卡羅方法就是依靠樣本的平均回報(bào)來解決增強(qiáng)學(xué)習(xí)問題的。
盡管蒙特卡羅方法和動(dòng)態(tài)規(guī)劃方法存在諸多不同,但是蒙特卡羅方法借鑒了很多動(dòng)態(tài)規(guī)劃中的思想。在動(dòng)態(tài)規(guī)劃中我們首先進(jìn)行策略估計(jì),計(jì)算特定策略π對應(yīng)的Vπ和Qπ,然后進(jìn)行策略改進(jìn),最終形成策略迭代。這些想法同樣在蒙特卡羅方法中應(yīng)用。
5.1 Monte Carlo Policy Evaluation(State Values)
every-visit MC method:Vπ(s)是在所有的episodes里,每次對state s訪問產(chǎn)生的所有回報(bào)的平均值。
first-visit MC method:Vπ(s)是在所有的episodes里,第一次對state s訪問產(chǎn)生的所有回報(bào)的平均值。
first-visit MC method的算法如下:
舉例如下:
5.2 Monte Carlo Estimation of Action Values
如果模型是不可知的,那么此時(shí)去估計(jì)action values比state values來的更好。如果模型已知,只要state values就足夠了;如果模型未知,只有state values是不夠的。因?yàn)樵跔顟B(tài)轉(zhuǎn)移概率p(s'|a,s)已知的情況下,策略估計(jì)后有了新的值函數(shù),我們就可以進(jìn)行策略改進(jìn)了,只需要看哪個(gè)動(dòng)作能獲得最大的期望累積回報(bào)就可以。然而在沒有準(zhǔn)確的狀態(tài)轉(zhuǎn)移概率的情況下這是不可行的。為此,我們需要估計(jì)動(dòng)作值函數(shù)Qπ(s,a)。Qπ(s,a)的估計(jì)方法前面類似,即在狀態(tài)s下采用動(dòng)作a,后續(xù)遵循策略π獲得的期望累積回報(bào)即為Qπ(s,a),依然用平均回報(bào)來估計(jì)它。有了Q值,就可以進(jìn)行策略改進(jìn)了
持續(xù)探索(Maintaining Exploration):
下面我們來探討一下Maintaining Exploration的問題。前面我們講到,我們通過一些樣本來估計(jì)Q和V,并且在未來執(zhí)行估值最大的動(dòng)作。這里就存在一個(gè)問題,假設(shè)在某個(gè)確定狀態(tài)s0下,能執(zhí)行a0, a1, a2這三個(gè)動(dòng)作,如果智能體已經(jīng)估計(jì)了兩個(gè)Q函數(shù)值,如Q(s0,a0), Q(s0,a1),且Q(s0,a0)>Q(s0,a1),那么它在未來將只會執(zhí)行一個(gè)確定的動(dòng)作a0。這樣我們就無法更新Q(s0,a1)的估值和獲得Q(s0,a2)的估值了。這樣的后果是,我們無法保證Q(s0,a0)就是s0下最大的Q函數(shù)。
Maintaining Exploration的思想很簡單,就是用softpolicies來替換確定性策略,使所有的動(dòng)作都有可能被執(zhí)行。比如其中的一種方法是ε-greedy policy,即在所有的狀態(tài)下,用1-ε的概率來執(zhí)行當(dāng)前的最優(yōu)動(dòng)作a0,ε的概率來執(zhí)行其他動(dòng)作a1, a2。這樣我們就可以獲得所有動(dòng)作的估計(jì)值,然后通過慢慢減少ε值,最終使算法收斂,并得到最優(yōu)策略。簡單起見,在下面MC控制中,我們使用exploring start,即僅在第一步令所有的a都有一個(gè)非零的概率被選中。
5.3 Monte Carlo Control
我們看下MC版本的策略迭代過程:
根據(jù)前面的說法,值函數(shù)Qπ(s,a)的估計(jì)值需要在無窮多episode后才能收斂到其真實(shí)值。這樣的話策略迭代必然是低效的。在上一篇DP中,我們了值迭代算法,即每次都不用完整的策略估計(jì),而僅僅使用值函數(shù)的近似值進(jìn)行迭代,這里也用到了類似的思想。每次策略的近似值,然后用這個(gè)近似值來更新得到一個(gè)近似的策略,并最終收斂到最優(yōu)策略。這個(gè)思想稱為廣義策略迭代。
具體到MC control,就是在每個(gè)episode后都重新估計(jì)下動(dòng)作值函數(shù)(盡管不是真實(shí)值),然后根據(jù)近似的動(dòng)作值函數(shù),進(jìn)行策略更新。這是一個(gè)episode by episode的過程。
一個(gè)采用exploring starts的Monte Carlo control算法,如下圖所示,稱為Monte Carlo ES。而對于所有狀態(tài)都采用softpolicy的版本,這里不再討論。
Monte Carlo方法的一個(gè)顯而易見的好處就是我們不需要環(huán)境模型了,可以從經(jīng)驗(yàn)中直接學(xué)到策略。它的另一個(gè)好處是,它對所有狀態(tài)s的估計(jì)都是獨(dú)立的,而不依賴與其他狀態(tài)的值函數(shù)。在很多時(shí)候,我們不需要對所有狀態(tài)值進(jìn)行估計(jì),這種情況下蒙特卡羅方法就十分適用。
不過,現(xiàn)在增強(qiáng)學(xué)習(xí)中,直接使用MC方法的情況比較少,而較多的采用TD算法族。但是如同DP一樣,MC方法也是增強(qiáng)學(xué)習(xí)的基礎(chǔ)之一,因此依然有學(xué)習(xí)的必要。
5.4? On-Policy Monte Carlo Control
你估計(jì)policy或者value-function的時(shí)候,需要用到一些樣本,這些樣本也是需要采用某種策略(可能固定、可能完全隨機(jī)、也可能隔一段時(shí)間調(diào)整一次)生成的。那么,判斷on-policy和off-policy的關(guān)鍵在于,你所估計(jì)的policy或者value-function和你生成樣本時(shí)所采用的policy? 是不是一樣。如果一樣,那就是on-policy的,否則是off-policy的。基于experience replay的方法基本上都是off-policy的。
on-policy: On-policy methods attempt to evaluate or improve the policy that is used to make decisions.
epsilon-soft on policy算法如下:
5.5 Off-Policy Monte Carlo Control
off-policy: the distinguishing feature of on-policy methods is that they estimate the value of a policy while using it for control. In off-policy methods these two functions are separated. The policy used to generate behaviour, called the behaviour policy, may in fact be unrelated to the policy that is evaluated and improved, called the estimation policy. An advantage of this separation is that the estimation policy may be deterministic (e.g., greedy), while the behaviour policy can continue to sample all possible actions.
off-policy算法如下:
六. 時(shí)間差分學(xué)習(xí)
對于動(dòng)態(tài)規(guī)劃算法有如下特性:
1. 需要環(huán)境模型,即狀態(tài)轉(zhuǎn)移概率Psa。需要環(huán)境模型指的是,需要環(huán)境已知,比如grid的游戲,當(dāng)前狀態(tài)已知,并且知道采取哪個(gè)動(dòng)作,那么下一個(gè)狀態(tài)一定是已知的,即你將會出現(xiàn)在grid的哪個(gè)格子中。
2. 狀態(tài)值函數(shù)的估計(jì)是自舉的(bootstrapping),即當(dāng)前狀態(tài)值函數(shù)的更新依賴于已知的其他狀態(tài)值函數(shù)。
相對的,蒙特卡羅方法的特點(diǎn)則有:
1. 可以從經(jīng)驗(yàn)中學(xué)習(xí)不需要環(huán)境模型。不需要環(huán)境模型指的是,允許環(huán)境位置。比如開車的小游戲,那么僅僅知道你當(dāng)前的狀態(tài)和你下一個(gè)將要采取的動(dòng)作,你是不知道下一狀態(tài)的。因?yàn)槟憧梢杂X得你自己的狀態(tài),可是什么時(shí)候你前面會出現(xiàn)一輛車子這個(gè)是未知的。所以,這種情況是環(huán)境位置,所以需要蒙特卡洛用概率去估計(jì)你下一個(gè)的狀態(tài)。
2. 狀態(tài)值函數(shù)的估計(jì)是相互獨(dú)立的
3. 只能用于episode tasks
而我們希望的算法是這樣的:
1. 不需要環(huán)境模型
2. 它不局限于episode task,可以用于連續(xù)的任務(wù)
時(shí)間差分學(xué)習(xí)(Temporal-Difference learning, TD learning)正是具備了上述特性的算法,它結(jié)合了DP和MC,并兼具兩種算法的優(yōu)點(diǎn)。
6.1 TD Prediction
在介紹TD learning之前,我們先引入如下簡單的蒙特卡羅算法,我們稱為constant-αMC,它的狀態(tài)值函數(shù)更新公式如下:其中Rt是每個(gè)episode結(jié)束后獲得的實(shí)際累積回報(bào),α是學(xué)習(xí)率,這個(gè)式子的直觀的理解就是用實(shí)際累積回報(bào)Rt作為狀態(tài)值函數(shù)V(st)的估計(jì)值。具體做法是對每個(gè)episode,考察實(shí)驗(yàn)中st的實(shí)際累積回報(bào)Rt和當(dāng)前估計(jì)V(st)的偏差值,并用該偏差值乘以學(xué)習(xí)率來更新得到V(St)的新估值。不同的是,對于蒙特卡羅算法,必須等到一個(gè)episode結(jié)束之后才能知道Rt, 但是TD算法只要等到下一個(gè)時(shí)間點(diǎn)t+1即可獲得rt.
所以,最簡單的TD方法,即TD(0):
與MC不同的是,TD(0)用代替了Rt.
為什么修改成這種形式呢,我們回憶一下狀態(tài)值函數(shù)的定義:容易發(fā)現(xiàn)MC是利用6.3的形式去估計(jì)target,而DP是利用6.4的形式去估計(jì)target。The Monte Carlo target is an estimate because the expected value in(6.3) is not known; a sample return is used in place of the real expected return. The DP target is an estimate not because of the expected values, which are assumed to be completely provided by a model of the environment, but because Vpai(St+1) is not known and the current estimate, ,Vt(s+1) is used instead. The TD target is an estimate for both reasons: it samples the expected values in(6.4) and it uses the current estimate instead of the true. Thus, TD methods combine the sampling of Monte Carlo with the bootstrapping of DP. 即利用真實(shí)的立即回報(bào)rt+1和下個(gè)狀態(tài)的值函數(shù)V(st+1)來更新V(st),這種方式就稱為時(shí)間差分(temporal difference)。由于我們沒有狀態(tài)轉(zhuǎn)移概率,所以要利用多次實(shí)驗(yàn)來得到期望狀態(tài)值函數(shù)估值。類似MC方法,在足夠多的實(shí)驗(yàn)后,狀態(tài)值函數(shù)的估計(jì)是能夠收斂于真實(shí)值的。
那么MC和TD(0)的更新公式的有何不同呢?我們舉個(gè)例子,假設(shè)有以下8個(gè)episode, 其中A-0表示經(jīng)過狀態(tài)A后獲得了回報(bào)0:
首先我們使用constant-ααMC方法估計(jì)狀態(tài)A的值函數(shù),其結(jié)果是V(A)=0V(A)=0,這是因?yàn)闋顟B(tài)A只在episode 1出現(xiàn)了一次,且其累計(jì)回報(bào)為0。
現(xiàn)在我們使用TD(0)的更新公式,簡單起見取λ=1λ=1,我們可以得到V(A)=0.75V(A)=0.75。這個(gè)結(jié)果是如何計(jì)算的呢? 首先,狀態(tài)B的值函數(shù)是容易求得的,B作為終止?fàn)顟B(tài),獲得回報(bào)1的概率是75%,因此V(B)=0.75V(B)=0.75。接著從數(shù)據(jù)中我們可以得到狀態(tài)A轉(zhuǎn)移到狀態(tài)B的概率是100%并且獲得的回報(bào)為0。根據(jù)公式(2)可以得到V(A)←V(A)+α[0+λV(B)?V(A)]V(A)←V(A)+α[0+λV(B)?V(A)],可見在只有V(A)=λV(B)=0.75V(A)=λV(B)=0.75的時(shí)候,式(2)收斂。對這個(gè)例子,可以作圖表示:
可見式(2)由于能夠利用其它狀態(tài)的估計(jì)值,其得到的結(jié)果更加合理,并且由于不需要等到任務(wù)結(jié)束就能更新估值,也就不再局限于episode task了。此外,實(shí)驗(yàn)表明TD(0)從收斂速度上也顯著優(yōu)于MC方法。
將式(2)作為狀態(tài)值函數(shù)的估計(jì)公式后,前面文章中介紹的策略估計(jì)算法就變成了如下形式,這個(gè)算法稱為TD prediction:
6.2 Advantages of TD Prediction Methods
1. ?Comparing with DP, TD does not require a model of the environment, of its reward and next-state probability distributions.
2. Comparing with MC, TD is naturally implemented in an on-line, fully incremental fashion. With Monte Carlo methods one must wait until the end of an episode, because only then is the return known, whereas with TD methods one need wait only one time step.
3. ?Some Monte Carlo methods must ignore or discount episodes on which experimental actions are taken, which can greatly slow learning. TD methods are much less susceptible to these problems because they learn from each transition regardless of what subsequent actions are taken.
6.3 Optimality of TD(0)
batch updating: updates are made only after processing each complete batch of training data. 假設(shè)只能獲得有限數(shù)量的經(jīng)驗(yàn),比如說10個(gè)片段或者100個(gè)時(shí)間步長。在這種情況下,一個(gè)通用的增量式學(xué)習(xí)方法的策略是重復(fù)的學(xué)習(xí)這些經(jīng)驗(yàn)直到方法收斂到一個(gè)答案。給定一個(gè)近似值函數(shù)V,在每一個(gè)時(shí)間步長t,當(dāng)一個(gè)非終止?fàn)顟B(tài)被訪問的時(shí)候,由上面的式子計(jì)算。但是值函數(shù)只更新1次,用所有增量的和。然后重復(fù)直到收斂。我們稱之為批更新因?yàn)楦掳l(fā)生在處理完每一批訓(xùn)練數(shù)據(jù)之后。
在批更新下,TD(0)確定的收斂到一個(gè)答案并且獨(dú)立于步長參數(shù)α,只要α足夠小。MC方法也收斂到一個(gè)確定的答案,但是是一個(gè)不同的解。理解這兩個(gè)解的不同將有助于我們理解這兩種方法的不同。
6.4 Sarsa: On-Policy TD Control
現(xiàn)在我們利用TD prediction組成新的強(qiáng)化學(xué)習(xí)算法,用到?jīng)Q策/控制問題中。在這里,強(qiáng)化學(xué)習(xí)算法可以分為在線策略(on-policy)和離線策略(off-policy)兩類。首先要介紹的sarsa算法屬于on-policy算法。
與前面DP方法稍微有些區(qū)別的是,sarsa算法估計(jì)的是動(dòng)作值函數(shù)(Q函數(shù))而非狀態(tài)值函數(shù)。也就是說,我們估計(jì)的是策略π下,任意狀態(tài)s上所有可執(zhí)行的動(dòng)作a的動(dòng)作值函數(shù)Qπ(s,a),Q函數(shù)同樣可以利用TD Prediction算法估計(jì)。如下就是一個(gè)狀態(tài)-動(dòng)作對序列的片段及相應(yīng)的回報(bào)值。
給出sarsa的動(dòng)作值函數(shù)更新公式如下:可見上式與TD(0)的形式基本一致。需要注意的是,對于每個(gè)非終止的狀態(tài)st,在到達(dá)下個(gè)狀態(tài)st+1后,都可以利用上述公式更新Q(st,At),而如果stst是終止?fàn)顟B(tài),則要令Q(st+1=0,at+1。由于動(dòng)作值函數(shù)的每次更新都與(st,at,rt+1,st+1,at+1)相關(guān),因此算法被命名為sarsa算法。
Sarsa的算法如下:
6.5 Q-Learning: Off-Policy TD Control
在sarsa算法中,選擇動(dòng)作時(shí)遵循的策略和更新動(dòng)作值函數(shù)時(shí)遵循的策略是相同的,即??greedy??greedy的策略,而在接下來介紹的Q-learning中,動(dòng)作值函數(shù)更新則不同于選取動(dòng)作時(shí)遵循的策略,這種方式稱為離策略(Off-Policy)。Q-learning的動(dòng)作值函數(shù)更新公式如下:Q-learning 算法如下:
Sarsa和Q-learning的唯一不同之處不是在于動(dòng)作的選取。不同之處在于Q(s,a)的更新。因?yàn)镼-learning的動(dòng)作選取是eplison-greedy,也就是說不是每次都是選擇Q-max的動(dòng)作,但是更新的時(shí)候,他都是按照Q-max的選擇的那個(gè)動(dòng)作去更新的。這樣造成的后果就是有時(shí)候,選擇執(zhí)行的那個(gè)動(dòng)作和更新的時(shí)候選擇的那個(gè)動(dòng)作會不一樣。但是,對于sarsa來說,每次選取執(zhí)行的動(dòng)作和更新的動(dòng)作是完全一致的。換句話來說,當(dāng)時(shí)完全greedy的情況下,那么sarsa和Q-learning的更新是一樣的。
6.6 Actor-Critic Methods
一句話概括 Actor Critic 方法:
結(jié)合了 Policy Gradient (Actor) 和 Function Approximation (Critic) 的方法.Actor基于概率選行為,Critic基于Actor的行為評判行為的得分,Actor根據(jù)Critic的評分修改選行為的概率.
Actor Critic 方法的優(yōu)勢: 可以進(jìn)行單步更新, 比傳統(tǒng)的 Policy Gradient 要快.Actor Critic 方法的劣勢: 取決于 Critic 的價(jià)值判斷, 但是 Critic 難收斂, 再加上 Actor 的更新, 就更難收斂. 為了解決收斂問題, Google Deepmind 提出了Actor Critic升級版Deep Deterministic Policy Gradient. 后者融合了 DQN 的優(yōu)勢, 解決了收斂難的問題.
critic是state-value function,在每次動(dòng)作選擇完成后,critic估計(jì)這個(gè)動(dòng)作使得結(jié)果變好了還是變壞了。這個(gè)估計(jì)就是TD誤差:
如果這個(gè)誤差是正的,那么說明這個(gè)動(dòng)作將來被選去的概率要增大,反之亦然。
actor選取動(dòng)作是根據(jù)softmax方程:
p(s,a)表示t時(shí)刻actor的可修正的策略參數(shù),即在每個(gè)狀態(tài)s選擇action a的概率。概率更新如下:
6.7 R-Learning for Undiscounted Continuing Tasks
R學(xué)習(xí)是一種離線策略控制方法,用于沒有折扣和不能分成片段式任務(wù)的高級增強(qiáng)學(xué)習(xí)方法。算法如下: