[Reinforcement Learning] 马尔可夫决策过程

在介绍马尔可夫决策过程之前,我们先介绍下情节性任务和连续性任务以及马尔可夫性。

情节性任务 vs. 连续任务

  • 情节性任务(Episodic Tasks),所有的任务可以被可以分解成一系列情节,可以看作为有限步骤的任务。
  • 连续任务(Continuing Tasks),所有的任务不能分解,可以看作为无限步骤任务。

马尔可夫性

引用维基百科对马尔可夫性的定义:

马尔可夫性:当一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态。

用数学形式表示如下:

A state St is Markov if and only if

P[St+1|St]=P[St+1|S1,...,St]

马尔可夫过程

马尔可夫过程即为具有马尔可夫性的过程,即过程的条件概率仅仅与系统的当前状态相关,而与它的过去历史或未来状态都是独立、不相关的。

马尔可夫奖赏过程

马尔可夫奖赏过程(Markov Reward Process,MRP)是带有奖赏值的马尔可夫过程,其可以用一个四元组表示 <S,P,R,γ>

  • S 为有限的状态集合;
  • P 为状态转移矩阵,Pss=P[St+1=s|St=s]
  • R 是奖赏函数;
  • γ 为折扣因子(discount factor),其中 γ[0,1]

奖赏函数

t 时刻的奖赏值 Gt

Gt=Rt+1+γRt+2+...=k=0γkRt+k+1

Why Discount

关于Return的计算为什么需要 γ 折扣系数。David Silver 给出了下面几条的解释:

  • 数学表达的方便
  • 避免陷入无限循环
  • 远期利益具有一定的不确定性
  • 在金融学上,立即的回报相对于延迟的回报能够获得更多的利益
  • 符合人类更看重眼前利益的特点

价值函数

状态 s 的长期价值函数表示为:

v(s)=E[Gt|St=s]

Bellman Equation for MRPs

(1)v(s)=E[Gt|St=s](2)=E[Rt+1+γRt+2+...|St=s](3)=E[Rt+1+γ(Rt+2+γRt+3...)|St=s](4)=E[Rt+1+γGt+1|St=s](5)=E[Rt+1+γv(st+1)|St=s]

下图为MRP的 backup tree 示意图:

![](https://img2018.cnblogs.com/blog/764050/201810/764050-20181027180312667-361096825.png)

注:backup tree 中的白色圆圈代表状态,黑色圆点对应动作。

根据上图可以进一步得到:

v(s)=Rs+γsSPssv(s)

马尔可夫决策过程

马尔可夫决策过程(Markov Decision Process,MDP)是带有决策的MRP,其可以由一个五元组构成 <S,A,P,R,γ>

  • S 为有限的状态集合;
  • A 为有限的动作集合;
  • P 为状态转移矩阵,Pssa=P[St+1=s|St=s,At=a]
  • R 是奖赏函数;
  • γ 为折扣因子(discount factor),其中 γ[0,1]

我们讨论的MDP一般指有限(离散)马尔可夫决策过程。

策略

策略(Policy)是给定状态下的动作概率分布,即:

π(a|s)=P[At=a|St=a]

状态价值函数 & 最优状态价值函数

给定策略 π 下状态 s 的状态价值函数(State-Value Function)vπ(s)

vπ(s)=Eπ[Gt|St=s]

状态 s 的最优状态价值函数(The Optimal State-Value Function)v(s)

v(s)=maxπvπ(s)

动作价值函数 & 最优动作价值函数

给定策略 π,状态 s,采取动作 a 的动作价值函数(Action-Value Function)qπ(s,a)

qπ(s,a)=Eπ[Gt|St=s,At=a]

状态 s 下采取动作 a 的最优动作价值函数(The Optimal Action-Value Function)q(s,a)

q(s,a)=maxπqπ(s,a)

最优策略

如果策略 π 优于策略 π

ππ if vπ(s)vπ(s),s

最优策略 v 满足:

  • vπ,π
  • vπ(s)=v(s)
  • qπ(s,a)=q(s,a)

如何找到最优策略?

可以通过最大化 q(s,a) 来找到最优策略:

v(a|s)={1 if a=argmaxaAq(s,a)0 otherwise 

对于MDP而言总存在一个确定的最优策略,而且一旦我们获得了q(s,a),我们就能立即找到最优策略。

Bellman Expectation Equation for MDPs

我们先看下状态价值函数 vπ

状态 s 对应的 backup tree 如下图所示:

![](https://img2018.cnblogs.com/blog/764050/201810/764050-20181027180345098-1901972119.png)

根据上图可得:

vπ(s)=aAπ(a|s)qπ(s,a)(1)

再来看动作价值函数 qπ(s,a)

状态 s,动作 a 对应的 backup tree 如下图所示:

![](https://img2018.cnblogs.com/blog/764050/201810/764050-20181027180402049-1747500206.png)

因此可得:

qπ(s,a)=Rsa+γsSPssavπ(s)(2)

进一步细分 backup tree 再来看 vπqπ(s,a) 对应的表示形式。

细分状态 s 对应的 backup tree 如下图所示:

![](https://img2018.cnblogs.com/blog/764050/201810/764050-20181027180411412-1063042128.png)

将式子(2)代入式子(1)可以进一步得到 vπ(s) 的贝尔曼期望方程:

vπ(s)=aAπ(a|s)(Rsa+γsSPssavπ(s))(3)

细分状态 s,动作 a 对应的 backup tree 如下图所示:

![](https://img2018.cnblogs.com/blog/764050/201810/764050-20181027180421183-498067530.png)

将式子(1)代入式子(2)可以得到 qπ(s,a) 的贝尔曼期望方程:

qπ(s,a)=Rsa+γsSPssa(aAπ(a|s)qπ(s,a))(4)

Bellman Optimality Equation for MDPs

同样我们先看 v(s)

![](https://img2018.cnblogs.com/blog/764050/201810/764050-20181027180430574-1927151238.png)

对应可以写出公式:

v(s)=maxaq(s,a)(5)

再来看q(s,a)

![](https://img2018.cnblogs.com/blog/764050/201810/764050-20181027180436870-598952431.png)

对应公式为:

q(s,a)=Rsa+γsSPssav(s)(6)

同样的套路获取 v(s) 对应的 backup tree 以及贝尔曼最优方程:

![](https://img2018.cnblogs.com/blog/764050/201810/764050-20181027180450776-607271585.png)

贝尔曼最优方程:

v(s)=maxa(Rsa+γsSPssav(s))(7)

q(s,a) 对应的 backup tree 以及贝尔曼最优方程:

![](https://img2018.cnblogs.com/blog/764050/201810/764050-20181027180500521-1105213902.png)

对应的贝尔曼最优方程:

Rsa+γsSPssamaxaq(s,a)(8)

贝尔曼最优方程特点

  • 非线性(non-linear)
  • 通常情况下没有解析解(no closed form solution)

贝尔曼最优方程解法

  • Value Iteration
  • Policy Iteration
  • Sarsa
  • Q-Learning

MDPs的相关扩展问题

  • 无限MDPs/连续MDPs
  • 部分可观测的MDPs
  • Reward无折扣因子形式的MDPs/平均Reward形式的MDPs

Reference

[1] 维基百科-马尔可夫性
[2] Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto, 2018
[3] David Silver's Homepage

posted @   Poll的笔记  阅读(9638)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示