值函式近似 Large MDPs 的福音

2021-08-17 04:28:31 字數 2290 閱讀 9131

在真正剖析函式逼近演算法前,我們需要了解以下這些關於梯度下降演算法的知識,並且梯度這個概念在之後會頻繁地用到。

首先,w是乙個引數的向量形式,函式j(w)的梯度定義如下左圖所示,這個公式應該很好理解,其實就是對j(w)這個函式求關於向量w的偏導數。從這個梯度向量中,我們就可以知道對於函式j(w)來說最陡的上公升或者下降趨勢的梯度是多少,如果我們一直沿著這個最陡的梯度向下走,就會很快找到函式的最小值了。w引數的調整標準如下右圖所示:(其中α是步長引數) 

假設我們現在知道所有狀態或者行為狀態對的真正的價值函式:vπ(s)或 qπ(s,a)。這有助於我們理解和構建值函式近似演算法,之後我們會拋開這個假設,用強化學習的思想來完善這個演算法。

在值函式近似演算法中,我們的目標是使真實值與估算值之間的方差最小,因此j(w)定義為真值與估計值之間誤差平方的期望。

對其進行鏈式法則,代入上面(2)式,可以得到△w的計算公式:(由於真實值為常數,所以梯度可以轉換為估計值的梯度)並且在應用中,我們採用隨機梯隊下降,對某些狀態進行抽樣,用步長×誤差×梯度,可以就得到調整梯度引數的數值和方向。

線性值函式近似只是值函式近似方法中的其中一種,此外還有查表函式近似法等等,用來解決不同型別的問題,這裡簡單介紹一下線性值函式近似問題。

如果我們用乙個特徵向量x(s)來表示某乙個狀態,那麼x(s)中的每乙個元素都是用來描述狀態的乙個數值。形式如下:

函式估計值可以用線性特徵向量與權重向量點積的形式來表示:

目標函式就是之前提到的真實值與估計值之間方差的期望:

由於這是線性的函式近似,特徵向量x(s)對於權重向量w都是線性的,所以更新規則就很簡單:

上面鋪墊了這麼多,終於要來到激動人心的演算法核心內容了,在這裡我們要拋開上面那個假設,也就是說vπ(s)或 qπ(s,a)都是未知的,強化學習作為一種無監督學習,沒有人會告訴我們真值,我們只能從經驗中獲得。這裡順便說明一下,我們之前做這個假設是為了更好地說明梯度下降的思想,把其餘不必要**的東西設為已知而已。值函式近似演算法能稱得上是一種強化學習演算法的核心就在於用什麼來代替真值函式——真值替換。

根據不同的強化學習方式, 我們可以用蒙特卡羅學習中的

和前面許許多多的演算法一樣,學習的思路都是一致的,都是先**後控制,控制中還是要回顧之前介紹過的廣義策略迭代的方法。具體的迭代分為兩步,一是策略評估,用值函式近似演算法對策略進行抽樣**,公式和更新規則同上,但很顯然,其中的vπ(s)將被q(s , a)代替。另一步是策略提公升,可以用greedy或者ε

-greedy。同樣為了加快更新速度,可以走幾步就回頭更新一下策略。

與策略評估不同,在控制中,需要近似的值函式如下:

我們需要用梯度下降思想最小化的目標函式為:

根據上面的老套路,把這裡的更新規則列出如下:

根據不同的經驗學習方法,有不同的變數來替換真值,得到下列更新公式:

其實值函式近似演算法還是比較簡單的,至少我看了一次網課就懂了,它以梯度下降法為大框,只是把不同強化學習思想方法安進去得到不同的更新規則而已,套路都是一樣的啊。只要理解了之前幾章講的蒙特卡羅學習和td學習等方法原理,這裡也就沒什麼好多說的,所以把一些概念和原理闡述了一下,最主要的是應用,我暫時還沒找到比較小而有助理解的程式設計例項,找到了再更新**。

使用函式求余弦函式的近似值

本題要求實現乙個函式,用下列公式求cos x 的近似值,精確到最後一項的絕對值小於e cos x x0 0 x 2 2 x 4 4 x6 6 函式介面定義 double funcos double e,double x 其中使用者傳入的引數為誤差上限e和自變數x 函式funcos應返回用給定公式計算...

使用函式求余弦函式的近似值

最近在做pta時,碰到乙個題,雖然不是很複雜,但是我感覺對於練習思維這一塊很有幫助,所以我打算將他分享出來!本題要求實現乙個函式,用下列公式求cos x 的近似值,精確到最後一項的絕對值小於e cos x x 0 0 x 2 2 x 4 4 x 6 6 函式介面定義 double funcos do...

5 7 使用函式求余弦函式的近似值

本題要求實現乙個函式,用下列公式求cos x 的近似值,精確到最後一項的絕對值小於e c os x x0 0 x2 2 x4 4 x6 6 cos x x 0 0 x 2 2 x 4 4 x 6 6 cos x x0 0 x 2 2 x4 4 x 6 6 函式介面定義 double funcos d...