机器学习(三十三)——价值函数的近似表示
價值函數的近似表示
之前的內容都是講解一些強化學習的基礎理論,這些知識只能解決一些中小規模的問題。很多價值函數需要用一張大表來存儲。當獲取某一狀態或行為的價值的時候,通常需要一個查表操作(Table Lookup),這對于那些狀態空間或行為空間很大的問題幾乎無法求解。
在實際應用中,對于狀態和行為空間都比較大的情況,精確獲得各種v(s)和q(s,a)幾乎是不可能的。這時候需要找到近似的函數。具體來說,可以使用線性組合、神經網絡以及其他方法來近似價值函數:
v^(s,w)≈vπ(s)q^(s,a,w)≈qπ(s,a)\hat v(s,w)\approx v_\pi(s)\\ \hat q(s,a,w)\approx q_\pi(s,a) v^(s,w)≈vπ?(s)q^?(s,a,w)≈qπ?(s,a)
其中w是該近似函數的參數。
線性函數
這里仍然從最簡單的線性函數說起:
v^(S,w)=x(S)Tw=∑j=1nxj(S)wj\hat v(S,w)=x(S)^Tw=\sum_{j=1}^nx_j(S)w_jv^(S,w)=x(S)Tw=j=1∑n?xj?(S)wj?
目標函數為:
J(w)=Eπ[(vπ(S)?x(S)Tw)2]J(w)=E_\pi[(v_\pi(S)-x(S)^Tw)^2]J(w)=Eπ?[(vπ?(S)?x(S)Tw)2]
更新公式為:
Δw=α(vπ(S)?v^(S,w))x(S)\Delta w=\alpha (v_\pi(S)-\hat v(S,w))x(S)Δw=α(vπ?(S)?v^(S,w))x(S)
上述公式都是基本的ML方法,這里不再贅述。
最簡單的一類線性函數,被叫做Table Lookup Features:
xtable(S)=(1(S=s1)?1(S=sn))x^{table}(S)=\begin{pmatrix} 1(S=s_1) \\ \vdots \\ 1(S=s_n) \end{pmatrix}xtable(S)=????1(S=s1?)?1(S=sn?)?????
則:
v^(S,w)=(1(S=s1)?1(S=sn))(w1?wn)\hat v(S,w)=\begin{pmatrix} 1(S=s_1) \\ \vdots \\ 1(S=s_n) \end{pmatrix}\begin{pmatrix} w_1 \\ \vdots \\ w_n \end{pmatrix}v^(S,w)=????1(S=s1?)?1(S=sn?)?????????w1??wn??????
Incremental Prediction Algorithms
事實上,之前所列的公式都不能直接用于強化學習,因為公式里都有一個實際價值函數vπ(S)v_\pi(S)vπ?(S),或者是一個具體的數值,而強化學習沒有監督數據,因此不能直接使用上述公式。
因此,我們需要找到一個替代vπ(S)v_\pi(S)vπ?(S)的目標函數。
| MC | Δw=α(Gt?v^(St,w))?wv^(St,w)\Delta w=\alpha (\color{red}{G_t}-\hat v(S_t,w))\nabla_w \hat v(S_t,w)Δw=α(Gt??v^(St?,w))?w?v^(St?,w) | 有噪聲、無偏采樣 | 收斂至一個局部最優解 |
| TD(0) | Δw=α(Rt+1+γv^(St+1,w)?v^(St,w))?wv^(St,w)\Delta w=\alpha (\color{red}{R_{t+1}+\gamma\hat v(S_{t+1},w)}-\hat v(S_t,w))\nabla_w \hat v(S_t,w)Δw=α(Rt+1?+γv^(St+1?,w)?v^(St?,w))?w?v^(St?,w) | 有噪聲、有偏采樣 | 收斂至全局最優解 |
| TD(λ\lambdaλ) | Δw=α(Gtλ?v^(St,w))?wv^(St,w)\Delta w=\alpha (\color{red}{G_t^\lambda}-\hat v(S_t,w))\nabla_w \hat v(S_t,w)Δw=α(Gtλ??v^(St?,w))?w?v^(St?,w) | 有噪聲、有偏采樣 |
上面公式中,紅色的部分就是目標函數。
對于q^(S,A,w)\hat q(S,A,w)q^?(S,A,w),我們也有類似的結論:
| MC | Δw=α(Gt?q^(St,At,w))?wq^(St,At,w)\Delta w=\alpha (\color{red}{G_t}-\hat q(S_t,A_t,w))\nabla_w \hat q(S_t,A_t,w)Δw=α(Gt??q^?(St?,At?,w))?w?q^?(St?,At?,w) | 有噪聲、無偏采樣 | 收斂至一個局部最優解 |
| TD(0) | Δw=α(Rt+1+γq^(St+1,At+1,w)?q^(St,At,w))?wq^(St,At,w)\Delta w=\alpha (\color{red}{R_{t+1}+\gamma\hat q(S_{t+1},A_{t+1},w)}-\hat q(S_t,A_t,w))\nabla_w \hat q(S_t,A_t,w)Δw=α(Rt+1?+γq^?(St+1?,At+1?,w)?q^?(St?,At?,w))?w?q^?(St?,At?,w) | 有噪聲、有偏采樣 | 收斂至全局最優解 |
| TD(λ\lambdaλ) | Δw=α(qtλ?q^(St,At,w))?wq^(St,At,w)\Delta w=\alpha (\color{red}{q_t^\lambda}-\hat q(S_t,A_t,w))\nabla_w \hat q(S_t,A_t,w)Δw=α(qtλ??q^?(St?,At?,w))?w?q^?(St?,At?,w) | 有噪聲、有偏采樣 |
下面給出各種算法的收斂特性。
預測算法的收斂性:
| On-Policy | MC TD(0) TD(λ\lambdaλ) Gradient TD | Yes Yes Yes Yes | Yes Yes Yes Yes | Yes No No Yes |
| On-Policy | MC TD(0) TD(λ\lambdaλ) Gradient TD | Yes Yes Yes Yes | Yes No No Yes | Yes No No Yes |
Gradient TD中的Gradient指的是PBE(projected Bellman error)的梯度。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Z01jLDz1-1571014572380)(/images/img3/PBE.png)]
控制算法的收斂性:
| Monte-Carlo Control Sarsa Q-learning Gradient Q-learning | Yes Yes Yes Yes | Yes’ Yes’ No Yes | No No No No |
Yes’ = chatters around near-optimal value function
Batch Methods
前面所說的Incremental算法都是基于數據流的,經歷一步,更新算法后,我們就不再使用這步的數據了,這種算法簡單,但有時候不夠高效。與之相反,Batch Methods則是把一段時期內的數據集中起來,通過學習來使得參數能較好地符合這段時期內所有的數據。這里的訓練數據集Batch相當于個體的一段經驗。
Least Squares Prediction
假設存在一個價值函數的近似:v^(s,w)≈vπ(s)\hat v(s,w)\approx v_\pi(s)v^(s,w)≈vπ?(s)和一個經驗集D={<s1,v1π>,<s2,v2π>,…,<sT,vTπ>}\mathcal{D}=\{<s_1,v_1^{\pi}>,<s_2,v_2^{\pi}>,\dots,<s_T,v_T^{\pi}>\}D={<s1?,v1π?>,<s2?,v2π?>,…,<sT?,vTπ?>},則Least Squares Error為:
LS(w)=∑t=1T(vtπ?v^(st,w))2LS(w)=\sum_{t=1}^T(v_t^{\pi}-\hat v(s_t,w))^2LS(w)=t=1∑T?(vtπ??v^(st?,w))2
使用LSE的Prediction被稱為Least Squares Prediction,針對不同方向衍生還出了LSMC、LSTD、LSTD(λ\lambdaλ)等算法。
LSE亦可推廣到Q函數,即所謂的LS Q-Learning。
Experience Replay
為了充分利用經驗集,我們還可以使用Experience Replay技術,即:隨機從D\mathcal{D}D中采樣<s,vπ><s,v^{\pi}><s,vπ>,然后使用SGD最小化LSE。
這一點和普通的監督學習很類似,梯度下降從原理上來說,本就不可能一個epoch就達到最優,而需要多跑幾個epoch,這里的Experience Replay也是類似的道理。
Experience Replay還可用來消除訓練數據間的相關性。例如,1個agent在1個episode中產生的experience就是相關的,<st,at><s_t,a_t><st?,at?>和和和<st+1,at+1><s_{t+1},a_{t+1}><st+1?,at+1?>顯然存在著一定的邏輯關系。訓練數據間的相關性會影響算法收斂到最優解。
總結
以上是生活随笔為你收集整理的机器学习(三十三)——价值函数的近似表示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 古希腊三大数学书(二)
- 下一篇: 机器学习(三十四)——策略梯度