[強化學習的數學原理—趙世鈺老師]學習筆記02-貝爾曼方程

本人為強化學習小白,為了在后續科研的過程中能夠較好的結合強化學習來做相關研究,特意買了西湖大學趙世鈺老師撰寫的《強化學習數學原理》中文版這本書,并結合趙老師的講解視頻來學習和更深刻的理解強化學習相關概念,知識和算法技術等。學習筆記是記錄自己在看書和視頻過程當中的一些自己的想法,通過基于書籍、視頻和自己的話講清楚相關理論知識和算法技術。希望能幫助到同樣在學習強化學習的同學和同行等。

本文章為西湖大學趙世鈺老師《強化學習數學原理》中文版第2章 貝爾曼方程的學習筆記,在書中內容的基礎上增加了自己的一些理解內容和相關補充內容。

2.1 啟發示例1:為什么回報很重要?

核心概念: 狀態值,作為一個評價策略好壞的指標
核心工具: 貝爾曼方程,描述了所有狀態值之間的關系。
通過求解貝爾曼方程,得到狀態值,進而可以評價一個策略的好壞。

回顧: 回報可以評價一個策略的好壞。
通過如圖2.1所示三個在狀態 s 1 s_1 s1?策略不同,其他狀態策略相同的例子來說明回報的重要性,并分析三個不同策略的好壞。
同一狀態不同策略的三個例子

圖2.1 同一狀態不同策略的三個例子

直接觀察結果:

  • 左側策略,從狀態 s 1 s_1 s1?出發不會進入禁止區域,回報最大,策略最好。
  • 中間策略,從狀態 s 1 s_1 s1?出發一定會進入禁止區域,回報最小,策略最壞。
  • 右側策略,從狀態 s 1 s_1 s1?出發有0.5的概率進入禁止區域,回報一般,策略不好也不壞。

數學計算結果:

  • 左側策略,軌跡為 s 1 → s 3 → s 4 → s 4 ? s_1\rightarrow s_3\rightarrow s_4\rightarrow s_4 \cdots s1?s3?s4?s4??,計算對應折扣回報為
    r e t u r n 1 = 0 + γ 1 + γ 2 1 + ? = γ ( 1 + γ + γ 2 + ? ) = γ 1 ? γ (1) \begin{align}\mathrm{return}_{1}&=0+\gamma1+\gamma^21+\cdots\\ &=\gamma(1+\gamma+\gamma^2+\cdots)\\&=\frac{\gamma}{1-\gamma}\end{align}\tag{1} return1??=0+γ1+γ21+?=γ(1+γ+γ2+?)=1?γγ??(1)
  • 中間策略,軌跡為 s 1 → s 2 → s 4 → s 4 ? s_1\rightarrow s_2\rightarrow s_4\rightarrow s_4 \cdots s1?s2?s4?s4??,計算對應折扣回報為
    r e t u r n 2 = ? 1 + γ 1 + γ 2 1 + ? = ? 1 + γ ( 1 + γ + γ 2 + ? ) = ? 1 + γ 1 ? γ (2) \begin{align}\mathrm{return}_{2}&=-1+\gamma1+\gamma^21+\cdots\\ &=-1+\gamma(1+\gamma+\gamma^2+\cdots)\\&=-1+\frac{\gamma}{1-\gamma}\end{align}\tag{2} return2??=?1+γ1+γ21+?=?1+γ(1+γ+γ2+?)=?1+1?γγ??(2)
  • 右側策略,得到兩條軌跡,分別為 s 1 → s 2 → s 4 → s 4 ? s_1\rightarrow s_2\rightarrow s_4\rightarrow s_4 \cdots s1?s2?s4?s4?? s 1 → s 3 → s 4 → s 4 ? s_1\rightarrow s_3\rightarrow s_4\rightarrow s_4 \cdots s1?s3?s4?s4??。兩條軌跡各有0.5概率發生,其對應的折扣回報分別為 r e t u r n 1 \mathrm{return}_{1} return1? r e t u r n 2 \mathrm{return}_{2} return2?,則平均回報計算為
    r e t u r n 3 = 0.5 ( γ 1 ? γ ) + 0.5 ( ? 1 + γ 1 ? γ ) = ? 0.5 + γ 1 ? γ (3) \begin{align}\mathrm{return}_{3}&=0.5(\frac{\gamma}{1-\gamma})+0.5(-1+\frac{\gamma}{1-\gamma})\\ &=-0.5+\frac{\gamma}{1-\gamma}\end{align}\tag{3} return3??=0.5(1?γγ?)+0.5(?1+1?γγ?)=?0.5+1?γγ??(3)
    結論:根據式(1),(2)和(3)的計算結果可知
    r e t u r n 1 > r e t u r n 3 > r e t u r n 2 (4) \begin{align}\mathrm{return}_{1}>\mathrm{return}_{3}>\mathrm{return}_{2}\end{align}\tag{4} return1?>return3?>return2??(4)
    數學計算折扣回報得到的結果和直接觀察得到的結果是一致的。

注:例子得出的結論:回報可以評價一個策略的好壞。但是需要注意的是,回報的定義針對的是一條軌跡,但是 r e t u r n 3 \mathrm{return}_{3} return3?為兩條軌跡折扣回報的平均值,這其實就是后續要介紹的狀態值

2.2 啟發示例2:如何計算回報?

  • 定義法:回報定義為沿軌跡收集的所有獎勵的折扣總和。如圖2.2所示,忽略禁止區域和目標區域,給出一個簡單的例子來計算回報。
    如何計算回報示例
圖2.2 如何計算回報示例

定義 v i v_{i} vi?為從狀態 s i s_{i} si?出發得到的回報, i = 1 , 2 , 3 , 4 i=1,2,3,4 i=1,2,3,4,則對應狀態出發得到的折扣回報為
v 1 = r 1 + γ r 2 + γ 2 r 3 + γ 3 r 4 + ? v 2 = r 2 + γ r 3 + γ 2 r 4 + γ 3 r 1 + ? v 3 = r 3 + γ r 4 + γ 2 r 1 + γ 3 r 2 + ? v 4 = r 4 + γ r 1 + γ 2 r 2 + γ 3 r 3 + ? (5) \begin{align}v_{1}&=r_1+\gamma r_2+\gamma^2 r_3+\gamma^3 r_4+\cdots\\ v_{2}&=r_2+\gamma r_3+\gamma^2 r_4+\gamma^3 r_1+\cdots\\ v_{3}&=r_3+\gamma r_4+\gamma^2 r_1+\gamma^3 r_2+\cdots\\ v_{4}&=r_4+\gamma r_1+\gamma^2 r_2+\gamma^3 r_3+\cdots\end{align}\tag{5} v1?v2?v3?v4??=r1?+γr2?+γ2r3?+γ3r4?+?=r2?+γr3?+γ2r4?+γ3r1?+?=r3?+γr4?+γ2r1?+γ3r2?+?=r4?+γr1?+γ2r2?+γ3r3?+??(5)

  • 自舉法(bootstrapping):觀察式(5)中針對每個狀態出發獲得回報的計算結果,可以改寫為
    v 1 = r 1 + γ ( r 2 + γ r 3 + γ 2 r 4 + ? ) = r 1 + γ v 2 v 2 = r 2 + γ ( r 3 + γ r 4 + γ 2 r 1 + ? ) = r 2 + γ v 3 v 3 = r 3 + γ ( r 4 + γ r 1 + γ 2 r 2 + ? ) = r 3 + γ v 4 v 4 = r 4 + γ ( r 1 + γ r 2 + γ 2 r 3 + ? ) = r 4 + γ v 1 (6) \begin{align}v_{1}&=r_1+\gamma(r_2+\gamma r_3+\gamma^2 r_4+\cdots)=r_1+\gamma v_{2}\\ v_{2}&=r_2+\gamma(r_3+\gamma r_4+\gamma^2 r_1+\cdots)=r_2+\gamma v_{3}\\ v_{3}&=r_3+\gamma(r_4+\gamma r_1+\gamma^2 r_2+\cdots)=r_3+\gamma v_{4}\\ v_{4}&=r_4+\gamma(r_1+\gamma r_2+\gamma^2 r_3+\cdots)=r_4+\gamma v_{1}\end{align}\tag{6} v1?v2?v3?v4??=r1?+γ(r2?+γr3?+γ2r4?+?)=r1?+γv2?=r2?+γ(r3?+γr4?+γ2r1?+?)=r2?+γv3?=r3?+γ(r4?+γr1?+γ2r2?+?)=r3?+γv4?=r4?+γ(r1?+γr2?+γ2r3?+?)=r4?+γv1??(6)式(6)的矩陣-向量形式的線性方程為
    [ v 1 v 2 v 3 v 4 ] ? v ∈ R 4 = [ r 1 r 2 r 3 r 4 ] + [ γ v 2 γ v 3 γ v 4 γ v 5 ] = [ r 1 r 2 r 3 r 4 ] ? r ∈ R 4 + [ 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 ] ? P ∈ R 4 × 4 [ v 1 v 2 v 3 v 4 ] ? v ∈ R 4 (7) \begin{align}\underbrace{ \begin{bmatrix} v_{1}\\ v_{2}\\ v_{3}\\ v_{4} \end{bmatrix}}_{v\in\mathbb{R}^{4}}= \begin{bmatrix} r_{1}\\ r_{2}\\ r_{3}\\ r_{4} \end{bmatrix}+ \begin{bmatrix} \gamma v_{2}\\ \gamma v_{3}\\ \gamma v_{4}\\ \gamma v_{5} \end{bmatrix}=\underbrace{ \begin{bmatrix} r_{1}\\ r_{2}\\ r_{3}\\ r_{4} \end{bmatrix}}_{r\in\mathbb{R}^{4}}+\underbrace{ \begin{bmatrix} 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ 1 & 0 & 0 & 0 \end{bmatrix}}_{P\in\mathbb{R}^{4\times 4}} \underbrace{ \begin{bmatrix} v_{1}\\ v_{2}\\ v_{3}\\ v_{4} \end{bmatrix}}_{v\in\mathbb{R}^{4}} \end{align}\tag{7} vR4 ?v1?v2?v3?v4?? ???= ?r1?r2?r3?r4?? ?+ ?γv2?γv3?γv4?γv5?? ?=rR4 ?r1?r2?r3?r4?? ???+PR4×4 ?0001?1000?0100?0010? ???vR4 ?v1?v2?v3?v4?? ????(7)式(7)的簡化形式為
    v = r + P v v=r+Pv v=r+Pv總結:由式(5)可知,從不同狀態出發的回報值式彼此依賴的,即, v 1 v_{1} v1?依賴于 v 2 v_{2} v2? v 2 v_{2} v2?依賴于 v 3 v_{3} v3? v 3 v_{3} v3?依賴于 v 4 v_{4} v4? v 4 v_{4} v4?又依賴于 v 1 v_{1} v1?。這也反映了自舉的思想,即, v 1 v_{1} v1? v 2 v_{2} v2? v 3 v_{3} v3? v 4 v_{4} v4?,可以從其自身 v 2 v_{2} v2? v 3 v_{3} v3? v 4 v_{4} v4? v 1 v_{1} v1?得到。
    從數學的角度,由式(6)給出的矩陣-向量形式的線性方程為可以很好的理解自舉。同時通過線性代數的知識可以很容易得到方程的解為
    v = ( I ? γ P ) ? 1 r v=(I-\gamma P)^{-1}r v=(I?γP)?1r這里, I ∈ R 4 × 4 I\in\mathbb{R}^{4\times 4} IR4×4為單位矩陣,且 ( I ? γ P ) (I-\gamma P) (I?γP)一定是可逆的,這在后續的學習中將會被證明。、

注:方程(6)即為圖2所示例子對應的貝爾曼方程,方程(7)即為這個貝爾曼方程的矩陣-向量形式。
貝爾曼方程的核心思想:從一個狀態出發獲得的回報依賴于從其他狀態出發時獲得的回報。

2.3 狀態值

注:嚴格定義下,回報只能用來評價一個確定策略的好壞,對于一般化的隨機情況(從一個狀態出發得到不同策略和回報的可能性),用回報來評價這種策略的好壞是不適用的。這時候就要引入狀態值的概念。

首先給出一個一般化的過程,即,在任意時刻( t = 0 , 1 , 2 , … t=0,1,2,\dots t=0,1,2,)智能體處于任意狀態 S t S_{t} St?按照某一策略 π \pi π執行動作 A t A_{t} At?,并下一時刻轉移到狀態 S t + 1 S_{t+1} St+1?且獲得即時獎勵 R t + 1 R_{t+1} Rt+1?的過程
S t → A t S t + 1 , R t + 1 (8) S_{t}\rightarrow^{A_{t}}S_{t+1},R_{t+1}\tag{8} St?At?St+1?,Rt+1?(8)其中, S t , S t + 1 ∈ S S_{t},S_{t+1}\in\mathcal{S} St?,St+1?S A t ∈ A ( S t ) A_{t}\in\mathcal{A(S_{t})} At?A(St?) R t + 1 ∈ R ( S t , A t ) R_{t+1}\in\mathcal{R}(S_{t},A_{t}) Rt+1?R(St?,At?)

注: S t S_{t} St? S t + 1 S_{t+1} St+1? A t A_{t} At? R t + 1 R_{t+1} Rt+1?都為隨機變量(random variables)

由式(8)可以得到從 t t t時刻開始的一條包含一系列“狀態-動作-獎勵”的軌跡
S t → A t S t + 1 , R t + 1 → A t + 1 S t + 2 , R t + 2 → A t + 2 S t + 3 , R t + 3 , … S_{t}\rightarrow^{A_{t}}S_{t+1},R_{t+1}\rightarrow^{A_{t+1}}S_{t+2},R_{t+2}\rightarrow^{A_{t+2}}S_{t+3},R_{t+3},\dots St?At?St+1?,Rt+1?At+1?St+2?,Rt+2?At+2?St+3?,Rt+3?,
沿著軌跡計算得到的折扣回報為
G t ? R t + 1 + γ R t + 2 + γ 2 R t + 3 + … , γ ∈ ( 0 , 1 ) G_{t}\doteq R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+\dots,\;\gamma\in(0,1) Gt??Rt+1?+γRt+2?+γ2Rt+3?+,γ(0,1)

G t G_{t} Gt? R t + 1 R_{t+1} Rt+1?, R t + 2 R_{t+2} Rt+2?, … \dots 這些隨機變量的組合得到,同樣也為隨機變量。

計算隨機變量 G t G_{t} Gt?的數學期望(expectation/expected value)為
v π ( s ) ? E [ G t ∣ S t = s ] v_{\pi}(s)\doteq\mathbb{E}[G_{t}|S_{t}=s] vπ?(s)?E[Gt?St?=s]
這里 v π ( s ) v_{\pi}(s) vπ?(s)被定義為狀態值函數(state-value function),又簡稱為狀態值狀態價值(state value)

注:關于狀態值的說明。

  • 狀態值 v π ( s ) v_{\pi}(s) vπ?(s)的值依賴于狀態 s s s,不同狀態下的狀態值一般是不同的。狀態值的本質是求隨機變量 G t G_{t} Gt?在條件 S t = s S_{t}=s St?=s下的條件期望。
  • 狀態值 v π ( s ) v_{\pi}(s) vπ?(s)的值依賴于策略 π \pi π,不同策略下的狀態值一般是不同的。不同的策略會產生不同的軌跡,進而影響狀態值。
  • 狀態值 v π ( s ) v_{\pi}(s) vπ?(s)的值不依賴于時間 t t t。所考慮的系統模型是平穩的,不會隨時間變化。

“狀態值”和“回報”的關系如圖2.3所示

在這里插入圖片描述

圖2.3 “狀態值”和“回報”關系圖

總結:狀態值所描述的情況比回報描述的情況更一般化,可以處理不確定性和隨機性的情況。

狀態值可以更一般化的來評價策略,能產生更高狀態值的策略更好。

2.4 貝爾曼方程

貝爾曼方程(Bellman equation)描述了所有狀態值之間的關系。

貝爾曼方程的推導過程如下:

  1. 改寫 G t G_{t} Gt?
    G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + … = R t + 1 + γ ( R t + 2 + γ R t + 3 + … ) = R t + 1 + γ G t + 1 \begin{align*}G_{t}&= R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+\dots\\ &=R_{t+1}+\gamma(R_{t+2}+\gamma R_{t+3}+\dots)\\ &=R_{t+1}+\gamma G_{t+1}\end{align*} Gt??=Rt+1?+γRt+2?+γ2Rt+3?+=Rt+1?+γ(Rt+2?+γRt+3?+)=Rt+1?+γGt+1??
  2. 基于步驟1中建立的 G t G_{t} Gt? G t + 1 G_{t+1} Gt+1?之間的關系,狀態值 v π ( s ) v_{\pi}(s) vπ?(s)可以改寫為
    v π ( s ) = E [ G t ∣ S t = s ] = E [ R t + 1 + γ G t + 1 ∣ S t = s ] = E [ R t + 1 ∣ S t = s ] + E [ γ G t + 1 ∣ S t = s ] (9) \begin{align}v_{\pi}(s)&=\mathbb{E}[G_{t}|S_{t}=s]\\ &=\mathbb{E}[R_{t+1}+\gamma G_{t+1}|S_{t}=s]\\ &=\mathbb{E}[R_{t+1}|S_{t}=s]+\mathbb{E}[\gamma G_{t+1}|S_{t}=s]\end{align}\tag{9} vπ?(s)?=E[Gt?St?=s]=E[Rt+1?+γGt+1?St?=s]=E[Rt+1?St?=s]+E[γGt+1?St?=s]?(9)
  3. 分析式(9)中的兩個數學期望項
  • 即時獎勵期望值 E [ R t + 1 ∣ S t = s ] \mathbb{E}[R_{t+1}|S_{t}=s] E[Rt+1?St?=s]

這一項可以通過全期望(total expectation) 的性質來進行改寫,首先給出改寫結果,然后給出具體的推導過程
E [ R t + 1 ∣ S t = s ] = ∑ a ∈ A π ( a ∣ s ) E [ R t + 1 ∣ S t = s , A t = a ] = ∑ a ∈ A π ( a ∣ s ) ∑ r ∈ R p ( r ∣ s , a ) r (10) \begin{align} \mathbb{E}[R_{t+1}|S_{t}=s]&=\sum_{a\in\mathcal{A}}\pi(a|s)\mathbb{E}[R_{t+1}|S_{t}=s,A_{t}=a]\\ &=\sum_{a\in\mathcal{A}}\pi(a|s)\sum_{r\in\mathcal{R}}p(r|s,a)r \end{align}\tag{10} E[Rt+1?St?=s]?=aA?π(as)E[Rt+1?St?=s,At?=a]=aA?π(as)rR?p(rs,a)r?(10)

式(10)的推導過程如下:

首先基于鏈式規則(chain rule) 和條件概率公式可以得到
p ( a , b ) = p ( a ∣ b ) p ( b ) p ( a , b , c ) = p ( a ∣ b , c ) p ( b , c ) = p ( a ∣ b , c ) p ( b ∣ c ) p ( c ) \begin{align*}p(a,b)&=p(a|b)p(b)\\ p(a,b,c)&=p(a|b,c)p(b,c)\\&=p(a|b,c)p(b|c)p(c)\end{align*} p(a,b)p(a,b,c)?=p(ab)p(b)=p(ab,c)p(b,c)=p(ab,c)p(bc)p(c)?
由于 p ( a , b , c ) = p ( a , b ∣ c ) p ( c ) p(a,b,c)=p(a,b|c)p(c) p(a,b,c)=p(a,bc)p(c),所以 p ( a , b , c ) / p ( c ) = p ( a , b ∣ c ) = p ( a ∣ b , c ) p ( b ∣ c ) p(a,b,c)/p(c)=p(a,b|c)=p(a|b,c)p(b|c) p(a,b,c)/p(c)=p(a,bc)=p(ab,c)p(bc)
然后可以進一步推導出以下關系
p ( x ∣ a ) = ∑ b p ( x , b ∣ a ) = ∑ b p ( x ∣ b , a ) p ( b ∣ a ) p(x|a)=\sum_{b}p(x,b|a)=\sum_{b}p(x|b,a)p(b|a) p(xa)=b?p(x,ba)=b?p(xb,a)p(ba)
其次給出期望(expectation)條件期望(conditional expectation) 的定義,并基于此推導出全期望公式(formula of total expectation)
(1)期望(expectation):隨機變量 X X X取值 x x x的概率為 p ( x ) p(x) p(x) X X X的期望值定義為 E [ X ] = ∑ x x p ( x ) \mathbb{E}[X]=\sum_{x}xp(x) E[X]=x?xp(x)
(2)條件期望(conditional expectation):
E [ X ∣ A = a ] = ∑ x x p ( x ∣ a ) \mathbb{E}[X|A=a]=\sum_{x}xp(x|a) E[XA=a]=x?xp(xa)
(3)全期望公式(formula of total expectation):
E [ X ] = ∑ a E [ X ∣ A = a ] p ( a ) \mathbb{E}[X]=\sum_{a}\mathbb{E}[X|A=a]p(a) E[X]=a?E[XA=a]p(a)
全期望公式的證明如下: ∑ a E [ X ∣ A = a ] p ( a ) = ∑ a ∑ x x p ( x ∣ a ) p ( a ) → 由條件期望定義得到 = ∑ x [ ∑ a p ( x ∣ a ) p ( a ) ] x = ∑ x p ( x ) x → 由全概率公式定義得到 = E [ X ] → 由期望值定義得到 \begin{align*}\sum_{a}\mathbb{E}[X|A=a]p(a)&=\sum_{a}\sum_{x}xp(x|a)p(a)\;\rightarrow 由條件期望定義得到\\ &=\sum_{x}\bigg[\sum_{a}p(x|a)p(a)\bigg]x\\ &=\sum_{x}p(x)x\;\rightarrow 由全概率公式定義得到\\ &=\mathbb{E}[X]\;\rightarrow 由期望值定義得到\end{align*} a?E[XA=a]p(a)?=a?x?xp(xa)p(a)由條件期望定義得到=x?[a?p(xa)p(a)]x=x?p(x)x由全概率公式定義得到=E[X]由期望值定義得到?
然后,給出條件期望的另一種數學表示形式
E [ X ∣ A = a ] = ∑ b E [ X ∣ A = a , B = b ] p ( b ∣ a ) \mathbb{E}[X|A=a]=\sum_{b}\mathbb{E}[X|A=a,B=b]p(b|a) E[XA=a]=b?E[XA=a,B=b]p(ba)
證明如下: ∑ b E [ X ∣ A = a , B = b ] p ( b ∣ a ) = ∑ b [ ∑ x x p ( x ∣ a , b ) ] p ( b ∣ a ) → 由條件期望定義得到 = ∑ b ∑ x [ p ( x ∣ a , b ) p ( b ∣ a ) x = ∑ x [ ∑ b p ( x ∣ a , b ) p ( b ∣ a ) ] x = ∑ x ∑ b p ( x , b ∣ a ) x → 由鏈式規則的推廣得到 = ∑ x p ( x ∣ a ) x = E [ X ∣ A = a ] → 由期望值定義得到 \begin{align*}\sum_{b}\mathbb{E}[X|A=a,B=b]p(b|a)&=\sum_{b }\bigg[\sum_{x}xp(x|a,b)\bigg]p(b|a)\;\rightarrow 由條件期望定義得到\\ &=\sum_{b}\sum_{x}[p(x|a,b)p(b|a)x\\ &=\sum_{x}\bigg[\sum_{b}p(x|a,b)p(b|a)\bigg]x\\ &=\sum_{x}\sum_{b}p(x,b|a)x\;\rightarrow 由鏈式規則的推廣得到\\ &=\sum_{x}p(x|a)x\\ &=\mathbb{E}[X|A=a]\;\rightarrow 由期望值定義得到\end{align*} b?E[XA=a,B=b]p(ba)?=b?[x?xp(xa,b)]p(ba)由條件期望定義得到=b?x?[p(xa,b)p(ba)x=x?[b?p(xa,b)p(ba)]x=x?b?p(x,ba)x由鏈式規則的推廣得到=x?p(xa)x=E[XA=a]由期望值定義得到?
因此,利用上述等式,我們可以得到即時獎勵期望值 E [ R t + 1 ∣ S t = s ] \mathbb{E}[R_{t+1}|S_{t}=s] E[Rt+1?St?=s]的改寫結果式(10),即 E [ R t + 1 ∣ S t = s ] = ∑ a ∈ A π ( a ∣ s ) E [ R t + 1 ∣ S t = s , A t = a ] = ∑ a ∈ A π ( a ∣ s ) ∑ r ∈ R p ( r ∣ s , a ) r \begin{align*} \mathbb{E}[R_{t+1}|S_{t}=s]&=\sum_{a\in\mathcal{A}}\pi(a|s)\mathbb{E}[R_{t+1}|S_{t}=s,A_{t}=a]\\ &=\sum_{a\in\mathcal{A}}\pi(a|s)\sum_{r\in\mathcal{R}}p(r|s,a)r \end{align*} E[Rt+1?St?=s]?=aA?π(as)E[Rt+1?St?=s,At?=a]=aA?π(as)rR?p(rs,a)r?推導結束。

  • 未來獎勵期望值 E [ G t + 1 ∣ S t = s ] \mathbb{E}[G_{t+1}|S_{t}=s] E[Gt+1?St?=s]

這一項可以基于馬爾可夫性質改寫為如下形式
E [ G t + 1 ∣ S t = s ] = ∑ s ′ ∈ S E [ G t + 1 ∣ S t = s , S t + 1 = s ′ ∣ p ( s ′ ∣ s ) ] = ∑ s ′ ∈ S E [ G t + 1 ∣ S t + 1 = s ′ ∣ p ( s ′ ∣ s ) ] → 由馬爾可夫性質得到 = ∑ s ′ ∈ S v π ( s ′ ) p ( s ′ ∣ s ) = ∑ s ′ ∈ S v π ( s ′ ) ∑ a ∈ A p ( s ′ ∣ s , a ) π ( a ∣ s ) → 由鏈式規則的推廣得到 (11) \begin{align}\mathbb{E}[G_{t+1}|S_{t}=s]&=\sum_{s'\in\mathcal{S}}\mathbb{E}[G_{t+1}|S_{t}=s,S_{t+1}=s'|p(s'|s)]\\&=\sum_{s'\in\mathcal{S}}\mathbb{E}[G_{t+1}|S_{t+1}=s'|p(s'|s)]\;\rightarrow 由馬爾可夫性質得到\\ &=\sum_{s'\in\mathcal{S}}v_{\pi}(s')p(s'|s)\\ &=\sum_{s'\in\mathcal{S}}v_{\pi}(s')\sum_{a\in\mathcal{A}}p(s'|s,a)\pi(a|s)\;\rightarrow 由鏈式規則的推廣得到\end{align}\tag{11} E[Gt+1?St?=s]?=sS?E[Gt+1?St?=s,St+1?=sp(ss)]=sS?E[Gt+1?St+1?=sp(ss)]由馬爾可夫性質得到=sS?vπ?(s)p(ss)=sS?vπ?(s)aA?p(ss,a)π(as)由鏈式規則的推廣得到?(11)

馬爾可夫性質: E [ G t + 1 ∣ S t = s , S t + 1 = s ′ ] = E [ G t + 1 ∣ S t = s ] \mathbb{E}[G_{t+1}|S_{t}=s,S_{t+1}=s']=\mathbb{E}[G_{t+1}|S_{t}=s] E[Gt+1?St?=s,St+1?=s]=E[Gt+1?St?=s],即未來的獎勵僅依賴于當前狀態,與先前的狀態無關,即無記憶性。

將式(10)和式(11)帶入式(9),即可得到貝爾曼方程
v π ( s ) = E [ R t + 1 ∣ S t = s ] + γ E [ G t + 1 ∣ S t = s ] = ∑ a ∈ A π ( a ∣ s ) ∑ r ∈ R p ( r ∣ s , a ) r + γ ∑ s ′ ∈ S v π ( s ′ ) ∑ a ∈ A p ( s ′ ∣ s , a ) π ( a ∣ s ) = ∑ a ∈ A π ( a ∣ s ) [ ∑ r ∈ R p ( r ∣ s , a ) r + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) v π ( s ′ ) ] , s ∈ S (12) \begin{align}v_{\pi}(s)&=\mathbb{E}[R_{t+1}|S_{t}=s]+\gamma\mathbb{E}[G_{t+1}|S_{t}=s]\\ &=\sum_{a\in\mathcal{A}}\pi(a|s)\sum_{r\in\mathcal{R}}p(r|s,a)r+\gamma\sum_{s'\in\mathcal{S}}v_{\pi}(s')\sum_{a\in\mathcal{A}}p(s'|s,a)\pi(a|s)\\&=\sum_{a\in\mathcal{A}}\pi(a|s)\bigg[\sum_{r\in\mathcal{R}}p(r|s,a)r+\gamma\sum_{s'\in\mathcal{S}}p(s'|s,a)v_{\pi}(s')\bigg]\;,s\in\mathcal{S}\end{align}\tag{12} vπ?(s)?=E[Rt+1?St?=s]+γE[Gt+1?St?=s]=aA?π(as)rR?p(rs,a)r+γsS?vπ?(s)aA?p(ss,a)π(as)=aA?π(as)[rR?p(rs,a)r+γsS?p(ss,a)vπ?(s)],sS?(12)

貝爾曼方程的解釋說明:

  • v π ( s ) v_{\pi}(s) vπ?(s) v π ( s ′ ) v_{\pi}(s') vπ?(s)都是需要計算的狀態值,是未知量。
  • π ( a ∣ s ) \pi(a|s) π(as)是一個給定的策略,是已知量。
  • p ( r ∣ s , a ) p(r|s,a) p(rs,a) p ( s ′ ∣ s , a ) p(s'|s,a) p(ss,a)代表系統模型,可以是已知的也可以是未知的。

貝爾曼方程的常見等價形式:

  • 等價形式1的表達式如下所示
    v π ( s ) = ∑ a ∈ A π ( a ∣ s ) ∑ s ′ ∈ S ∑ r ∈ R p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] v_{\pi}(s)=\sum_{a\in\mathcal{A}}\pi(a|s)\sum_{s'\in\mathcal{S}}\sum_{r\in\mathcal{R}}p(s',r|s,a)[r+\gamma v_{\pi}(s')] vπ?(s)=aA?π(as)sS?rR?p(s,rs,a)[r+γvπ?(s)]

推導過程如下
首先給出兩個與狀態 s s s s ′ s' s,動作 a a a和獎勵 r r r有關的全概率公式 p ( s ′ ∣ s , a ) = ∑ r ∈ R p ( s ′ , r ∣ s , a ) p ( r ∣ , s , a ) = ∑ s ′ ∈ S p ( s ′ , r ∣ s , a ) \begin{align*}p(s'|s,a)&=\sum_{r\in\mathcal{R}}p(s',r|s,a)\\ p(r|,s,a)&=\sum_{s'\in\mathcal{S}}p(s',r|s,a)\end{align*} p(ss,a)p(r,s,a)?=rR?p(s,rs,a)=sS?p(s,rs,a)?將上述兩個全概率公式代入(12),可以得到 v π ( s ) = ∑ a ∈ A π ( a ∣ s ) [ ∑ r ∈ R p ( r ∣ s , a ) r + ∑ s ′ ∈ S p ( s ′ ∣ s , a ) v π ( s ′ ) ] = ∑ a ∈ A π ( a ∣ s ) [ ∑ s ′ ∈ S ∑ r ∈ R p ( s ′ , r ∣ s , a ) r + ∑ s ′ ∈ S ∑ r ∈ R p ( s ′ , r ∣ s , a ) v π ( s ′ ) ] = ∑ a ∈ A π ( a ∣ s ) ∑ s ′ ∈ S ∑ r ∈ R p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] \begin{align*}v_{\pi}(s)&=\sum_{a\in\mathcal{A}}\pi(a|s)\bigg[\sum_{r\in\mathcal{R}}p(r|s,a)r+\sum_{s'\in\mathcal{S}}p(s'|s,a)v_{\pi}(s')\bigg]\\ &=\sum_{a\in\mathcal{A}}\pi(a|s)\bigg[\sum_{s'\in\mathcal{S}}\sum_{r\in\mathcal{R}}p(s',r|s,a)r+\sum_{s'\in\mathcal{S}}\sum_{r\in\mathcal{R}}p(s',r|s,a)v_{\pi}(s')\bigg]\\ &=\sum_{a\in\mathcal{A}}\pi(a|s)\sum_{s'\in\mathcal{S}}\sum_{r\in\mathcal{R}}p(s',r|s,a)[r+\gamma v_{\pi}(s')]\end{align*} vπ?(s)?=aA?π(as)[rR?p(rs,a)r+sS?p(ss,a)vπ?(s)]=aA?π(as)[sS?rR?p(s,rs,a)r+sS?rR?p(s,rs,a)vπ?(s)]=aA?π(as)sS?rR?p(s,rs,a)[r+γvπ?(s)]?推導結束。

  • 等價形式2為貝爾曼期望方程(bellman expectation equation):
    v π ( s ) = E [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s ] , s ∈ S v_{\pi}(s)=\mathbb{E}[R_{t+1}+\gamma v_{\pi}(S_{t+1})|S_{t}=s],\;s\in\mathcal{S} vπ?(s)=E[Rt+1?+γvπ?(St+1?)St?=s],sS

推導過程如下
由式(11)可知
E [ G t + 1 ∣ S t = s ] = ∑ s ′ ∈ S v π ( s ′ ) ∑ a ∈ A p ( s ′ ∣ s , a ) π ( a ∣ s ) = E [ v π ( S t + 1 ) ∣ S t = s ] \begin{align*}\mathbb{E}[G_{t+1}|S_{t}=s]&=\sum_{s'\in\mathcal{S}}v_{\pi}(s')\sum_{a\in\mathcal{A}}p(s'|s,a)\pi(a|s)\\&=\mathbb{E}[v_{\pi}(S_{t+1})|S_{t}=s]\end{align*} E[Gt+1?St?=s]?=sS?vπ?(s)aA?p(ss,a)π(as)=E[vπ?(St+1?)St?=s]? 將上述等式帶入式(9)即可得到貝爾曼期望方程。

  • 等價形式3的表達式如下所示
    v π ( s ) = ∑ a ∈ A π ( a ∣ s ) ∑ s ′ ∈ S p ( s ′ ∣ s , a ) [ r ( s ′ ) + γ v π ( s ′ ) ] v_{\pi}(s)=\sum_{a\in\mathcal{A}}\pi(a|s)\sum_{s'\in\mathcal{S}}p(s'|s,a)[r(s')+\gamma v_{\pi}(s')] vπ?(s)=aA?π(as)sS?p(ss,a)[r(s)+γvπ?(s)]

推導過程如下
在一些特殊問題中,獎勵 r r r可能僅依賴于下一個狀態 s ′ s' s,這時候獎勵可以表示為 r ( s ′ ) r(s') r(s)。這時候以下等式成立
p ( r ( s ′ ) ∣ s , a ) = p ( s ′ ∣ s , a ) ∑ r ∈ R p ( r ∣ s , a ) r = ∑ s ′ ∈ S p ( r ( s ′ ) ∣ s , a ) r ( s ′ ) \begin{align*}p(r(s')|s,a)&=p(s'|s,a)\\\sum_{r\in\mathcal{R}}p(r|s,a)r&=\sum_{s'\in\mathcal{S}}p(r(s')|s,a)r(s')\end{align*} p(r(s)s,a)rR?p(rs,a)r?=p(ss,a)=sS?p(r(s)s,a)r(s)?將上述等式帶入式(12)可得到等價形式3。

2.5 示例

2.6 矩陣-向量形式

2.7 求解狀態值

2.7.1 方法1:解析解

2.7.2 方法2:數值解

2.7.3 示例

2.8 動作值

2.8.1 示例

2.8.2 基于動作值的貝爾曼方程

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/81410.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/81410.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/81410.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Docker入門指南:鏡像、容器與倉庫的核心概念解析

目錄 前言:為什么需要Docker? 一、Docker能做什么? 二、核心概念解析 1. 鏡像(Image):應用的標準化打包 2. 容器(Container):鏡像的運行實例 3. 鏡像倉庫&#xff0…

大模型微調實戰:基于GpuGeek平臺的低成本高效訓練方案

文章目錄 引言一、GpuGeek平臺使用入門1. 注冊與賬號設置2. 控制臺功能概覽3. 快速創建GPU實例3. 預置鏡像與自定義環境 二、GpuGeek平臺核心優勢解析1. 顯卡資源充足:多卡并行加速訓練2. 鏡像超多:開箱即用的開發環境3. 計費靈活:按需付費降…

Linux:計算機的層狀結構

1.馮諾依曼體系結構 我們常見的計算機,如筆記本、臺式機。我們不常見的計算機,如服務器,大部分都遵守馮諾依曼體系結構。 CPU:運算器和控制器組成。運算器主要工作是做算術運算和邏輯運算。控制器主要工作是協調設備之間信息流動的…

LangGraph(四)——加入人機交互控制

目錄 1. 引言2. 添加Human Assistance工具3. 編譯狀態圖4. 提示聊天機器人5. 恢復執行參考 1. 引言 智能體可能不可靠,甚至需要人工輸入才能完成任務。同樣,對于某些操作,你可能需要在運行前獲得人工批準,以保證一切按預期運行。 …

數據結構【AVL樹】

AVL樹 1.AVL樹1.AVL的概念2.平衡因子 2.AVl樹的實現2.1AVL樹的結構2.2AVL樹的插入2.3 旋轉2.3.1 旋轉的原則 1.AVL樹 1.AVL的概念 AVL樹可以是一個空樹。 它的左右子樹都是AVL樹,且左右子樹的高度差的絕對值不超過1。AVL樹是一顆高度平衡搜索二叉樹,通…

JavaScript【5】DOM模型

1.概述: DOM (Document Object Model):當頁面被加載時,瀏覽器會創建頁面的文檔對象模型,即dom對象;dom對象會被結構化為對象樹,如一個HTML文檔會被分為head,body等部分,而每個部分又…

STM32燒錄程序正常,但是運行異常

一、硬件配置問題 BOOT引腳設置錯誤 STM32的啟動模式由BOOT0和BOOT1引腳決定。若設置為從RAM啟動(BOOT01,BOOT10),程序在掉電后無法保存,導致復位后無法正常運行。應確保BOOT00(從Flash啟動)15。…

汽車二自由度系統模型以及電動助力轉向系統模型

汽車二自由度系統模型與電動助力轉向系統(EPS)的詳細建模方案,包含理論推導、MATLAB/Simulink實現代碼及參數說明: 一、二自由度汽車模型 1. 模型描述 包含以下兩個自由度: 橫向運動(側向加速度&#xf…

git提交庫常用詞

新功能 feat修改BUG fix文檔修改 docs格式修改 style重構 refactor性能提升 perf測試 test構建系統 build對CI配置文件修改 ci修改構建流程、或增加依賴庫、工具 chore回滾版本 revert

JavaScript 時間轉換:從 HH:mm:ss 到十進制小時及反向轉換

關鍵點 JavaScript 可以輕松實現時間格式(HH:mm:ss 或 HH:mm)與十進制小時(如 17.5)的相互轉換。兩個函數分別處理時間字符串到十進制小時,以及十進制小時到時間字符串的轉換,支持靈活的輸入和輸出格式。這…

LLM智能體新紀元:深入解析MCP與A2A協議,賦能智能自動化協作

LLM智能體(LLM agents)是能夠自主行動以實現特定目標的AI系統。在實際應用中,智能體能夠將用戶請求拆解為多個步驟,利用知識庫或API獲取數據,最終整合出答案。這讓智能體相比于傳統獨立聊天機器人擁有更強大的能力——…

[PMIC]PMIC重要知識點總結

PMIC重要知識點總結 摘要:PMIC (Power Management Integrated Circuit) 是現代電子設備中至關重要的組件,負責電源管理,包括電壓調節、電源轉換、電池管理和功耗優化等。PMIC 中的數字部分主要涉及控制邏輯、狀態機、寄存器配置、通信接口&am…

PYTHON訓練營DAY28

類 (一)題目1:定義圓(Circle)類 要求: 包含屬性:半徑 radius。包含方法: calculate_area():計算圓的面積(公式:πr)。calculate_circ…

機器學習-人與機器生數據的區分模型測試 -數據篩選

內容繼續機器學習-人與機器生數據的區分模型測試 使用隨機森林的弱學習樹來篩選相對穩定的特征數據 # 隨機森林篩選特征 X data.drop([city, target], axis1) # 去除修改前的城市名稱列和目標變量列 y data[target] X_train, X_test, y_train, y_test train_test_split(X…

Data whale LLM universe

使用LLM API開發應用 基本概念 Prompt Prompt 最初指的是自然語言處理研究人員為下游任務設計的一種任務專屬的輸入模板。 Temperature 使用Temperature參數控制LLM生成結果的隨機性和創造性,一般取值設置在0~1之間,當取值接近1的時候預測的隨機性較…

Azure 應用的托管身份與服務主體

Microsoft Entra ID -- 前稱 Azure Active Directory -- 提供強大的身份驗證和授權功能。托管身份和服務主體通過限制憑據暴露的風險來幫助確保對 Azure 資源的訪問安全。 托管身份為Azure原生應用程序自動管理身份,而服務主體則非常適合需要訪問Azure資源的外部應…

16 C 語言布爾類型與 sizeof 運算符詳解:布爾類型的三種聲明方式、執行時間、賦值規則

1 布爾類型 1.1 布爾類型概述 布爾類型用于表示邏輯上的真(true)和假(false)兩種狀態,是編程中條件判斷和邏輯運算的基礎。在 C 語言中,布爾值的表示方式隨著標準的發展而不斷完善。 1.2 布爾類型的三種聲…

【C++詳解】string各種接口如何使用保姆級攻略

文章目錄 一、string介紹二、string使用構造函數析構函數賦值運算符重載string的遍歷修改方法1、下標[]2、迭代器3、范圍for 迭代器使用詳解const迭代器反向迭代器(reverse) Capacity(容量相關)size/lengthmax_sizecapacityclear/emptyshrink_to_fit(縮容)reserve(擴…

回調函數應用示例

回調函數是一種通過函數指針(或引用)調用的函數,它在特定事件或條件發生時被另一個函數調用。回調函數的核心思想是將函數作為參數傳遞,以便在適當的時候執行自定義邏輯,常用于異步編程、事件驅動架構等場景。 業務場景…

linux標準庫頭文件解析

linuxc標準庫 C 標準庫&#xff08;C Standard Library&#xff09;包含了一組頭文件&#xff0c;這些頭文件提供了許多函數和宏&#xff0c;用于處理輸入輸出、字符串操作、數學計算、內存管理等常見編程任務。。 頭文件功能簡介<stdio.h>標準輸入輸出庫&#xff0c;包含…