在概率论和统计学中,马尔可夫决策过程提供了一个数学架构模型,用于面对部分随机、部分可由决策者控制的状态下,如何进行决策,以俄罗斯数学家安德雷·马尔可夫的名字命名。
0.引例
假设我们有一个机器人处于状态 s1s1, 它有多种动作选择可以到达终止状态 stst, 但是执行每个动作所带来的收益不一样。这时,我们需要做一个算法来帮助机器人选择动作序列,来保证到达终止状态 stst 时收益最高,这时就需要马尔可夫决策过程了。
⋆⋆ ⋆⋆ ⋆⋆ a3a3 表示执行该动作,有一定概率到达 s1s1, 也有一定概率到达 s2s2. 可参考机器人轨迹规划中的不确定性,即将推出。。。
1.马尔可夫性质
马尔可夫性质是概率论中的一个概念。当一个随机过程在给定现在状态以及过去所有状态的情况下,其未来状态的条件概率分布仅依赖于当前的状态;换句话说,在给定现在状态时,它与过去状态(即该过程的历史路径)是条件独立的,那么此随机过程即具有马尔可夫性质。具有马尔可夫性质的过程通常称之为马尔可夫过程。
数学上,如果 X(t),t>0X(t),t>0 为一个随机过程,则马尔可夫性质就是指
Pr[X(t+h)=y|X(S)=x(s),s≤t]=Pr[X(t+h)=y|X(t)=x(t)],∀h>0. (1)Pr[X(t+h)=y|X(S)=x(s),s≤t]=Pr[X(t+h)=y|X(t)=x(t)],∀h>0. (1)
其中,x(t)x(t)表示当前的状态值,x(s)x(s)表示历史状态值。
马尔可夫过程通常是(时间)齐次的,如果满足:
Pr[X(t+h)=y|X(t)=x(t)]=Pr[X(h)=y|X(0)=x(0)],∀t,h>0. (2)Pr[X(t+h)=y|X(t)=x(t)]=Pr[X(h)=y|X(0)=x(0)],∀t,h>0. (2)
除此之外则被称为是(时间)非齐次的。齐次马尔可夫过程通常比非齐次的简单,构成了最重要的一类马尔可夫过程。
某些情况下,明显的非马尔可夫过程也可以通过扩展“现在”和“未来”状态的概念来构造一个马尔可夫表示。设 XX 为一个非马尔可夫过程。定义一个新的过程 YY,使得每一个 YY 的状态表示 XX 的一个时间区间上的状态,用数学方法来表示,即,
Y(t)={X(s):s∈[a(t),b(t)]}. (3)Y(t)={X(s):s∈[a(t),b(t)]}. (3)
如果 YY 具有马尔可夫性质,则它就是 XX 的一个马尔可夫表示。 在这个情况下, XX 也可以被称为是二阶马尔可夫过程。更高阶马尔可夫过程也可类似地来定义。
2.马尔可夫过程的定义
马尔可夫过程可以用一个五元数(S,A,P(⋅,⋅),R(⋅,⋅),γ)(S,A,P(⋅,⋅),R(⋅,⋅),γ) 来描述,其中
∙∙ SS 是一组有限的状态集(a finite set of states);
∙∙ AA 是一组有限的动作集(a finite set of actions or AsAs is the finite set of actions available from state ss)
∙∙ Pa(s,s′)=Pr(st+1=s′|st=s,at=a)Pa(s,s′)=Pr(st+1=s′|st=s,at=a) 表示在时间 tt 状态 ss 采取动作 aa 可以在时间 t+1t+1 转换到状态 s′s′ 的概率
∙∙ Ra(s,s′)Ra(s,s′) 表示通过动作 aa 状态从 ss 转换到 s′s′ 所带来的及时收益(或者是预期及时收益)
∙∙ γ∈[0,1]γ∈[0,1] 是折扣因子(discount factor),表示未来收益和当前收益之前的差别,就是各个时间的收益所占的比重不同
⋆⋆ 马尔可夫决策过程并不要求 SS 或者 AA 是有限的,但基础的算法中假设它们由有限的
3.马尔科夫过程的描述
MDP的关键问题在于寻找一个策略:在状态 ss 选择动作 π(s)π(s), 组成一个动作函数 ππ. 我们的目的在于选择一个动作函数 ππ 可以最大化累积收益 R(T)R(T):
R(T)=∑t=1TγtRat(st,st+1) (4)R(T)=∑t=1TγtRat(st,st+1) (4)
s.t. at=π(st),0≤γ<1s.t. at=π(st),0≤γ<1
. 我们分三种情况来讨论:
∙ T=1,∙ T=1, greedy case.greedy case. 这时算法是退化的,拿我们的例子而言,机器人只会考虑下一步动作带来的影响,而不会考虑之后一系列动作带来的影响。但是这个算法却在实际应用中起着重要作用,是很多机器人问题的最优解。因为它计算起来非常简单。它的缺点也很明显,容易陷入局部最优。很明显,此时 γγ 的取值不影响结果,只要满足 γ>1γ>1 即可。
∙ 1<T<∞,∙ 1<T<∞, finite−horizon case.finite−horizon case. 此时,一般会取 γ=1γ=1. 意思是说每个状态转换的收益权重是一样的。有人会说这种 finite-horizon 的处理方式是最符合实际情况的。但事实上,这种 finite-horizon的情况处理起来比下边提到的infinite-horizon更加复杂。因为我们要求的动作序列是时间的函数。也就是说,即便是从相同的状态开始计算,由于时间参数 TT 不同,最后得到的最优动作序列会不同。课本里的原话是, Near the far end of the time horizon, for example, the optimal policy might differ substantially from the optimal choice earlier in time, even under otherwise identical conditions (e.g., same state, same belief). As a result, planning algorithms with finite horizon are forced to maintain different plans for different horizons, which can add undesired complexity.
∙ T=∞,∙ T=∞, infinite−horizon case.infinite−horizon case. 这种情况不会有上边所提到的计算复杂度增加的问题,因为 TT 是无穷大的。在这种情况下, γγ的取值很重要,因为它需要保证计算结果是收敛的。假设 RatRat 是有界的,|Rat|≤rmax.|Rat|≤rmax. 那么我们可以得到
R∞≤rmax+γrmax+γ2rmax+...=rmax1−γ (5)R∞≤rmax+γrmax+γ2rmax+...=rmax1−γ (5)
4.马尔可夫过程的算法求解
假设我们已知状态转移矩阵 PP 和收益函数RR, 我们需要最大化累积收益值。
我们需要存储两个变量(都是状态变量 ss 的函数),ππ 用来表示动作序列, VV 用来表示累计收益值。整个算法由两步组成:
π(s):=arg maxa{∑s′Pa(s,s′)(Ra(s,s′)+γV(s′)},π(s):=arg maxa{∑s′Pa(s,s′)(Ra(s,s′)+γV(s′)},
V(s):=∑s′Pπ(s)(s,s′)(Rπ(s)(s,s′)+γV(s′)). (6)V(s):=∑s′Pπ(s)(s,s′)(Rπ(s)(s,s′)+γV(s′)). (6)
算法的求解以递归的形式进行。当整个计算过程中把所有状态全包含时,则表示迭代完成。
5.变种算法–值迭代
在求解过程中,我们可以把 π(s)π(s) 的计算整合到 V(s)V(s) 的计算中,得到
Vi+1(s):=maxa{∑s′Pa(s,s′)(Ra(s,s′)+γVi(s′))} (7)Vi+1(s):=maxa{∑s′Pa(s,s′)(Ra(s,s′)+γVi(s′))} (7)
其中,ii 是迭代次数。迭代过程从 i=0i=0 开始, V0V0 为指定的初始值,重复计算 Vi+1Vi+1 一直到收敛为止。
6.reference
https://en.wikipedia.org/wiki/Markov_decision_process
https://en.wikipedia.org/wiki/Markov_property
Probabilistic Robotics.