從Markov Process到Markov Decision Process

Recall: Markov Property

information state: sufficient statistic of history
State sts_t is Markov if and only if:
p(st+1st,at)=p(st+1ht,at)p(s_{t+1}|s_t,a_t)=p(s_{t+1}|h_t,a_t)
Future is independent of past given present

Markov Process or Markov Chain

無記憶性隨機過程

  • 具有馬爾科夫性質的隨機狀態的序列

馬爾科夫過程(Markov Process)的定義:

  • S是一個(有限)的狀態集(s S\in S)
  • P是動態/變遷模型,它指定了p(st+1=sst=s)p(s_{t+1}=s'|s_t=s)

注意:沒有獎勵(reward),也沒有動作(actions)

如果狀態數(N)是有限的,可以把P表示成一個矩陣:
在這裏插入圖片描述

Markov Reward Process (MRP)

馬爾科夫獎勵過程 = 馬爾科夫過程 + 獎勵

馬爾科夫獎勵過程(MRP)的定義:

  • S是一個狀態的有限集(s \in S)
  • P是動態/變遷模型,它指定了P(st+1=sst=s)P(s_{t+1}=s'|s_t=s)
  • R是一個獎勵函數R(st=s)=E[rtst=s]R(s_t=s)=\mathbb{E}[r_t|s_t=s]
  • 折扣因子γ[0,1]\gamma \in[0,1]

注意:沒有動作

如果狀態數(N)有限,R可以被表示成一個向量。

Return & Value Function

窗口(horizon)的定義:

  • 每一輪(episode)的時間步數目
  • 可以是有限的
  • 也被稱作有限馬爾科夫獎勵過程

返回(return)的定義:

  • 從t開始長達整個窗口的打折獎勵總和:
    Gt=rt+γrt+1+γ2rt+2+γ3rt+3+...G_t=r_t+\gamma r_{t+1}+\gamma^2r_{t+2}+\gamma^3r_{t+3}+...

狀態獎勵方程(State Value Function foe a MRP)的定義:

  • 從狀態s開始的返回的期望
    V(s)=E[Gtst=s]=E[rt+γrt+1+γ2rt+2+γ3rt+3+...st=s]V(s) = \mathbb{E}[G_t|s_t=s]=\mathbb{E}[r_t+\gamma r_{t+1}+\gamma^2r_{t+2}+\gamma^3r_{t+3}+...|s_t=s]

如果過程是確定的,那麼返回和獎勵是相等的;大部分情況下過程是隨機的,它們會是不同的。

Discount Factor

折扣因子一方面是由於被啓發創造的,另一方面也是爲了數學上的方便。

  • 數學上的方便(避免無限的返回(函數)和價值(函數))
  • 人類通常是以折扣因子小於1的方式行動的
  • γ=0\gamma=0僅關心即時獎勵
  • γ=1\gamma=1未來獎勵將等於即時獎勵
  • 如果一輪(episode)的長度一直是有限的,可以使用γ=1\gamma=1

Computing the Value of a Markov Reward Process

  • 可以通過仿真(simulation)來估計
    實驗平均接近真實期望值的準確度大致在1n\frac{1}{\sqrt{n}},n代表仿真次數。
  • 對返回取平均
  • 專注不等式(Concentration inequalities)限定專注於期望值的速度
  • 不需要對馬爾科夫結構做出假設

但是上述過程沒有利用任何world是馬爾科夫的這個事實。爲了得到更好的估計有額外的結構。

  • 馬爾科夫性質產生額外的結構。
    (the future is independent of past given present)
  • MRP的價值函數滿足
    在這裏插入圖片描述
    矩陣形式
    在這裏插入圖片描述

然後就可以以解析方式求解:

V=R+γPVV=R+\gamma PV
VγPV=RV-\gamma PV = R
(IγP)V=R(I - \gamma P) V = R
V=(IγP)1RV = (I -\gamma P)^{-1} R

直接求解的算法複雜度是O(n3)O(n^3)

矩陣P必須是定義良好即能求逆的。在以上過程中,我們假定是固定的horizon,價值函數是固定的,所以狀態的下一個狀態可以指向自己,self-loop是允許存在的。

一定可以求逆嗎?

因爲P是馬爾科夫矩陣(隨機矩陣),那麼它的特徵值將總是小於等於1,如果折扣因子小於1,那麼IγPI-\gamma P總是可逆的(證明略,感興趣的朋友可以去查一下,博主數學不是很好。)。

Iterative Algorithm for Computing Value of a MRP

另一種求解方法是動態規劃:

Initializa V0(s)=0V_0(s) = 0 for all s

For k = 1 until convergence
	For all s in S

Vk(s)=R(s)+γsSP(ss)Vk1(s)V_k(s) = R(s) + \gamma \sum_{s^{'} \in S}P(s^{'}|s)V_{k-1}(s^{'})

計算複雜度:
O(s2)O(|s|^2) for each iteration (|S| = N)

收斂的條件通常使用範數來衡量,即
VkVk1<ϵ|V_k - V_{k-1}| < \epsilon

這種計算方式的優勢在於每次迭代平方複雜度,並且還有一些稍後會提及的引入actions之後的增益。

總結起來,計算MRP的價值有三種方法:

  • 模擬仿真(Simulation)
  • 解析求解(Analytic solve, requires us a step, a finite set of states)
  • 動態規劃(DP)

Markov Decision Proces(MDP)

MDP = MRP + actions.

MDP的定義,MDP是一個五元組(quintuple)(S,A,P,R,γ\gamma):

  • S 是一個有限的馬爾科夫狀態集sSs \in S
  • A 是一個有限的動作集aAa \in A
  • P 是針對每一個動作的動態/遷移模型,它指定了P(st+1=sst=s,at=a)P(s_{t+1}=s' | s_t = s, a_t = a)
  • R是一個獎勵函數(回報函數)
    R(st=s,at=a)=E[rtsts,at=a]R(s_t = s, a_t = a) = \mathbb{E}[r_t|s_t - s, a_t = a]
  • 折扣因子 γ[0,1]\gamma \in [0, 1]

MDP Policies

  • 策略(Policy)指定了在每一個狀態採取什麼動作
    • 可以是確定性的也可以是隨機的
  • 更一般性,把策略考慮成一種條件分佈
    -給定一個狀態,指定一個動作上的分佈
  • Policy:π(as)=P(at=ast=s)\pi(a|s) = P(a_t = a | s_t = s)

MDP + Policy

MDP + Policy可以指定一個Markov Reward Process,因爲Policy裏指定了每個狀態的動作,MDP就坍縮成了MRP。

更確切的講,它們指定的是MRP(S,Rπ,Pπ,γ)MRP(S, R^\pi, P^\pi, \gamma):
Rπ=aAπ(as)R(s,a)R^\pi=\sum_{a \in A}\pi(a|s)R(s,a)
Pπ(ss)=aAπ(as)P(ss,a)P^\pi(s'|s) = \sum_{a \in A}\pi(a|s)P(s'|s,a)

這隱含着,只要你有確定的策略,我們可以使用前述的所有用來計算MRP的價值的相同方法,通過使用定義一個RπR^\piPπP^\pi,來計算MDP的一個策略的價值。

MDP Policy Evaluation, Iterative Algorithm

Initialize V0(s)=0V_0(s) = 0 for all s

For k = 1 until convergence
	For all s in S

Vkπ(s)=r(s,π(s))+γsSp(ss,π(s))Vk1π(s)V_k^\pi(s) = r(s,\pi(s)) + \gamma\sum_{s' \in S}p(s'|s,\pi(s))V_{k-1}^\pi(s')

對於一個特定的策略來說,這是一個Bellman backup。

在RL文獻中,上面等式的右邊被稱作"Bellman backup"。狀態或狀態 - 動作對的Bellman backup是Bellman方程的右側:即時獎勵加下一個值,這是一個迭代的過程,因此叫backup。

仔細對比一下,跟前面所述MRT計算價值是一樣的,只不過因爲有固定的策略,所以我們使用策略來索引獎勵。即爲了學習一個特定策略的價值,我們通過總是採取策略所指定的動作來初始化價值函數。

練習 計算一步迭代

在這裏插入圖片描述
Vk+1(s6)=r(s6)+γ(0.50+0.510)V_{k+1}(s_6)=r(s_6)+\gamma*(0.5*0+0.5*10)
Vk+1(s6)=0.5(0.510)=2.5V_{k+1}(s_6)=0.5*(0.5*10)=2.5

這個真的很簡單,單純的代公式,只要前面所述內容你都記住了,就直接能理解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章