1. 程式人生 > >馬爾可夫與貝爾曼方程學習筆記

馬爾可夫與貝爾曼方程學習筆記

馬爾可夫決策的要求:

1,能夠檢測到理想狀態:比如我們想讓強化學習演算法來實現走迷宮,最後這個迷宮一定是可以走出的,倘若迷宮沒有出口便不可以套用馬爾可夫。

2,可以多次嘗試:依然使用走迷宮的例子,我們可以在走迷宮失敗的時候進行多次嘗試,而不是失敗以後就停止。

3,系統的下個狀態只和當前狀態資訊有關,而和之前的更早的狀態無關,在決策的過程中還和當前採取的動作有關:馬爾可夫的條件是,下一個狀態st+1僅僅和st有關而和st-n(n>0)無關,同時還和st狀態下的行動at有關。僅僅和st和at是有關的。例如走迷宮這個問題,下一步的狀態(位置)僅僅和當前的位置和當前走的方向有關,和其餘都是沒關係的。

在此解釋一下P,R,y的概念:

P:例如當前狀態s下,可以經過動作a1到達狀態s1,經過動作s2到達狀態s2。智慧體agent在狀態可以執行動作a1也可以執行a2,並且兩者各自有自身的概率,而P便是反應這種概率的。p(s1|s,a1)就是反應“在s狀態下執行動作a1到達狀態s1的概率”,同理“p(s2|s,a2)就是反應”在s狀態下執行動作a2到達狀態s2的概率”

R:智慧體在執行動作後,會得到即時獎勵的集合。舉例說明:小明現在寫作業便會得到一塊糖吃,小明現在看電視就會被拿走一塊糖,那麼兩者的即時獎勵就是{+1糖,-1糖}

y:衰減係數γ,係數γ是一個介於0和1之間的數字。反應的是未來的獎勵和現在的獎勵之間的衰減關係。舉例說明,現在10元錢可以買10個雞蛋,但是未來十元錢可能只能買5個雞蛋,但是我們無法知道未來的情況,所以我們假設衰減係數γ是0.5。就是用現在的情況來預計未來的情況

馬爾可夫過在我理解就是:智慧體在狀態s0下選擇動作a0,到達狀態s1;s1下智慧體選擇a1到達狀態s2;以此類推。

在狀態s下選擇什麼動作,我認為是根據p來選擇的。

狀態價值函式:在t時刻,狀態s下所能得到未來回報的期望,用來衡量每一個狀態或者動作-狀態的優劣。

強化學習的根本目的就是獲得最大的累計獎勵,而狀態價值函式就是用來描述累計獎勵的量。

策略:策略其實是一個動作的集合,例如“把大象放進冰箱需要三步:開啟冰箱門,把大象放進去,關上冰箱門”這就是一個策略,一個動作的集合。

最優價值函式:其實就是所有的策略中,最高的累積收益。策略有很多,累計收益也各不相同,最優價值函式反應的就是累計收益最高的那個。

貝爾曼方程:將當前的價值分解為當前的即時獎勵和下一步的價值。類似於一個迭代的過程,自舉的過程。

在貝爾曼方程中,我們要求,狀態集合S和動作集合A都是有限的,因為有限的我們可以通過數學方法,計算期望。下面解釋一下以上公式中的各個量:

Π:反應的是當前狀態s下,所選擇各個不同動作a的概率

p:反應的是在當前狀態下,選擇動作a進入到下一個狀態的概率

依舊,貝爾曼方程的含義仍然是:當前的價值等於當前的即時價值,加上下一個狀態的價值,但是下一個狀態的價值要乘以一個衰減係數γ,因為未來都會存在衰減。

公式第一項就是:所有即時獎勵的期望。Π(當前狀態s下,所選擇各個不同動作a的概率)乘以r(即時獎勵)得到的就是即時獎勵的期望

公式的第二項就是:下一步價值的期望。p(在當前狀態下,選擇動作a進入到下一個狀態的概率)乘以v(下一個狀態的價值)得到的就是下一步價值的期望。

兩項加在一起就是當前的價值

通過例項來理解貝爾曼方程:

圖中每一個圓形代表一個狀態,而方塊代表的是終止狀態。我們下面用貝爾曼方程計算紅色圓形的價值

可見紅色圓形可以向上走到達最終狀態,也可以向下走到達小圓點狀態。我們假設兩個動作的概率都是0.5

向上走:即時獎勵可見是R+10,但是到達最終狀態以後沒有下一步狀態,所以向上走的價值就是向上走的概率乘以向上走的即時獎勵,也就是0.5*10

向下走:即時獎勵就是R+1,向下走以後沒有到達最終狀態,所以我們還要繼續看下一步狀態。可見走到小圓點以後還有三種狀態,其概率分別為0.2,0.4,0.4,他們各自對應的下一步價值分別是-1.3,2.7,7.4。所以向下走的價值便是:概率*即時獎勵+概率*下一步的價值

最後的公式就是圖中最上面的黑色字型(本例中忽略衰減洗漱γ)