強化學習隨筆(3)

  • t+1時刻只與 t 時刻有關,在這個時刻,在和前面之間
  • 下一個時刻狀態只有與這一個時刻狀態和行爲有關

馬爾可夫決策過程

馬爾可夫決策過程

馬爾可夫決策過程是強化學習的一個基本框架,

馬爾可夫鏈

也就是下一個狀態只取決於當前狀態,而與當前狀態的之間狀態都沒有關係。如果說某一個過程是滿足馬爾可夫特性的,在未來轉移和過去是獨立,只與現在狀態有關

  • 過去狀態集合 h_t = \{ S_1,S_2,S_3,\cdots, S_t \}
  • p(S_{t+1}|S_t) = p(S_{t+1}|h_t)
    p(S_{t+1}|S_t,a_t) = p(S_{t+1}|h_t,a_t)
狀態轉移矩陣

p = \begin{bmatrix} P(s_1|s_1) & P(s_2|s_1) & \cdots & P(s_N|s_1)\\ P(s_1|s_2) & P(s_2|s_2) & \cdots & P(s_N|s_2)\\ \end{bmatrix}

馬爾可夫鏈實例

這就是軌跡概念,每一條鏈都是一條軌跡

  • S_3, S_4,S_5,S_6,S_6
  • S_3, S_2,S_3,S_2,S_1
  • S_3, S_4,S_4,S_5,S_5

馬爾可夫獎勵過程(MRPs)

  • 馬爾可夫獎勵過程,就是馬爾可夫鏈再加上一個獎勵函數
  • 定義馬爾可夫獎勵過程(MRP)
    • S 表示狀態集合s \in S
    • P 是動態/轉移模型可以表示爲P(S_{t+1} = s^{\prime}|s_t = s)
    • R 是獎勵函數 R(s_t = s) = \mathbb{E}[r_t|s_t = s]
    • Discount factor(折扣量)\gamma \in [0,1]

引入獎勵R = [5,0,0,0,0,0,7],獎勵過程看成隨波逐流,隨着事先定義好狀態轉移進行流動

  • 定義 Horizon,
    • 在每一個 episode 存在最大有限步數
  • 定義 Return
    • 根據步驟對獎勵進行一定折扣計算在 t 步驟的收益(在一段時間內的獎勵函數加權平均值)
      G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \gamma^3 R_{t+4} + \cdots + \gamma^{T-(t-1)}R_t
  • 定義狀態價值函數V_t(s)
    狀態價值函數是最終衡量狀態的獲取多少獎勵函數,從 s 狀態開始可以計算還可以得到多少累計函數,在 AlphaGo 中有估值函數,當給系統棋牌狀態,狀態包括是黑方還是白方,接下來是白棋先走還是黑棋先走。
    • 期望也就是從這個狀態 s 開始向後可以獲得多大價值
      V_t(s) = \mathbb{E}[G_t|s_t = s]
      V_t(s) = \mathbb{E}[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \gamma^3 R_{t+4} + \cdots + \gamma^{T-(t-1)}R_t|s_t = s]
    • 也可以看作對於未來可以獲得多少獎勵當前價值的一個表現
  • 解釋 \gamma
    • 避免在帶環馬爾可夫過程出現無窮獎勵的問題
    • 也希望把不確定表示出來,儘快得到獎勵而不是在未來某一個點得到獎勵
    • 對於有價值的獎勵,我們希望立刻得到獎勵,而不是在未來得到獎勵
    • 立刻得到獎勵也是符合人的行爲
    • 關於超參數\gamma的取值意義
      • 係數設置 0 則只關注當前獎勵
      • 設置爲 1 則表示關心未來的獎勵
馬爾可夫獎勵實例

R = [5,0,0,0,0,0,10]

  • S_4,S_5,S_6,S_7 = 0 + \frac{1}{2} \times 0 + \frac{1}{4} \times 0 + \frac{1}{8} \times 10 = 1.25
計算狀態價值

可以通過隨機採樣得到很多軌跡,然後將這些軌跡疊加起來,計算他們的 return 然後取平均,蒙特卡洛採樣算法。

  • Bellman equation
    V(s) = R(s) + \gamma \sum_{s^{\prime} \in S} P(s^{\prime}|s)V(s^{\prime})
    • R(s) 立即獎勵
    • \gamma \sum_{s^{\prime} \in S} P(s^{\prime}|s)V(s^{\prime}) 表示未來折扣獎勵

\begin{bmatrix} V(s_1)\\ V(s_2)\\ \vdots \\ V(s_N)\\ \end{bmatrix} = \begin{bmatrix} R(s_1)\\ R(s_2)\\ \vdots \\ R(s_N)\\ \end{bmatrix} + \gamma \begin{bmatrix} P(s_1|s_1) & P(s_2|s_1) & \cdots & P(s_N|s_1) \\ P(s_1|s_2) & P(s_2|s_2) & \cdots & P(s_N|s_2) \\ \vdots & \vdots & \cdots & \vdots \\ P(s_1|s_N) & P(s_2|s_N) & \cdots & P(s_N|s_N) \\ \end{bmatrix} \begin{bmatrix} V(s_1)\\ V(s_2)\\ \vdots \\ V(s_N)\\ \end{bmatrix}

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

  • 這是O(N^3)計算複雜度,對於狀態,這個轉移矩陣對於 N 解一些很小馬爾可夫過程
計算馬爾可夫迭代方法
  • 動態規劃
  • 蒙特卡洛估計
  • Temporal-Difference 學習,結合以上算法
蒙特卡洛算法
i = 0, G_t = 0
while i is not N:
    S_t # generate an episode ,starting from state s and time t
    g = $sum_{i=t}^{H-1} \gamma^{i-t} r_i$
    G_t = G_t + g
    i = i+1
V_t(S) = \frac{G_t}{N}
動態規劃
for all states s \in S ,V^{\prime} = 0, V(S) = \initfy
while || V - V^{\prime}|| > \epison
    V = V^{\prime}
    For all states s \in S V^{prime} = R(s) + \gamma \sum_{s^{\prime} \in S} P(s^{\pirme}|s)V(s^{\prime})
return V^{\prime}(s) for all s \in S

馬爾可夫決策過程(MDPs)

  • 馬爾可夫決策過程(MDP)
    • S 表示狀態集合
    • A 表示動作的集合
    • P^a Action 是動態/轉移模型 P(s_{t+1} = s^{\prime}|s_t = s,a_t = a)
    • R 是獎勵函數 R(s_t = s,a_t = a) = \mathbb{E}[r_t|s_t = s,a_t = a]
    • 折扣係數\gamma \in [0,1]
  • MDP 是(S,A,P,R,\gamma)

MDP 中策略(policy)評估

  • Policy 表示在每一個狀態(步驟)應該採取什麼樣行爲
  • 給定一個狀態,
  • \pi(a|s) = P(a_t = a | s_t = s) 根據當前狀態採取什麼行爲的概率分佈
  • 這個概率函數是穩定的,靜態的,A_t 近似 \pi(a|s)

MDP 和 MRP 轉換

  • (當已知一個馬爾可夫決策過程)給定 MDP (S,A,P,R,\gamma) 和 policy \pi 時候就是將 MDP 轉化爲 MRP 問題
  • 狀態序列S_1,S_2 是馬爾可夫過程(S,P^{\pi})
  • 狀態和獎勵序列爲S_1,R_1,S_2,R_2 是馬爾可夫獎勵過程
    P^{\pi}(s^{\prime}|s) = \sum_{a \in A} \pi(a|s)P(s^{\prime}|s,a)
  • 直接通過求和,或者邊緣概率去掉 a
    R^{\pi}(s) = \sum_{a \in A} \pi(a|s)R(s,a)

MDP 中的價值函數

  • 價值函數: 在 MDP 過程中的價值函數也給一個定義,這裏期望是由 policy 所決定的,也就是根據 policy 進行採樣之後得到期望,從而計算其價值函數
    V^{\pi}(s) = \mathbb{E}_{\pi}[G_t|s_t = s]

  • Q 函數,action-value 函數定義某一個行爲可能得到某一個期望,這個期望也是 policy 函數,也就是我們在某一個狀態下,採取某一個動作,最終能獲得多少累計獎勵的函數
    Q^{\pi}(s,a) = \mathbb{E}_{\pi}[G_t|s_t = s,A_t = a]

  • 價值函數和Q函數關係,也就是對 Q 函數進行邊緣概率求和得到 V 函數
    V^{\pi}(s) = \sum_{a \in A} \pi(a|s)Q^{\pi}(s,a)

Bellman Expectation Equation

主要定義當前狀態和外來狀態之間一個關聯,對於所有
V^{\pi}(s) = \mathbb{E}_{\pi}[R_{t+1} + \gamma V^{\pi}(s_{t+1})|s_t = s] \tag{1}

Q^{\pi}(s,a) = E_{\pi}[R_{t+1} + \gamma Q^{\pi}(s_{t+1},A_{t+1})|s_t = s,A_t = a] \tag{2}

Bellman Expectation Equation for V^{\pi} and Q^{\pi}

  • 當前價值和未來價值之間的關係
    V^{\pi}(s) = \sum_{a \in A} \pi (a|s) Q^{\pi}(s,a) \tag{3}
  • 價值函數和Q函數之間一個關係

Q^{\pi}(s,a) = R_s^a + \gamma \sum_{s^{\prime} \in S} P(s^{\prime}|s,a)V^{\pi}(s^{\prime}) \tag{4}

V^{\pi}(s) = \sum_{a\in A} \pi(a|s)(R(s,a) + \gamma \sum_{s^{\prime} \in S} P(s^{\prime}|s,a)V^{\pi}(s^{\prime})

Q^{\pi}(s,a) = R(s,a)+ \gamma a \sum_{s^{\prime} \in S} P(s^{\prime}|s,a)\sum_{a^{\prime} \in A} \pi (a^{\prime}|s^{\prime}) Q^{\pi}(s^{\prime},a^{\prime})

策略迭代

價值迭代

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