机器学习(三十)——Model-Free Control
https://antkillerfarm.github.io
Model-Free Control
概述
之前提到的MC & TD都是Model-free prediction,下面講講Model-Free Control。
現實中有很多此類的例子,比如控制一個大廈內的多個電梯使得效率最高;控制直升機的特技飛行,機器人足球世界杯上控制機器人球員,圍棋游戲等等。所有的這些問題要么我們對其模型運行機制未知,但是我們可以去經歷、去試;要么是雖然問題模型是已知的,但問題的規模太大以至于計算機無法高效的計算,除非使用采樣的辦法。Model-Free Control的內容就專注于解決這些問題。
根據優化控制過程中是否利用已有或他人的經驗策略來改進我們自身的控制策略,我們可以將這種優化控制分為兩類:
一類是On-policy Learning,其基本思想是個體已有一個策略,并且遵循這個策略進行采樣,或者說采取一系列該策略下產生的行為,根據這一系列行為得到的獎勵,更新狀態函數,最后根據該更新的價值函數來優化策略得到較優的策略。
另一類是Off-policy Learning: 其基本思想是,雖然個體有一個自己的策略,但是個體并不針對這個策略進行采樣,而是基于另一個策略進行采樣,這另一個策略可以是先前學習到的策略,也可以是人類的策略等一些較為優化成熟的策略,通過觀察基于這類策略的行為,或者說通過對這類策略進行采樣,得到這類策略下的各種行為,繼而得到一些獎勵,然后更新價值函數,即在自己的策略形成的價值函數的基礎上觀察別的策略產生的行為,以此達到學習的目的。這種學習方式類似于“站在別人的肩膀上可以看得更遠”。
簡單來說,On-policy Learning訓練時,使用當前策略,而Off-policy Learning使用非當前策略。
On-Policy Monte-Carlo Control
Model-Free Control應用MC需要解決兩個問題:
1.在模型未知的條件下無法知道當前狀態的所有后續狀態,進而無法確定在當前狀態下采取怎樣的行為更合適。
解決這一問題的方法是使用action-value function:qπ(s;a)qπ(s;a)替換state-value function:vπ(s)vπ(s)。即下圖所示:
這樣做的目的是可以改善策略而不用知道整個模型,只需要知道在某個狀態下采取什么什么樣的行為價值最大即可。
2.當我們每次都使用貪婪算法來改善策略的時候,將很有可能由于沒有足夠的采樣經驗而導致產生一個并不是最優的策略,我們需要不時的嘗試一些新的行為,這就是探索(Exploration)。
一般使用《機器學習(二十六)》中提到的??-greedy算法,解決這個問題,這里不再贅述。
圖中每一個向上或向下的箭頭都對應著多個Episode。也就是說我們一般在經歷了多個Episode之后才進行依次Q函數更新或策略改善。實際上我們也可以在每經歷一個Episode之后就更新Q函數或改善策略。但不管使用那種方式,在?-貪婪探索算下我們始終只能得到基于某一策略下的近似Q函數,且該算法沒沒有一個終止條件,因為它一直在進行探索。因此我們必須關注以下兩個方面:一方面我們不想丟掉任何更好信息和狀態,另一方面隨著我們策略的改善我們最終希望能終止于某一個最優策略,因為事實上最優策略不應該包括一些隨機行為選擇。為此引入了另一個理論概念:GLIE。
GLIE(Greedy in the Limit with Infinite Exploration),直白的說是在有限的時間內進行無限可能的探索。具體表現為:所有已經經歷的狀態行為對(state-action pair)會被無限次探索;另外隨著探索的無限延伸,貪婪算法中??值趨向于0。例如如果我們取?=1/k?=1/k(k為探索的Episode數目),那么該??-greedy MC Control就具備GLIE特性。
基于GLIE的MC Control流程如下:
1.對于給定策略ππ,采樣第k個Episode:{S1,A1,R2,…,ST}~π{S1,A1,R2,…,ST}~π
2.對于該Episode里出現的每一個狀態/行為對更新:
N(St,At)←N(St,At)+1Q(St,At)←Q(St,At)+1N(St,At)(Gt?Q(St,At))N(St,At)←N(St,At)+1Q(St,At)←Q(St,At)+1N(St,At)(Gt?Q(St,At))
3.基于新的Q函數改善:
?←1/k,π←??greedy(Q)?←1/k,π←??greedy(Q)
On-Policy Temporal-Difference Learning
TD在Model-Free Control的應用主要是Sarsa算法。Sarsa是State–action–reward–state–action的縮寫。
Sarsa算法的流程如下所示:
隨機初始化Q(s,a)Q(s,a),其中Q(terminal-state,?)=0Q(terminal-state,?)=0。
每個Episode執行:
初始化S
根據Q選擇當前S下的A
Episode中的每一步執行:
執行A,獲得觀察值R,S’
根據Q選擇當前S’下的A’
Q(S,A)←Q(S,A)+α[R+γQ(S′,A′)?Q(S,A)]Q(S,A)←Q(S,A)+α[R+γQ(S′,A′)?Q(S,A)]
S←S′,A←A′S←S′,A←A′
直到S是terminal狀態。
Sarsa算法的最優化收斂性(即Q(s,a)→q?(s,a)Q(s,a)→q?(s,a))的條件是:
1.策略產生的序列滿足GLIE。
2.αtαt滿足Robbins–Monro特性,即:
∑t=1∞αt=∞,∑t=1∞α2t<∞∑t=1∞αt=∞,∑t=1∞αt2<∞
Herbert Ellis Robbins,1915~2001,美國數學家,Harvard博士,University of North Carolina教授,Columbia University教授。美國科學院院士,美國藝術科學院院士。
Sutton Monro,1920~1995,美國數學家,MIT博士,Lehigh University教授。作為海軍參加過二戰和韓戰。
和TD類似,我們也可以定義n-step的Sarsa(n)算法
Q(St,At)←Q(St,At)+α(qnt?Q(St,At))Q(St,At)←Q(St,At)+α(qtn?Q(St,At))
Sarsa(λλ):
Q(St,At)←Q(St,At)+α(qλt?Q(St,At))Q(St,At)←Q(St,At)+α(qtλ?Q(St,At))
Sarsa(λλ)+ET:
Q(St,At)←Q(St,At)+αδtEt(s,a)Q(St,At)←Q(St,At)+αδtEt(s,a)
采樣方法
在繼續后面的內容之前,我們首先介紹幾種采樣方法。
Inverse Sampling
如果某種分布函數不容易采樣的話,可以使用它的反函數進行采樣:
P(F?1(a)≤x)=P(a≤F(x))=H(F(x)P(F?1(a)≤x)=P(a≤F(x))=H(F(x)
上圖是均勻分布到指數分布的采樣圖,其中y的采樣間隔是:
F?1exp(a)=?1λ?log(1?a)Fexp?1(a)=?1λ?log(1?a)
Rejective Sampling
我們想求一個空間里均勻分布的集合面積,可以嘗試在更大范圍內按照均勻分布隨機采樣,如果采樣點在集合中,則接受,否則拒絕。
這種方法最經典的例子就是采樣計算圓周率:我們在一個1x1的范圍內隨機采樣一個點,如果它到原點的距離小于1,則說明它在1/4圓內,則接受它,最后通過接受的占比來計算1/4圓形的面積,從而根據公式反算出預估的ππ值,隨著采樣點的增多,最后的結果會越精準。
Rejective Sampling的形式化表述為:
acc(xi)=p??(xi)cq(xi)acc(xi)=p~(xi)cq(xi)
其中,p??(xi)p~(xi)實際采樣的樣本,它應該正比于目標分布,cq(xi)cq(xi)是比例系數,c為常數。在上例中,q(xi)q(xi)是均勻分布,所以就是常數1,如果是其它分布的話,則是一個函數。
Importance Sampling
然而實際工作中,分布的正函數已經很復雜,更不用說反函數,cq(xi)cq(xi)也不是那么容易得到的,這時就需要Importance Sampling了。
我們采樣的目標是:
Ex~p[f(x)]=∫xf(x)p(x)dxEx~p[f(x)]=∫xf(x)p(x)dx
如果符合p(x)分布的樣本不太好生成,我們可以引入另一個分布q(x),可以很方便地生成樣本。使得:
∫xf(x)p(x)dxwhere??g(x)=∫xf(x)p(x)q(x)q(x)dx=∫xg(x)q(x)dx=Ex~q[g(x)]=f(x)p(x)q(x)=f(x)w(x)(7)(8)(9)(7)∫xf(x)p(x)dx=∫xf(x)p(x)q(x)q(x)dx(8)=∫xg(x)q(x)dx=Ex~q[g(x)](9)whereg(x)=f(x)p(x)q(x)=f(x)w(x)
我們將問題轉化為了求g(x)在q(x)分布下的期望。我們稱其中的w(x)=p(x)q(x)w(x)=p(x)q(x)為Importance Weight。
Importance Sampling還可以改善已有的采樣方法:如果我們找到一個q分布,使得它能在f(x)?p(x)較大的地方采集到樣本,則能更好地逼近E[f(x)]。
參考:
http://blog.csdn.net/Dark_Scope/article/details/70992266
采樣方法
Off-Policy Learning
Importance Sampling for Off-Policy Monte-Carlo
前面已經說過,Off-Policy Learning就是根據當前策略μ(a∣s)μ(a∣s),評估目標策略π(a∣s)π(a∣s)。因此,對Off-Policy Learning進行Importance Sampling,實際上就是從μμ中,對ππ采樣的過程。由于MC需要對整個Episode進行采樣,因此相應的采樣函數為:
Gπ/μt=π(At∣St)μ(At∣St)π(At+1∣St+1)μ(At+1∣St+1)…π(AT∣ST)μ(AT∣ST)GtGtπ/μ=π(At∣St)μ(At∣St)π(At+1∣St+1)μ(At+1∣St+1)…π(AT∣ST)μ(AT∣ST)Gt
更新公式為:
V(St)←V(St)+α(Gπ/μt?V(St))V(St)←V(St)+α(Gtπ/μ?V(St))
由于這種方法的采樣函數實在太過復雜,因此只有理論價值,而無實際意義。
Importance Sampling for Off-Policy TD
類似的,TD算法的更新公式為:
V(St)←V(St)+α(π(At∣St)μ(At∣St)(Rt+1+γV(St+1))?V(St))V(St)←V(St)+α(π(At∣St)μ(At∣St)(Rt+1+γV(St+1))?V(St))
應用這種思想最好的方法是基于TD(0)的Q-learning。Q-learning的相關內容參見《機器學習(二十七)》。
DP和TD的關系
| Bellman Expectation Equation for vπ(s)vπ(s) | Iterative Policy Evaluation V(s)←E[R+γV(S′)∣s]V(s)←E[R+γV(S′)∣s] |
| Bellman Expectation Equation for qπ(s,a)qπ(s,a) | Q-Policy Iteration Q(s,a)←E[R+γQ(S′,A′)∣s,a]Q(s,a)←E[R+γQ(S′,A′)∣s,a] |
| Bellman Optimality Equation for q?(s,a)q?(s,a) | Q-Value Iteration Q(s,a)←E[R+γmaxa′∈AQ(S′,a′)∣s]Q(s,a)←E[R+γmaxa′∈AQ(S′,a′)∣s] |
上表中x←αy≡x←x+α(y?x)x←αy≡x←x+α(y?x)。
總結
以上是生活随笔為你收集整理的机器学习(三十)——Model-Free Control的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习(二十九)——Temporal-
- 下一篇: 深度学习(二十四)——L2 Normal