官术网_书友最值得收藏!

5.2 最佳Bellman方程

為了解釋Bellman方程,最好稍微抽象一點。不要害怕,稍后我將提供具體示例供大家學習!我們先從確定性示例(即所有的動作都具有100%確定的結果)開始介紹。假設智能體觀察到狀態s0N個可用動作。每個動作都會導致進入另一個狀態s1sN,并帶有相應的獎勵r1rN(見圖5.3)。同樣,假設已知連接到狀態s0的所有狀態的價值Vi。在這種狀態下,智能體可以采取的最佳動作方案是怎樣的?

099-01

圖5.3 初始狀態可到達N個狀態的抽象環境

如果我們選擇具體動作ai,并計算此動作的價值,則價值為V0 (a=ai)=ri+Vi。所以,要選擇最佳動作方案,智能體需要計算每個動作的結果價值并選擇最大可能結果。換句話說,V0=maxa∈1…N (ra+Va)。如果使用折扣因子γ,則需要將下一個狀態的價值乘以γ

V0=maxa∈1…N (ra+γVa)

這看起來與上一節中貪婪的示例非常相似,實際上,確實如此!但是,有一個區別:當我們貪婪地采取行動時,不僅會考慮動作的立即獎勵,而且會考慮立即獎勵加上狀態的長期價值。

Bellman證明,通過以上擴展我們的行動會獲得最佳結果。換句話說,它可能是最優解。因此,前面的方程式稱為價值的Bellman方程(對于確定性情況)。

當我們的行動可能以不同的狀態結束時,將這個想法擴展到隨機的情況并不復雜。我們需要做的是計算每個動作的期望價值,而不是獲取下一個狀態的價值。為了說明這一點,假設狀態s0對應一個動作,該動作有三個可能的結果(見圖5.4)。

100-01

圖5.4 隨機情況下狀態轉移示例

本例中,一個動作會以不同的概率導致三種不同的結果狀態。以概率p1到達狀態s1,以概率p2到達狀態s2,以概率p3到達狀態s3p1+p2+p3=1)。每個目標狀態有它自己的獎勵值(r1r2r3)。為了計算執行動作1后的期望價值,需要將各個狀態的價值乘以它們的概率并相加:

100-02

或者,更正式地表示為:

100-03

通過將確定性情況下的Bellman方程與隨機動作的價值組合,可以得到一般情況下的Bellman最優性方程:

100-04

007-03注意,Pa, ij表示從狀態i,執行動作a到達狀態j的概率。

同樣可以解釋為:狀態的最優價值等于動作所獲得最大預期的立即獎勵,再加上下一狀態的長期折扣獎勵。你可能還會注意到,這個定義是遞歸的:狀態的價值是通過立即可到達狀態的價值來定義的。這種遞歸可能看起來像作弊:我們定義一些值,并假裝它們是已知的。但是,這卻是計算機科學甚至數學中非常強大且通用的技術(歸納證明也是基于這樣的技巧)。Bellman方程不僅是RL的基礎,還是更通用的動態規劃(解決實際優化問題的廣泛使用的方法)的基礎。

這些值不僅提供了可獲得的最佳獎勵,并且提供了獲取獎勵的最佳策略:如果智能體知道每個狀態的價值,那么它也將知道如何獲得所有這些獎勵。得益于Bellman的最優性證明,智能體在每個狀態都選擇能獲得最佳獎勵的動作,該獎勵就是立即獎勵與單步折扣長期獎勵之和。因此,了解這些值是非常有價值的。在熟悉計算它們的方法之前,我需要再引入一些數學符號。它不像狀態的價值那樣基礎,但為了方便,我們需要它。

主站蜘蛛池模板: 长垣县| 肇东市| 永丰县| 三原县| 湖州市| 大连市| 镶黄旗| 罗山县| 东丽区| 阿拉尔市| 青冈县| 南丹县| 金阳县| 新丰县| 天水市| 新安县| 家居| 天长市| 长治县| 兰考县| 开远市| 侯马市| 九台市| 景宁| 静海县| 深泽县| 黎城县| 察隅县| 二连浩特市| 湄潭县| 介休市| 海原县| 通州市| 景德镇市| 龙岩市| 大足县| 盖州市| 陆良县| 芦溪县| 绿春县| 富锦市|