马尔科夫决策过程
本章在学习地图中的位置
马尔科夫决策过程是强化学习的数学基础,也是将强化学习从直观定义到数学定义的一个桥梁。
马尔科夫决策过程简介
马尔科夫决策过程(Markov Decision Process, MDPs)是对强化学习问题的数学描述。
注:虽然大部分RL问题都可以转化成MDPs,但是在我写的笔记中所描述的MDPs是在全观测的情况下。
符号约定
用花体字母表示集合或函数(注:这里没用花体表示是因为gitbook不支持渲染花体\cal{})
马尔科夫过程
马尔科夫性
只要知道现在,将来和过去是条件独立的。
定义:
如果在t时刻的状态St满足如下等式,那么这个状态被称为马尔科夫状态,或者说该状态满足马尔科夫性:
P[St+1∣St]=P[St+1∣S1,...,St] 状态St包含了所有历史相关信息(注:这里的相关指与问题相关,可能有一些问题无关的信息没有在St中)
或者说历史的所有状态的相关信息都在当前状态St上体现出来
一旦St知道了,那么S1,S2,...,St-1都可以被抛弃
因此,这里要求环境全观测(马尔科夫性与状态的定义息息相关,比如打砖块,就要求状态是当前画面帧和上一次的画面帧,不然得不到砖块下落速度)
状态转移矩阵
定义:
状态转移概率指从一个马尔科夫状态s跳转到后继状态(successor state)s‘的概率
Pss′=P[St+1=s′∣St=s] 所有的状态组成行,所有的后继状态组成列,我们得到状态转移矩阵
P=P11⋮Pn1...⋱...P1n⋮Pnn 状态转移函数
我们也可以将状态转移概率写成函数的形式
Pss′=P[St+1=s′∣St=s] 状态转移概率到下一各状态的和为1,即
s′∑P(s′∣s)=1 状态数量太多或者是无穷大(连续状态)时,更适合使用状态转移函数,此时
∫s′P(s′∣s)=1
马尔科夫过程
一个马尔科夫过程(Markov process, MP)是一个无记忆的随机过程,即一些马尔科夫状态的序列
定义:
马尔科夫过程可以由一个二元组来定义\
P代表了状态转移概率矩阵
Pss′=P[St+1=s′∣St=s]
注:虽然我们有时候并不知道P的具体值,但是通常我们假设P是存在且稳定的
注:当P不稳定时,是不稳定环境,需要在线学习,快速学习
马尔科夫过程的例子:
用椭圆表示普通状态,每一条线上的数字表示从一个状态跳转到另一个状态的概率
由于马尔科夫过程可以用图中的方块和线条组成,所以可以称马尔科夫过程为马尔科夫链(MDPs chain)
片段
定义:
强化学习中,从初始状态S1到终止状态的序列过程,被称为一个片段(episode)
S1,S2,...,ST 如果一个任务总以终止状态结束,那么这个任务被称为片段(episodic task)
如果一个任务会没有终止状态,会被无限执行下去,这被称为连续性任务(continuing task)
马尔科夫链的例子
片段:
假设初始状态是“科目一”,从这个马尔科夫链中,我们可能采样到如下的片段
“科目一”,“科目二”,“科目三”,“通过”,“睡觉”
“科目一”,“玩手机”,“玩手机”,... ,“玩手机”,“科目一”,“科目二”,“睡觉”
“科目一”,“科目二”,“科目三”,“挂科”,“科目二”,“科目三”,“挂科”,“科目一”,“科目二”,“科目三”,“挂科”,“科目三”,“通过”,“睡觉”
转移矩阵
分别用s1~s7代表“科目一”,“科目二”,“科目三”,“通过”,“挂科”,“玩手机”,“睡觉”
P=−−−−0.20.1−0.5−−−0.4−−−0.8−−0.4−−−−0.6−−−−−−0.4−−−−0.5−−−−0.9−−0.2−1.0−−1.0 马尔科夫奖励过程
接下来我们在马尔科夫过程中加一个强化学习中三大交互学习组成中最重要的一个:奖励,这也是强化学习和其他机器学习问题中比较大的一个区别。
马尔科夫过程主要描述的是状态之间的转移关系,在这个转移关系上赋予不同的奖励值即得到了马尔科夫奖励过程。
定义:
马尔科夫奖励过程(Markov Reward Process,MRP)过程由一个四元组组成\
P描述了状态转移矩阵
Pss′=P[St+1=s′∣St=s] R表示奖励函数,R(s)描述了在状态s的奖励,
R(s)=E[Rt+1∣St=s] γ表示衰减引子,
γ∈[0,1]
马尔科夫奖励过程例子
回报值
定义:
回报值(return Gt)是从时间t处开始的累计衰减奖励。
对于片段性任务:
Gt=Rt+1+γRt+2+...+γT−t−1RT=k=0∑T−t−1γkRt+k−1 对于连续性任务:
Gt=Rt+1+γRt+2+γ2Rt+3+...=k=0∑∞γkRt+k+1
再聊片段
因此我们能够将片段性任务和连续性任务统一表达:
Gt=k=0∑T−t−1γkRt+k+1 这里当T=∞时,表示连续性任务,否则即为片段性任务。
再聊衰减值
为什么我们要使用这样的衰减指数值?
数学便利
一个参数就描述了整个衰减过程,只需要调节这一个参数γ就可以来调节长时奖励和短时奖励的权衡(trade-off)
指数衰减是对回报值的有界保证,避免了循环MRP和连续性MRP情况下回报值变成无穷大
注:在一些特殊情况,也可以使用γ=1的回报值
值函数
为什么要值函数?
值函数定义:
一个马尔科夫奖励过程MRP的值函数定义如下:
v(s)=E[Gt∣St=s] 也是就是从这个状态出发的所有片段的回报值的按照概率加权的平均值(即期望值)。
这里的值函数针对的是状态s,所以称为状态值函数,又称V函数
例子:回报值和值函数
回报值
针对初始状态S1=“科目一”,且γ=0.5计算不同片段的回报值
"科目一",“科目二”,“睡觉”
g1=(−2)+0.5×(−2)+0.52×(0)=−3 "科目一",“科目二”,“科目三”,“通过”,“睡觉”
g1=(−2)+0.5×(−2)+0.52×(−2)+0.53×(10)+0.54×(0)=−2.25 "科目一",“玩手机”,“玩手机”,“玩手机”,"科目一",“科目二”,“睡觉”
g1==(−2)+0.5×(−1)+0.52×(−1)+0.53×(−1)+0.54×(−2)+0.55×(−2)+0.56×(0)−3.0625 "科目一",“科目二”,“科目三”,“挂科”,“科目二”,“科目三”,“挂科”,"科目一",“科目二”,“科目三”,“挂科”,“科目三”,“通过”,“睡觉”
g1=(−2)+0.5×(−2)+0.52×(−2)+...=−4.4214...
虽然都是从相同的初始状态开始,但是不同的片段有不同的回报值,而值函数是它们的期望值。
针对例子的V函数值
当γ=0时
当γ=1时
MRPs中的贝尔曼方程
值函数的表达式可以分解成两部分
后继状态$S_{t+1}$的值函数乘上一个衰减系数
v(s)=E[Gt∣St=s]=E[Rt+1+γRt+2+γ2Rt+3+...∣St=s]=E[Rt+1+γ(Rt+2+γRt+3+...)∣St=s]=E[Rt+1+γGt+1∣St=s]=E[Rt+1+γv(St+1)∣St=s] 体现了v(s)与v($S_{t+1}$)之间的迭代关系
如果我们已知转移矩阵P,那么
v(s)=E[Rt+1+γv(St+1)∣St=s]=E[Rt+1∣St=s]+γE[v(St+1)∣St=s]=R(s)+γs′∈S∑Pss′v(s′) ![value-ss'](pic/value-ss'.png)
图中我们可以用v(s1),v(s2),v(s3)去计算v(s0)。
针对例子的贝尔曼方程
当γ=1时,我们来看下一状态可能性最多的“科目三”状态:
0.6=(−2)+0.6×10+0.4×(−0.85) 贝尔曼方程的矩阵形式
使用矩阵-向量的形式表达贝尔曼方程,即
v=R+γPv 假设状态集合为
S=s1,s2,...,sn ,那么
v(s1)⋮v(sn)=R(s1)⋮R(sn)+γP11⋮Pn1...⋱...P1n⋮Pnnv(s1)⋮v(sn) 贝尔曼方程本质上是一个线性方程,可以直接解
v(1−γP)vv=R+γPv=R=(1−γP)−1R 马尔科夫决策过程
马尔科夫决策过程的定义
与马尔科夫过程MP和马尔科夫奖励过程MRP的区别:
MP和MRP中,我们都是作为观察者,去观察其中的状态转移现象,去计算回报值。
对于一个RL问题,我们更希望去改变状态转移的流程,去最大化回报值。
通过在MRP中引入决策,即得到了马尔科夫决策过程(Markov Decision Process,MDPs)
马尔科夫决策过程的定义
一个马尔科夫决策过程(MDPs)由一个五元组构成
<S,A,P,R,γ> P描述了状态转移矩阵
Pss′a=P[St+1=s′∣St=s,At=a] R表示奖励函数,R(s,a)描述了在状态s做动作a的奖励
R(s,a)=E[Rt+1∣St=s,At=a]
MDPs例子
能通过动作进行控制的状态转移由原来的状态转移概率特换成了动作
被动的状态转移关系被压缩成一个状态
“被动”指无论做任何动作,状态都会发生跳转。这样的状态不属于MDPs中考虑的状态
原图中,由于“通过”后一定会去“睡觉”,因此进行了压缩
注:图中除了在“科目三”的状态上执行“不复习”动作外,其他的所有状态跳转都是不确定性的,我们通过在不同的状态上执行不同的动作,即可实现不同的状态跳转。
策略
我们将之前的MRPs中的状态转移矩阵分成了两个部分
MDPs中的转移矩阵P(不受智能体控制,认为是环境的一部分)
策略的定义:
在MDPs中,一个策略(Policy)π是给定状态下的动作的概率分布
π(a∣s)=P[At=a∣St=s] 策略的特点
MDPs中的策略是基于马尔科夫状态的(而不是基于历史)
如果策略的概率分布输出都是独热的(one-hot)的,那么成为确定性策略,否则即为随机性策略
MDPs和MRPs之间的关系
对于一个MDP问题\,如果给定了策略π
MDP将会退化成MRP,
<S,Pπ,Rπ,γ> 此时
Pss′πRsπ=a∈A∑π(a∣s)Pss′a=a∈A∑π(a∣s)Rsa
注:注意由于策略π代表:1,一个动作;2,一个动作分布,所以有时候,π和a会存在一定的混淆。
MDPs中的值函数
在MDPs问题中,由于动作的引入,值函数分为了两种:
定义:
MDPs中的状态值函数是从状态s开始,使用策略π得到的期望回报值
vπ(s)=Eπ[Gt∣St=s] 定义:
MDPs中的状态动作值函数是从状态s开始,执行动作a,然后对接下来的状态使用策略π得到的期望回报值
qπ(s,a)=Eπ[Gt∣St=s,At=a] 这个怎么理解呢?
假设一条马尔可夫链为s1, a1, s2, a2, s3, a3 ......
q(s, a)表示初始状态和初始动作确定了s=s1, a=a1,之后的动作a2, a3,...都是来自策略π的:a2,a3,...服从π
也就是与下式是等价的:
给定当前状态s和当前动作a,在未来遵循策略π,那么系统将以概率p(s'|s,a)转向下个状态s',上式可以重写为:
Qπ(s,a)=s′∈S∑P(s′∣s,a)[R(s′∣s,a)+γVπ(s′)] 注:在MDPs中,任何不说明策略π的情况下,讨论值函数都是在耍流氓!
贝尔曼期望方程
和MRP相似,MDPs中的值函数也能分为瞬时奖励和后继状态的值函数两部分
vπ(s)qπ(s,a)=Eπ[Rt+1+γvπ(St+1)∣St=s]=Eπ[Rt+1+γqπ(St+1,At+1)∣St=s,At=a] 例子:
当对于所有的s和a,都有π(a|s)=0.5时,v_π(s)如上图
将图中的圆圈状态从上到下从左到右
分别记为s1,s2,s3,s4,将终止状态记
为s5,则对于所有的s和a,当π(a|s)=0.5时,状态转移矩阵为
P=0.50.5−−−0.5−−0.1−−0.5−0.2−−−0.50.2−−−0.50.51 V函数与Q函数之间的相互转化
vπ(s)=a∈A∑π(a∣s)qπ(s,a) 注:本质上是全概率公式
qπ(s,a)=R(s,a)+γs′∈S∑Pss′avπ(s′) 贝尔曼期望方程—V函数
vπ(s)=a∈A∑π(a∣s)qπ(s,a)=a∈A∑π(a∣s)(R(s,a)+γs′∈S∑Pss′avπ(s′)) 实际上等价于
vπ(s)=Eπ[Rt+1+γvπ(St+1)∣St=s] 为什么?
贝尔曼期望方程—Q函数
qπ(s,a)=R(s,a)+γss′∑aa′∈A∑π(a′∣s′)qπ(s′,a′) 实际上等价于
qπ(s,a)=E[Rt+1+γqπ(St+1,At+1)∣St=s,At=a] ,为什么?
贝尔曼期望方程例子
当γ=1,π(a|s)=0.5时
2.8=0.5×(10+0)+0.5×(−5+0.2×(−3.6)+0.4×0.4+0.4×2.8) 贝尔曼期望方程的矩阵形式
MDPs下的贝尔曼期望方程和MRP的形式相同。
vπ=RT+γPπvπ 同样地,可以直接求解
vπ=(I−γPπ)−1Rπ 求解的要求:
最优值函数
之前值函数,以及贝尔曼期望方程针对的都是给定策略π的情况,是一个评价的问题。
现在我们来考虑强化学习中的优化问题,即找出最好的策略。
定义:
最优值函数指的是在所有策略中的值函数最大值,其中包括最优V函数和最优Q函数
v∗(s)q∗(s,a)=maxπ vπ(s)=maxπ qπ(s,a) 如果我们找到最优值函数,即相当于这个MDP已经解决了
最优V函数
当γ=1时的最优V函数v*(s)
最优Q函数
当γ=1时的最优Q函数q*(s,a)
最优策略
为了比较不同策略的好坏,我们首先应该定义策略的比较关系
π≥π′ifvπ(s)≥vπ′(s), ∀s 最优策略定理
对于任何MDPs问题
总存在一个策略π,要好于或等于其他所有的策略,π\>π,∀π
所有的最优策略都能够实现最优的V函数
vπ∗(s)=v∗(s) 所有的最优策略都能够实现最优的Q函数
qπ∗(s,a)=q∗(s,a)
注:具体证明参考《Total Expected Discounted Reward MDPs: Existence of Optimal Policies 》
怎么得到最优策略
我们已知了最优Q函数之后,我们能够马上求出最优策略,只要根据q*(s,a)选择相应的动作即可。
π∗(a∣s)={10if a = arg maxa∈Aq∗(s,a)otherwise 可以看出对于任何MDPs问题,总存在一个确定性的最优策略
最优策略例子
当γ=1时的最优策略π*(a|s)
v*与q*的相互转化
之前我们已经讨论了vπ(s)和qπ(s,a)之前的关系——贝尔曼期望方程
同样地,v*(s)和q*(s,a)也存在着递归的关系——贝尔曼最优方程
v->q:
v∗(s)=maxa q∗(s,a) 和贝尔曼期望方程的关系:
v∗(s)=vπ∗(s)=a∈A∑π∗(a∣s)qπ(s,a)=maxa qπ∗(s,a) 上式很好理解,因为最优动作对应的概率为1嘛。
q->v:
q∗(s,a)=R(s,a)+γs′∈S∑Pss′av∗(s′) 贝尔曼最优方程
最优V函数
v∗(s)=maxa[R(s,a)+γs′∈S∑Pss′av∗(s′)] 最优Q函数
q∗(s,a)=R(s,a)+γs′∈S∑Pss′a maxa′ q∗(s′,a′) 和贝尔曼期望方程的关系
贝尔曼最优方程本质上就是利用了π*的特点,将求期望的算子转化成了max_a
在贝尔曼期望方程中,π是已知的。而贝尔曼最优方程中,π*是未知的。
解贝尔曼期望方程的过程即对应了评价,解贝尔曼最优方程的过程即对应了优化。
解贝尔曼最优方程
MDPs的扩展
部分可观测MDPs(Partially observable MDPs, POMDPs)
无穷或连续MDPs
部分可观测MDPs
POMDPs由七元组成
<S,A,O,P,R,Z,γ> 其中Z是观测函数
Zs′oa=P[Ot+1=o∣St+1=s′,At=a]
无衰减MDPs
求值函数时,需要减去该平均奖赏,否则有可能奖赏爆炸
参考文献
本章内容是该课程这节课的笔记。