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

5.3 動作的價值

為了更輕松一些,除了狀態價值V(s),還可以用Q(s, a)定義不同的動作價值。基本上,Q(s, a)等于在狀態s時執行動作a可獲得的總獎勵,并且可以通過V(s)進行定義。與V(s)相比,這個量沒有那么基礎,由于它更加方便,因此該變量為整個方法家族起了個名字叫Q-learning。

在這些方法中,我們的主要目標是獲取每對狀態和動作的Q值。

101-01

Q等于在狀態s時采取動作a所預期獲得的立即獎勵和目標狀態折扣長期獎勵之和。我們也可以通過Q(s, a)來定義V(s):

101-02

這意味著,某些狀態的價值等于從該狀態執行某動作能獲得的最大價值。最后,也可以用遞歸的方式表示Q(s, a)(在第6章中會用到):

101-03

在前面的公式中,立即獎勵的索引sa取決于環境細節。如果在狀態s執行特定行動a后立即獲得獎勵,則使用索引(s, a),公式完全如上所述。但是,如果獎勵是通過動作a'到達狀態s'獲得的,則該獎勵的索引應為(s', a'),并且需要加上max運算符。從數學的角度來看,這種差異不是很明顯,但是在方法的實現過程中可能很重要。第一種情況較為常見,因此,我們將遵循上述公式。

為了給你一個具體的例子,考慮一個類似于FrozenLake的環境,但結構要更簡單:初始狀態(s0)的周圍有4個目標狀態s1s2s3s4,并具有不同的獎勵(見圖5.5)。

101-04

圖5.5 簡化的網格狀環境

每個動作的概率都與FrozenLake中的方式相同:33%的概率會按動作執行,33%的概率會滑動到移動方向的左側目標單元格,以及33%的概率會滑向右側(見圖5.6)。為簡單起見,我們使折扣因子γ=1。

102-01

圖5.6 網格環境轉移圖

首先來計算一下開始的動作的價值。最終狀態s1s2s3s4沒有向外的連接,因此對于所有動作,這些狀態的Q為零。因此,最終狀態的價值等于其立即獎勵(一旦到達目的地,片段結束,沒有任何后續狀態):V1=1,V2=2,V3=3,V4=4。

狀態0的動作價值要復雜一些。首先計算動作“上”的價值。根據定義,其價值等于立即獎勵加上后續步驟的長期價值。對于動作“上”的任何可能的轉移都沒有后續步驟:

Q(s0, 上)=0.33·V1+0.33·V2+0.33·V4=0.33·1+0.33·2+0.33·4=2.31

s0的其他動作重復上述計算:

Q(s0, 左)=0.33·V1+0.33·V2+0.33·V3=1.98

Q(s0, 右)=0.33·V4+0.33·V1+0.33·V3=2.64

Q(s0, 下)=0.33·V3+0.33·V2+0.33·V4=2.97

狀態s0的最終價值為這些動作的最大價值,即2.97。

在實踐中,Q值要更加方便,對于智能體而言,制定決策時基于Q要比基于V簡單得多。對于Q而言,要基于狀態選擇動作,智能體只需要基于當前狀態計算所有動作的Q值,并且選擇Q值最大的動作即可。要使用狀態價值(V)做相同的事,智能體不僅需要知道價值,還需要知道轉移概率。在實踐中,我們很少能事先知道它們,所以智能體需要估計狀態動作對的轉移概率。在本章的后面,會通過兩種方式解決FrozenLake環境的問題。然而,我們仍然缺少一項重要內容,即計算這些VsQs的通用方法。

主站蜘蛛池模板: 沧州市| 佳木斯市| 蓬莱市| 新余市| 洪泽县| 东宁县| 祥云县| 砀山县| 同德县| 德阳市| 梅河口市| 崇礼县| 民丰县| 盐城市| 宁南县| 昌都县| 资溪县| 静乐县| 三门县| 建阳市| 乌鲁木齐市| 略阳县| 萨嘎县| 十堰市| 镇原县| 江北区| 孝感市| 鄂州市| 禄丰县| 普宁市| 来凤县| 翁牛特旗| 新民市| 化州市| 庐江县| 资阳市| 烟台市| 巍山| 惠州市| 秀山| 台山市|