文章目录
1.基础知识
马尔可夫过程 指具有 马尔可夫性质 的 随机过程 。
为了进一步理解马尔可夫过程,我们把定义中的两个定语(马尔可夫性质 和 随机过程)拿出来,分别进行解释。先介绍“随机过程”,再介绍“马尔可夫性质”。
1.1.随机过程
首先是提到 随机过程 ,就不得不提到另外一个名词——概率论 ,因为二者经常拿来做对比,看一下两者的区别:
- 概率论 研究 静态 随机现象的统计规律。
- 随机过程 研究 动态 随机现象的统计规律。
不过,二者当中都提到了一个新词——“随机现象”,可能有的人对这个词有疑惑,“随机现象” 又是什么呢?官方的定义是这样:
在一定条件下,在个别试验或观察中呈现不确定性,但在大量重复试验或观察中其结果又具有一定规律性的现象,称为随机现象。
通俗来说,随机现象 就是某个不确定性的事情。比如:你参加本学期的期末考试,具体各门课程能考多少分是不确定的。但是,你会得出某些规律性的结论,比如专业课可能分数偏低,但公共课分数偏高等,所以:期末考试的分数就是一个随机现象。
那什么是概率论呢?概率论 是研究你期末考试成绩有哪些静态规律,比如某门课程考满分的概率、有多大的概率会及格、有多大概率会够拿奖学金的标准。它是对你已有数据的一个静态分析。
而 随机过程 则是研究你期末考试成绩有哪些动态规律 ,比如你考试成绩随着时间变化有何影响?早考的课是不是分数偏高、晚考的课会不会分数偏低等等。它是随着你考试过程进行的一个动态分析。
综上:
- 随机现象: 期末考试某门课的分数。
- 概率论: 研究你期末考试分数有哪些静态的规律,比如你专业课考高分的概率、公共课满分的概率等。
- 随机过程: 研究你期末考试分数有哪些动态的规律,比如你考试分数随时间的变化,早考的课是不是分数偏高、晚考的课会不会分数偏低等。(生活中,研究股票随着时间发生波动、天气随着时间发生变化,都是随机过程的例子)
1.2.马尔可夫性质
定义: 当且仅当 某时刻的状态 只取决于上一时刻的状态 时,一个随机过程被称为具有马尔可夫性质(Markov property),用公式表示为:
P ( S t + 1 ∣ S t ) = P ( S t + 1 ∣ S 1 , S 2 , … … , S t ) P(S_{t+1} | S_t) = P(S_{t+1} | S_1, S_2, ……, S_t) P(St+1∣St)=P(St+1∣S1,S2,……,St)
也就是说:下一个状态 S t + 1 S_{t+1} St+1 只取决于当前的状态 S t S_t St ;当前状态 S t S_t St 只取决于上一状态 S t − 1 S_{t-1} St−1 。
2.马尔可夫过程(MP)
了解完 随机过程 和 马尔可夫性质 之后,我们再回到最初的概念,来认识一下 马尔可夫过程 。
定义: 马尔可夫过程(Markov process) 指具有 马尔可夫性质 的 随机过程 ,也被称为马尔可夫链(Markov chain)。
我们通常用二元组 < S , P > <\mathcal{S,P}> <S,P> 来描述一个马尔可夫过程。其中 S \mathcal{S} S 是有限状态的集合, P \mathcal{P} P 是状态转移矩阵(State Transition Matrix),状态转移矩阵定义了从任意状态 i i i 到任意状态 j j j 的转移的概率。
下图是一个含有6个状态的马尔可夫过程的简单例子。其中每个绿色圆圈表示一个状态,每个状态都有一定概率(包括概率为 0)转移到其他状态。
以状态
S
1
S_1
S1 为例,从状态
S
1
S_1
S1 到状态
S
1
S_1
S1 的概率为0.9;从状态
S
1
S_1
S1 到状态
S
2
S_2
S2 的概率为0.1;因此
P
(
S
1
∣
S
1
)
=
0.9
,
P
(
S
2
∣
S
1
)
=
0.1
P(S_1|S_1)=0.9,P(S_2| S_1)=0.1
P(S1∣S1)=0.9,P(S2∣S1)=0.1。
这个马尔可夫过程的状态转移矩阵(行列式元素
a
i
j
a_{ij}
aij 就代表从状态
i
i
i 到状态
j
j
j 的转移概率):
P = [ 0.9 0.1 0 0 0 0 0.5 0 0.5 0 0 0 0 0 0 0.6 0 0.4 0 0 0 0 0.3 0.7 0 0.2 0.3 0.5 0 0 0 0 0 0 0 1 ] P=\begin{bmatrix} 0.9 & 0.1 & 0 & 0 & 0 & 0 \\ 0.5 & 0 & 0.5 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0.6 & 0 & 0.4 \\ 0 & 0 & 0 & 0 & 0.3 & 0.7 \\ 0 & 0.2 & 0.3 & 0.5 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 \end{bmatrix} P= 0.90.500000.10000.2000.5000.30000.600.500000.300000.40.701
适当总结一下: 学习或者了解马尔可夫过程有什么用呢? 答案:可以得知从某个状态 i i i 到某个状态 j j j 转移的概率。放在游戏场景里,通过马尔可夫过程,可以了解到从某个游戏画面到另外一个游戏画面有多大的概率,比如有多大的概率出现出现了许多宝箱、有多大概率出现了许多武器等等。
3.马尔可夫奖励过程(MRP)
学习完马尔可夫过程,再看一下他的进化版:马尔可夫奖励过程。
通俗理解:马尔可夫奖励过程 = 马尔可夫过程 + 奖励。
-
马尔可夫过程 是二元组 < S , P > <\mathcal{S,P}> <S,P> ; S \mathcal{S} S 是有限状态的集合, P \mathcal{P} P 是状态转移矩阵。
-
马尔可夫奖励过程 是四元组 < S , P , r , γ > <\mathcal{S,P,r,\gamma}> <S,P,r,γ> ; S \mathcal{S} S 是有限状态的集合, P \mathcal{P} P 是状态转移矩阵, r r r 是奖励函数, γ \gamma γ 是奖励的折扣因子。
3.1.回报
定义: 在一个马尔可夫奖励过程中,从第 S t S_t St 时刻状态开始,直到终止状态时,所有奖励的衰减之和称为回报 G t G_t Gt(Return),公式如下:
G t = R t + γ R t + 1 + γ 2 R t + 2 + ⋯ = ∑ k = 0 ∞ γ k R t + k G_{t}=R_{t}+\gamma R_{t+1}+\gamma^{2} R_{t+2}+\cdots=\sum_{k=0}^{\infty} \gamma^{k} R_{t+k} Gt=Rt+γRt+1+γ2Rt+2+⋯=k=0∑∞γkRt+k
下图是在马尔可夫过程的基础上改编的马尔可夫奖励过程。
采样第1次: 假设采样了一条序列: S 1 ⟶ S 2 ⟶ S 3 ⟶ S 6 S_1 \longrightarrow S_2 \longrightarrow S_3 \longrightarrow S_6 S1⟶S2⟶S3⟶S6,计算 γ \gamma γ 为0.5时,状态 s 1 s_1 s1 的回报 G 1 G_1 G1 为(指:从状态 s 1 s_1 s1 开始到终止状态的累计奖励)。
根据任意状态
s
t
s_t
st 的回报
G
t
G_t
Gt :
G
t
=
R
t
+
γ
R
t
+
1
+
γ
2
R
t
+
2
+
⋯
=
∑
k
=
0
∞
γ
k
R
t
+
k
{\color{blue} G_{t}=R_{t}+\gamma R_{t+1}+\gamma^{2} R_{t+2}+\cdots=\sum_{k=0}^{\infty} \gamma^{k} R_{t+k} }
Gt=Rt+γRt+1+γ2Rt+2+⋯=k=0∑∞γkRt+k
求得状态
s
1
s_1
s1 的回报
G
1
G_1
G1 :
G
t
=
r
1
+
γ
r
2
+
γ
2
r
3
+
γ
3
r
6
=
(
−
1
)
+
0.5
×
(
−
2
)
+
0.
5
2
×
(
−
2
)
+
0.
5
3
×
0
=
(
−
1
)
+
(
−
1
)
+
(
−
0.5
)
+
(
0
)
=
−
2.5
\begin{aligned} G_{t} &= r_1 + \gamma r_2 + \gamma^{2} r_3 + \gamma^{3} r_6 \\ &= (-1) + 0.5 \times (-2) + 0.5^2 \times (-2) + 0.5^3 \times 0 \\ &= (-1) + (-1) + (-0.5) + (0) \\ &= -2.5 \end{aligned}
Gt=r1+γr2+γ2r3+γ3r6=(−1)+0.5×(−2)+0.52×(−2)+0.53×0=(−1)+(−1)+(−0.5)+(0)=−2.5
采样第2次: 假设又采样了一条序列: S 1 ⟶ S 2 ⟶ S 3 ⟶ S 4 ⟶ S 6 S_1 \longrightarrow S_2 \longrightarrow S_3 \longrightarrow S_4 \longrightarrow S_6 S1⟶S2⟶S3⟶S4⟶S6,计算 γ \gamma γ 为0.5时,状态 s 1 s_1 s1 的回报 G 1 G_1 G1 为(指:从状态 s 1 s_1 s1 开始到终止状态的累计奖励)。
此时状态
s
1
s_1
s1 的回报
G
1
G_1
G1 :
G
t
=
r
1
+
γ
r
2
+
γ
2
r
3
+
γ
3
r
4
+
γ
4
r
6
=
(
−
1
)
+
[
0.5
×
(
−
2
)
]
+
[
0.
5
2
×
(
−
2
)
]
+
[
0.
5
3
×
10
]
+
[
0.
5
4
×
0
]
=
(
−
1
)
+
(
−
1
)
+
(
−
0.5
)
+
(
1.25
)
+
(
0
)
=
−
1.25
\begin{aligned} G_{t} &= r_1 + \gamma r_2 + \gamma^{2} r_3 + \gamma^{3} r_4 + \gamma^{4} r_6 \\ &= (-1) + [0.5 \times (-2)] + [0.5^2 \times (-2)] + [0.5^3 \times 10] + [0.5^4 \times 0] \\ &= (-1) + (-1) + (-0.5) + (1.25) + (0) \\ &= -1.25 \end{aligned}
Gt=r1+γr2+γ2r3+γ3r4+γ4r6=(−1)+[0.5×(−2)]+[0.52×(−2)]+[0.53×10]+[0.54×0]=(−1)+(−1)+(−0.5)+(1.25)+(0)=−1.25
总结: 采样多次发现,对于同一个状态 s 1 s_1 s1,采样了多条序列最终得到的回报是不同的。那我们能不能计算一下,当到达状态 s 1 s_1 s1 时,我们最终能取得多大的回报呢?
打个比方说,我们在玩某个闯关游戏(可以随时结束,无限重复玩的那种),需要达到一定的分数才能晋级下一关。如果我们可以得知到当游戏状态到达 s 1 s_1 s1 时一直到游戏结束,最终能够得到多少回报,那就可以确定要不要玩下去了。如果到了状态 s 1 s_1 s1 发现即使后面玩的再好总的回报也不够过关条件,那就可以结束游戏重新开始了。
那么问题来了,能不能计算,怎么计算呢?我们要引入下一个概念:价值函数。
3.2.价值函数与贝尔曼方程
在马尔可夫奖励过程中,一个状态的期望回报(即从这个状态出发的未来累积奖励的期望)被称为这个状态的价值(value)。所有状态的价值就组成了价值函数(value function),价值函数的输入为某个状态,输出为这个状态的价值。我们将价值函数写成:
V
(
s
)
=
E
[
G
t
∣
S
t
=
s
]
{\color{blue}V(s) = \mathbb{E}[G_t | S_t = s]}
V(s)=E[Gt∣St=s]
由于不同版本的教材、视频对后续一些公式的写法不同,为了方便理解,我特列了一个表格方便查看:
时刻 | 状态 | 价值函数 |
---|---|---|
t t t | s s s 或 S t S_t St | V ( s ) V(s) V(s) 或 V ( S t ) V(S_{t}) V(St) |
t + 1 t+1 t+1(指 t t t 的下一时刻) | s ′ s' s′ 或 S t + 1 S_{t+1} St+1 | V ( s ′ ) V(s') V(s′) 或 V ( S t + 1 ) V(S_{t+1}) V(St+1) |
将价值函数
V
(
s
)
V(s)
V(s) 展开得到:
V
(
s
)
=
E
[
G
t
]
=
E
[
R
t
+
γ
R
t
+
1
+
γ
2
R
t
+
2
+
…
]
=
E
[
R
t
+
γ
(
R
t
+
1
+
γ
2
R
t
+
2
+
…
)
]
=
E
[
R
t
+
γ
⋅
G
t
+
1
]
=
E
[
R
t
+
γ
⋅
V
(
s
′
)
]
\begin{aligned} V(s) &= \mathbb{E} [G_t] \\ &=\mathbb{E} [R_t + \gamma R_{t+1}+\gamma^{2} R_{t+2} +…] \\ &=\mathbb{E} [R_t + \gamma( R_{t+1}+\gamma^{2} R_{t+2} +… )] \\ &=\mathbb{E} [R_t + \gamma \cdot G_{t+1}] \\ &=\mathbb{E} [R_t + \gamma \cdot V(s') ] \end{aligned}
V(s)=E[Gt]=E[Rt+γRt+1+γ2Rt+2+…]=E[Rt+γ(Rt+1+γ2Rt+2+…)]=E[Rt+γ⋅Gt+1]=E[Rt+γ⋅V(s′)]
这样就得到了当前时刻 t t t 对应状态 s s s 的价值函数 V ( s ) V(s) V(s) 与下一时刻 t + 1 t+1 t+1 对应的状态 s ′ s' s′ 的价值函数 V ( s ′ ) V(s') V(s′) 之间的关系了。
但注意有一个问题,当前时刻
t
t
t 对应状态
s
s
s 的奖励
R
t
R_t
Rt 是个即时奖励,所以可以写成
r
s
r_s
rs (期望值用大写表示,实际得到的值用小写表示);
V
(
s
′
)
V(s')
V(s′) 是下一个状态的价值函数,因此可以根据展开式从期望
E
\mathbb{E}
E 中脱离出来。公式经过整理得到:
V
(
s
)
=
r
(
s
)
+
γ
⋅
∑
s
′
∈
S
p
(
s
′
∣
s
)
V
(
s
′
)
{ V(s) = r(s) + \gamma \cdot \sum_{s' \in S}^{} p(s'|s) V(s') }
V(s)=r(s)+γ⋅s′∈S∑p(s′∣s)V(s′)
注意,上面的公式非常有名,它就是传说的中的:贝尔曼方程(Bellman equation)。
由于贝尔曼方程对每一个状态都成立,假设马尔可夫奖励过程有
n
n
n 个状态,即:
S
=
{
s
1
,
s
2
,
s
3
,
…
…
,
s
n
}
S = \{s_1, s_2, s_3, ……, s_n\}
S={s1,s2,s3,……,sn},以状态
s
1
s_1
s1 的价值函数
V
(
s
1
)
V(s_1)
V(s1) 为例,展开贝尔曼方程可以得到:
V
(
s
1
)
=
r
(
s
1
)
+
γ
⋅
[
p
(
s
1
∣
s
1
)
⋅
V
(
s
1
)
+
p
(
s
2
∣
s
1
)
⋅
V
(
s
2
)
+
…
p
(
s
n
∣
s
1
)
⋅
V
(
s
n
)
]
V
(
s
2
)
=
r
(
s
2
)
+
γ
⋅
[
p
(
s
1
∣
s
2
)
⋅
V
(
s
1
)
+
p
(
s
2
∣
s
2
)
⋅
V
(
s
2
)
+
…
p
(
s
n
∣
s
2
)
⋅
V
(
s
n
)
]
V
(
s
3
)
=
r
(
s
3
)
+
γ
⋅
[
p
(
s
1
∣
s
3
)
⋅
V
(
s
1
)
+
p
(
s
2
∣
s
3
)
⋅
V
(
s
2
)
+
…
p
(
s
n
∣
s
2
)
⋅
V
(
s
n
)
]
…
…
V
(
s
n
)
=
r
(
s
n
)
+
γ
⋅
[
p
(
s
1
∣
s
n
)
⋅
V
(
s
1
)
+
p
(
s
2
∣
s
n
)
⋅
V
(
s
2
)
+
…
p
(
s
n
∣
s
2
)
⋅
V
(
s
n
)
]
V(s_1) = r(s_1) + \gamma \cdot [p(s_1|s_1) \cdot V(s_1) + p(s_2|s_1) \cdot V(s_2) + … p(s_n|s_1) \cdot V(s_n)] \\ V(s_2) = r(s_2) + \gamma \cdot [p(s_1|s_2) \cdot V(s_1) + p(s_2|s_2) \cdot V(s_2) + … p(s_n|s_2) \cdot V(s_n)] \\ V(s_3) = r(s_3) + \gamma \cdot [p(s_1|s_3) \cdot V(s_1) + p(s_2|s_3) \cdot V(s_2) + … p(s_n|s_2) \cdot V(s_n)] \\ …… \\ V(s_n) = r(s_n) + \gamma \cdot [p(s_1|s_n) \cdot V(s_1) + p(s_2|s_n) \cdot V(s_2) + … p(s_n|s_2) \cdot V(s_n)]
V(s1)=r(s1)+γ⋅[p(s1∣s1)⋅V(s1)+p(s2∣s1)⋅V(s2)+…p(sn∣s1)⋅V(sn)]V(s2)=r(s2)+γ⋅[p(s1∣s2)⋅V(s1)+p(s2∣s2)⋅V(s2)+…p(sn∣s2)⋅V(sn)]V(s3)=r(s3)+γ⋅[p(s1∣s3)⋅V(s1)+p(s2∣s3)⋅V(s2)+…p(sn∣s2)⋅V(sn)]……V(sn)=r(sn)+γ⋅[p(s1∣sn)⋅V(s1)+p(s2∣sn)⋅V(s2)+…p(sn∣s2)⋅V(sn)]
我们将所有状态的价值表示成一个列向量
V
=
[
V
(
s
1
)
,
V
(
s
2
)
,
…
,
V
(
s
n
)
]
T
\mathcal{V}= [V(s_1), V(s_2), …, V(s_n)]^T
V=[V(s1),V(s2),…,V(sn)]T 表示,同时将奖励函数也写成列向量的形式
R
=
[
r
(
s
1
)
,
r
(
s
2
)
,
…
,
r
(
s
n
)
]
T
\mathcal{R}= [r(s_1), r(s_2), …, r(s_n)]^T
R=[r(s1),r(s2),…,r(sn)]T,那么我们可以把贝尔曼方程写成矩阵形式:
[
V
(
s
1
)
V
(
s
2
)
…
V
(
s
n
)
]
=
[
r
(
s
1
)
r
(
s
2
)
…
r
(
s
n
)
]
+
γ
[
P
(
s
1
∣
s
1
)
p
(
s
2
∣
s
1
)
…
P
(
s
n
∣
s
1
)
P
(
s
1
∣
s
2
)
P
(
s
2
∣
s
2
)
…
P
(
s
n
∣
s
2
)
…
P
(
s
1
∣
s
n
)
P
(
s
2
∣
s
n
)
…
P
(
s
n
∣
s
n
)
]
[
V
(
s
1
)
V
(
s
2
)
…
V
(
s
n
)
]
\left[\begin{array}{c} V\left(s_{1}\right) \\ V\left(s_{2}\right) \\ \ldots \\ V\left(s_{n}\right) \end{array}\right]=\left[\begin{array}{c} r\left(s_{1}\right) \\ r\left(s_{2}\right) \\ \ldots \\ r\left(s_{n}\right) \end{array}\right]+\gamma\left[\begin{array}{cccc} P\left(s_{1} \mid s_{1}\right) & p\left(s_{2} \mid s_{1}\right) & \ldots & P\left(s_{n} \mid s_{1}\right) \\ P\left(s_{1} \mid s_{2}\right) & P\left(s_{2} \mid s_{2}\right) & \ldots & P\left(s_{n} \mid s_{2}\right) \\ \ldots & & & \\ P\left(s_{1} \mid s_{n}\right) & P\left(s_{2} \mid s_{n}\right) & \ldots & P\left(s_{n} \mid s_{n}\right) \end{array}\right]\left[\begin{array}{c} V\left(s_{1}\right) \\ V\left(s_{2}\right) \\ \ldots \\ V\left(s_{n}\right) \end{array}\right]
V(s1)V(s2)…V(sn)
=
r(s1)r(s2)…r(sn)
+γ
P(s1∣s1)P(s1∣s2)…P(s1∣sn)p(s2∣s1)P(s2∣s2)P(s2∣sn)………P(sn∣s1)P(sn∣s2)P(sn∣sn)
V(s1)V(s2)…V(sn)
我们可以直接根据矩阵运算求解,得到以下解析解:
V
=
R
+
γ
P
V
(
I
−
γ
P
)
V
=
R
V
=
(
I
−
γ
P
)
−
1
R
\begin{aligned} \mathcal{V} &= \mathcal{R} + \gamma \mathcal{PV} \\ (\mathcal{I}-\gamma \mathcal{P})\mathcal{V} &= \mathcal{R} \\ \mathcal{V} &= (\mathcal{I}-\gamma \mathcal{P})^{-1} \mathcal{R} \end{aligned}
V(I−γP)VV=R+γPV=R=(I−γP)−1R
【知识补充】以上解析解的计算复杂度是 O ( n 3 ) O(n^3) O(n3),其中 n n n 是状态个数,因此这种方法只适用很小的马尔可夫奖励过程。求解较大规模的马尔可夫奖励过程中的价值函数时,可以使用:
- 动态规划(Dynamic Programming)方法;
- 蒙特卡洛(Monte-Carlo)方法;
- 时序差分(Temporal Difference)方法。
4.马尔可夫决策过程(MDP)
马尔可夫决策过程可以看做是:马尔可夫奖励过程 + (决策的)动作。
马尔可夫决策过程由五元组 < S , A , P , r , γ > <\mathcal{S, A, P, r, \gamma}> <S,A,P,r,γ> 构成,其中:
- S \mathcal{S} S 是有限状态的集合;
- A \mathcal{A} A 是动作的集合;
- P \mathcal{P} P 是状态转移矩阵;
- r \mathcal{r} r 是奖励函数;
- γ \gamma γ 是奖励的折扣因子。
马尔可夫过程、马尔可夫奖励过程、马尔可夫决策过程三者的比较:
马尔可夫家族 | 元组 | 增加元素 |
---|---|---|
马尔可夫过程 | 二元组 < S , P > <\mathcal{S, P}> <S,P> | —— |
马尔可夫奖励过程 | 四元组 < S , P , r , γ > <\mathcal{S, P, r, \gamma}> <S,P,r,γ> | 奖励 r \mathcal{r} r、折扣因子 γ \mathcal{\gamma} γ |
马尔可夫决策过程 | 五元组 < S , A , P , r , γ > <\mathcal{S, A, P, r, \gamma}> <S,A,P,r,γ> | 奖励 r \mathcal{r} r、折扣因子 γ \mathcal{\gamma} γ、动作 A \mathcal{A} A |
4.1.策略
策略(Policy): 通常用字母 π \pi π 表示,策略 π ( a ∣ s ) = P ( A t = t ∣ S t = s ) \pi(a|s) = P(A_t = t | S_t = s) π(a∣s)=P(At=t∣St=s) 是一个函数,用 π ( a ∣ s ) \pi(a|s) π(a∣s) 表示在状态 s s s 时采取动作的概率。
在马尔可夫奖励过程中,从状态 s s s 能不能跳转到状态 s ′ s' s′ 只跟状态转移概率有关系。但在马尔可夫决策过程中不同,在状态 s s s 时采用不同的策略,就会执行不同的动作,会跳转到不同的状态。因此,我们在计算回报、计算价值函数时,就要考虑“策略”这一个影响因素。
4.2.状态价值函数
在马尔可夫决策过程中,由于出现了策略
π
\pi
π, 原有的评估状态的价值函数要改名了,改成了状态价值函数(state-value function)。用
V
π
(
s
)
V^{\pi}(s)
Vπ(s) 表示在马尔可夫决策过程中,遵循策略
π
\pi
π ,从状态
s
s
s 出发到一直到最终状态(结束),最终能获得的期望回报,数学表达式为:
V
π
(
s
)
=
E
π
[
G
t
∣
S
t
=
s
]
{\color{blue} V^{\pi}(s) = \mathbb{E_{\pi}} [ G_t | S_t = s ] }
Vπ(s)=Eπ[Gt∣St=s]
【理解】由于策略可能是确定性的,但也有可能是非确定性的(随机策略),因此状态在 V ( s ) V(s) V(s) 的基础上又增加了参数 π \pi π 变成了 V π ( s ) V^{\pi}(s) Vπ(s),名字也从价值函数变成了状态价值函数。说到底,就是评估当前状态 s s s 好坏的一个价值函数罢了,实质上没有发生变化。
4.3.动作价值函数
在马尔可夫决策过程中,由于同一状态下会采取不同的动作,因此需要额外定义一个价值函数,叫做动作价值函数(action-value function),旨在评估动作的好坏。我们用
Q
π
(
s
,
a
)
Q^\pi(s, a)
Qπ(s,a) 表示在马尔可夫决策过程中,遵循策略
π
\pi
π,从状态
s
s
s 出发执行动作
a
a
a 一直到最终状态(结束),最终能获得的期望回报,数学表达式为:
Q
π
(
s
,
a
)
=
E
π
[
G
t
∣
S
t
=
s
,
A
t
=
a
]
{\color{blue} Q^\pi(s, a) = \mathbb{E}_\pi [G_t | S_t = s, A_t = a]}
Qπ(s,a)=Eπ[Gt∣St=s,At=a]
4.4.状态价值函数和动作价值函数的关系
状态价值函数和动作价值函数之间的关系: 在使用策略 π \pi π 中,状态 s s s 的价值等于在该状态下基于策略采取所有动作的概率与相应的价值相乘再求和的结果:
状态价值函数 V π ( s ) V^\pi(s) Vπ(s) 【公式非常重要】:
V π ( s ) = E π [ G t ∣ S t = s ] = ∑ a ∈ A π ( a ∣ s ) ⋅ Q π ( s , a ) {\color{Blue} \begin{aligned} V^{\pi}(s) &= \mathbb{E_{\pi}} [ G_t | S_t = s ] \\ &= \sum_{a\in{A}}^{} \pi(a|s) \cdot Q^\pi(s, a) \end{aligned}} Vπ(s)=Eπ[Gt∣St=s]=a∈A∑π(a∣s)⋅Qπ(s,a)
动作价值函数 Q π ( s , a ) Q^\pi(s,a) Qπ(s,a) 【公式非常重要】:
Q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] = r ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) ⋅ V π ( s ′ ) {\color{Blue} \begin{aligned} Q^{\pi}(s,a) &=\mathbb{E}_\pi [G_t | S_t = s, A_t = a] \\ &= r(s,a) + \gamma \sum_{s'\in{S}}^{} p(s'|s,a) \cdot V^{\pi}(s') \end{aligned}} Qπ(s,a)=Eπ[Gt∣St=s,At=a]=r(s,a)+γs′∈S∑p(s′∣s,a)⋅Vπ(s′)
4.5.贝尔曼期望方程
在马尔可夫决策过程当中,贝尔曼方程又分为贝尔曼期望方程和贝尔曼最佳方程。
4.5.1.状态价值函数的贝尔曼期望方程
将 Q π ( s , a ) {\color{Red}Q^{\pi}(s,a)} Qπ(s,a) 的公式带入到状态价值函数公式 V π ( s ) = ∑ a ∈ A π ( a ∣ s ) ⋅ Q π ( s , a ) V^\pi(s)= \sum_{a\in{A}}^{} \pi(a|s) \cdot Q^\pi(s, a) Vπ(s)=∑a∈Aπ(a∣s)⋅Qπ(s,a) 中,可以得到状态价值函数的贝尔曼期望方程。
状态价值函数的贝尔曼期望方程的数学公式:
V
π
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
⋅
Q
π
(
s
,
a
)
=
∑
a
∈
A
π
(
a
∣
s
)
⋅
[
r
(
s
,
a
)
+
γ
∑
s
′
∈
S
p
(
s
′
∣
s
,
a
)
⋅
V
π
(
s
′
)
]
\begin{aligned} V^{\pi}(s) &= \sum_{a\in{A}}^{} \pi(a|s) \cdot {\color{Red}Q^\pi(s, a)} \\ &= \sum_{a\in{A}}^{} \pi(a|s) \cdot \left [ {\color{Red} r(s,a) + \gamma \sum_{s'\in{S}}^{} p(s'|s,a) \cdot V^{\pi}(s')} \right ] \end{aligned}
Vπ(s)=a∈A∑π(a∣s)⋅Qπ(s,a)=a∈A∑π(a∣s)⋅[r(s,a)+γs′∈S∑p(s′∣s,a)⋅Vπ(s′)]
4.5.2.动作价值函数的贝尔曼期望方程
将状态价值函数 V π ( s ′ ) V^{\pi}(s') Vπ(s′) 的公式带入到动作价值函数公式 Q π ( s , a ) = r ( s , a ) + γ ∑ s ′ ∈ A p ( s ′ ∣ s , a ) ⋅ V π ( s ′ ) Q^{\pi}(s,a) = r(s,a) + \gamma \sum_{s'\in{A}}^{} p(s'|s,a) \cdot V^{\pi}(s') Qπ(s,a)=r(s,a)+γ∑s′∈Ap(s′∣s,a)⋅Vπ(s′) 中,可以得到动作价值函数的贝尔曼期望方程。
动作价值函数的贝尔曼期望方程的数学公式:
Q π ( s , a ) = r ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) ⋅ V π ( s ′ ) = r ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) ⋅ [ ∑ a ′ ∈ A π ( a ′ ∣ s ′ ) ⋅ Q π ( s ′ , a ′ ) ] \begin{aligned} Q^{\pi}(s,a) &= r(s,a) + \gamma \sum_{s'\in{S}}^{} p(s'|s,a) \cdot {\color{Blue}V^{\pi}(s')} \\ &= r(s,a) + \gamma \sum_{s'\in{S}}^{} p(s'|s,a) \cdot \left [ {\color{Blue} \sum_{a'\in{A}}^{} \pi(a'|s') \cdot Q^\pi(s', a')} \right ]\end {aligned} Qπ(s,a)=r(s,a)+γs′∈S∑p(s′∣s,a)⋅Vπ(s′)=r(s,a)+γs′∈S∑p(s′∣s,a)⋅[a′∈A∑π(a′∣s′)⋅Qπ(s′,a′)]
5.参考文献
-
[1] SUTTON R S, BARTO A G. Reinforcement learning: an introduction [M]. Cambridge:MIT press, 2018.
-
[2] OTTERLO M V, WIERING M. Reinforcement learning and markov decision processes [M]. Berlin, Heidelberg: Springer, 2012: 3-42.
-
《动手学强化学习》
-
《王浩森讲强化学习》