書名: 深度強化學習實踐(原書第2版)作者名: (俄)馬克西姆·拉潘本章字數: 1163字更新時間: 2021-08-18 17:39:26
5.2 最佳Bellman方程
為了解釋Bellman方程,最好稍微抽象一點。不要害怕,稍后我將提供具體示例供大家學習!我們先從確定性示例(即所有的動作都具有100%確定的結果)開始介紹。假設智能體觀察到狀態s0和N個可用動作。每個動作都會導致進入另一個狀態s1…sN,并帶有相應的獎勵r1…rN(見圖5.3)。同樣,假設已知連接到狀態s0的所有狀態的價值Vi。在這種狀態下,智能體可以采取的最佳動作方案是怎樣的?

圖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)。

圖5.4 隨機情況下狀態轉移示例
本例中,一個動作會以不同的概率導致三種不同的結果狀態。以概率p1到達狀態s1,以概率p2到達狀態s2,以概率p3到達狀態s3(p1+p2+p3=1)。每個目標狀態有它自己的獎勵值(r1、r2或r3)。為了計算執行動作1后的期望價值,需要將各個狀態的價值乘以它們的概率并相加:

或者,更正式地表示為:

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

注意,Pa, i→j表示從狀態i,執行動作a到達狀態j的概率。
同樣可以解釋為:狀態的最優價值等于動作所獲得最大預期的立即獎勵,再加上下一狀態的長期折扣獎勵。你可能還會注意到,這個定義是遞歸的:狀態的價值是通過立即可到達狀態的價值來定義的。這種遞歸可能看起來像作弊:我們定義一些值,并假裝它們是已知的。但是,這卻是計算機科學甚至數學中非常強大且通用的技術(歸納證明也是基于這樣的技巧)。Bellman方程不僅是RL的基礎,還是更通用的動態規劃(解決實際優化問題的廣泛使用的方法)的基礎。
這些值不僅提供了可獲得的最佳獎勵,并且提供了獲取獎勵的最佳策略:如果智能體知道每個狀態的價值,那么它也將知道如何獲得所有這些獎勵。得益于Bellman的最優性證明,智能體在每個狀態都選擇能獲得最佳獎勵的動作,該獎勵就是立即獎勵與單步折扣長期獎勵之和。因此,了解這些值是非常有價值的。在熟悉計算它們的方法之前,我需要再引入一些數學符號。它不像狀態的價值那樣基礎,但為了方便,我們需要它。