[Reinforcement Learning] Value Function Approximation


為什么需要值函數近似?

之前我們提到過各種計算值函數的方法,比如對於 MDP 已知的問題可以使用 Bellman 期望方程求得值函數;對於 MDP 未知的情況,可以通過 MC 以及 TD 方法來獲得值函數,為什么需要再進行值函數近似呢?

其實到目前為止,我們介紹的值函數計算方法都是通過查表的方式獲取的:

  • 表中每一個狀態 \(s\) 均對應一個 \(V(s)\)
  • 或者每一個狀態-動作 <\(s, a\)>

但是對於大型 MDP 問題,上述方法會遇到瓶頸:

  • 太多的 MDP 狀態、動作需要存儲
  • 單獨計算每一個狀態的價值都非常的耗時

因此我們需要有一種能夠適用於解決大型 MDP 問題的通用方法,這就是本文介紹的值函數近似方法。即:

\[\hat{v}(s, \mathbf{w}) \approx v_{\pi}(s) \\ \text{or } \hat{q}(s, a, \mathbf{w}) \approx q_{\pi}(s, a) \]

那么為什么值函數近似的方法可以求解大型 MDP 問題?

對於大型 MDP 問題而言,我們可以近似認為其所有的狀態和動作都被采樣和計算是不現實的,那么我們一旦獲取了近似的值函數,我們就可以對於那些在歷史經驗或者采樣中沒有出現過的狀態和動作進行泛化(generalize)。

進行值函數近似的訓練方法有很多,比如:

  • 線性回歸
  • 神經網絡
  • 決策樹
  • ...

此外,針對 MDP 問題的特點,訓練函數必須可以適用於非靜態、非獨立同分布(non-i.i.d)的數據。

增量方法

梯度下降

梯度下降不再贅述,感興趣的可以參考之前的博文《梯度下降法的三種形式BGD、SGD以及MBGD》

通過隨機梯度下降進行值函數近似

我們優化的目標函數是找到一組參數 \(\mathbf{w}\) 來最小化最小平方誤差(MSE),即:

\[J(\mathbf{w}) = E_{\pi}[(v_{\pi}(S) - \hat{v}(S, \mathbf{w}))^2] \]

通過梯度下降方法來尋優:

\[\begin{align} \Delta\mathbf{w} &=-\frac{1}{2}\alpha\triangledown_{\mathbf{w}}J(\mathbf{w})\\ &=\alpha E_{\pi}\Bigl[\Bigl(v_{\pi}(S) - \hat{v}(S, \mathbf{w})\Bigr)\triangledown_{\mathbf{w}}J(\mathbf{w})\Bigr] \end{align} \]

對於隨機梯度下降(Stochastic Gradient Descent,SGD),對應的梯度:

\[\Delta\mathbf{w} = \alpha\underbrace{\Bigl(v_{\pi}(S) - \hat{v}(S, \mathbf{w})\Bigr)}_{\text{error}}\underbrace{\triangledown_{\mathbf{w}}\hat{v}(S, \mathbf{w})}_{\text{gradient}} \]

值函數近似

上述公式中需要真實的策略價值函數 \(v_{\pi}(S)\) 作為學習的目標(supervisor),但是在RL中沒有真實的策略價值函數,只有rewards。在實際應用中,我們用target來代替 \(v_{\pi}(S)\)

  • 對於MC,target 為 return \(G_t\)

\[\Delta\mathbf{w}=\alpha\Bigl(G_t - \hat{v}(S_t, \mathbf{w})\Bigr)\triangledown_{\mathbf{w}}\hat{v}(S_t, \mathbf{w}) \]

  • 對於TD(0),target 為TD target \(R_{t+1}+\gamma\hat{v}(S_{t+1}, \mathbf{w})\)

\[\Delta\mathbf{w}=\alpha\Bigl(R_{t+1} + \gamma\hat{v}(S_{t+1}, \mathbf{w})- \hat{v}(S_t, \mathbf{w})\Bigr)\triangledown_{\mathbf{w}}\hat{v}(S_t, \mathbf{w}) \]

  • 對於TD(λ),target 為 TD λ-return \(G_t^{\lambda}\)

\[\Delta\mathbf{w}=\alpha\Bigl(G_t^{\lambda}- \hat{v}(S_t, \mathbf{w})\Bigr)\triangledown_{\mathbf{w}}\hat{v}(S_t, \mathbf{w}) \]

在獲取了值函數近似后就可以進行控制了,具體示意圖如下:

![](https://img2018.cnblogs.com/blog/764050/201811/764050-20181101094403449-423925511.png)

動作價值函數近似

動作價值函數近似:

\[\hat{q}(S, A, \mathbf{w})\approx q_{\pi}(S, A) \]

優化目標:最小化MSE

\[J(\mathbf{w}) = E_{\pi}[(q_{\pi}(S, A) - \hat{q}(S, A, \mathbf{w}))^2] \]

使用SGD尋優:

\[\begin{align} \Delta\mathbf{w} &=-\frac{1}{2}\alpha\triangledown_{\mathbf{w}}J(\mathbf{w})\\ &=\alpha\Bigl(q_{\pi}(S, A)-\hat{q}_{\pi}(S, A, \mathbf{w})\Bigr) \triangledown_{\mathbf{w}}\hat{q}_{\pi}(S, A, \mathbf{w}) \end{align}\]

收斂性分析

略,感興趣的可以參考David的課件。

批量方法

隨機梯度下降SGD簡單,但是批量的方法可以根據agent的經驗來更好的擬合價值函數。

值函數近似

優化目標:批量方法解決的問題同樣是 \(\hat{v}(s, \mathbf{w})\approx v_{\pi}(s)\)

經驗集合 \(D\) 包含了一系列的 <state, value> pair:

\[D=\{<s_1, v_1^{\pi}>, <s_2, v_2^{\pi}>, ..., <s_T, v_T^{\pi}>\} \]

根據最小化平方誤差之和來擬合 \(\hat{v}(s, \mathbf{w})\)\(v_{\pi}(s)\),即:

\[\begin{align} LS(w) &= \sum_{t=1}^{T}(v_{t}^{\pi}-\hat{v}(s_t, \mathbf{w}))^2\\ &= E_{D}[(v^{\pi}-\hat{v}(s, \mathbf{w}))^2] \end{align} \]

經驗回放(Experience Replay):

給定經驗集合:

\[D=\{<s_1, v_1^{\pi}>, <s_2, v_2^{\pi}>, ..., <s_T, v_T^{\pi}>\} \]

Repeat:

  1. 從經驗集合中采樣狀態和價值:\(<s, v^{\pi}>\sim D\)
  2. 使用SGD進行更新:\(\Delta\mathbf{w}=\alpha\Bigl(v^{\pi}-\hat{v}(s, \mathbf{w})\Bigr)\triangledown_{\mathbf{w}}\hat{v}(s, \mathbf{w})\)
    通過上述經驗回放,獲得最小化平方誤差的參數值:

\[\mathbf{w}^{\pi}=\arg\min_{\mathbf{w}}LS(\mathbf{w}) \]

我們經常聽到的 DQN 算法就使用了經驗回放的手段,這個后續會在《深度強化學習》中整理。

通過上述經驗回放和不斷的迭代可以獲取最小平方誤差的參數值,然后就可以通過 greedy 的策略進行策略提升,具體如下圖所示:

![](https://img2018.cnblogs.com/blog/764050/201811/764050-20181101094421698-1688823744.png)

動作價值函數近似

同樣的套路:

  • 優化目標:\(\hat{q}(s, a, \mathbf{w})\approx q_{\pi}(s, a)\)
  • 采取包含 <state, action, value> 的經驗集合 \(D\)
  • 通過最小化平方誤差來擬合

對於控制環節,我們采取與Q-Learning一樣的思路:

  • 利用之前策略的經驗
  • 但是考慮另一個后繼動作 \(A'=\pi_{\text{new}}(S_{t+1})\)
  • 朝着另一個后繼動作的方向去更新 \(\hat{q}(S_t, A_t, \mathbf{w})\),即

\[\delta = R_{t+1} + \gamma\hat{q}(S_{t+1}, \pi{S_{t+1}, \mathbf{\pi}}) - \hat{q}(S_t, A_t, \mathbf{w}) \]

  • 梯度:線性擬合情況,\(\Delta\mathbf{w}=\alpha\delta\mathbf{x}(S_t, A_t)\)

收斂性分析

略,感興趣的可以參考David的課件。

Reference

[1] Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto, 2018
[2] David Silver's Homepage


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM