Processing math: 100%

欢迎访问我的个人博客: orzyt.cn

David Silver强化学习Lecture2:马尔可夫决策过程

posted @   orzyt  阅读(986)  评论(0编辑  收藏  举报
分类: 强化学习

马尔可夫过程

马尔可夫决策过程简介

马尔可夫决策过程(Markov Decision Processes, MDPs)形式上用来描述强化学习中的环境.

其中,环境是完全可观测的(fully observable),即当前状态可以完全表征过程.

几乎所有的强化学习问题都能用MDPs来描述:

  • 最优控制问题可以描述成连续MDPs;
  • 部分观测环境可以转化成MDPs;
  • 赌博机问题是只有一个状态的MDPs.

马尔可夫性质

马尔科夫性质

马尔科夫性质(Markov Property)表明: 未来只与现在有关,而与过去无关.


状态转移矩阵

对于一个马尔可夫状态S及其后继状态S,其状态转移概率由下式定义:

Pss=P[St+1=s|St=s]

状态转移矩阵(State Transition Matrix)P定义了从所有状态S转移到所有后继状态S的概率.

P=[P11P1nPn1Pnn]

其中,n为状态个数,且矩阵的每行和为1.


马尔可夫过程

马尔可夫过程(Markov Process)是一个无记忆的随机过程(memoryless random process).

即,随机状态S1,S2,序列具有马尔可夫性质.

马尔可夫过程(或马尔可夫链)是一个二元组<S,P>

  • S: (有限)状态集
  • P: 状态转移概率矩阵, Pss=P[St+1=s|St=s]
Example: Student Markov Chain

圆圈代表状态, 箭头代表状态之间的转移, 数值代表转移概率.

状态转移矩阵P如下:

P=[C1C2C3PassPubFBSleepC10.50.5C20.80.2C30.60.4Pass1.0Pub0.20.40.4FB0.10.9Sleep1.0]


马尔可夫奖励过程

马尔可夫奖励过程(Markov Reward Process, MRP)带有奖励的马尔可夫链.

马尔可夫奖励过程是一个四元组<S, P, R, γ>

  • S: (有限)状态集
  • P: 状态转移概率矩阵, Pss=P[St+1=s|St=s]
  • R: 奖励函数, Rs=E[Rt+1|St=s]
  • γ: 折扣因子, γ[0,1]
Example: Student MRP

回报

回报(Return) Gt 是从时间 t 开始的总折扣奖励.

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

  • 折扣因子 γ[0,1] 表示未来的奖励在当前的价值. 由于未来的奖励充满不确定性, 因此需要乘上折扣因子;
  • γ 接近 0 表明更注重当前的奖励(myopic);
  • γ 接近 1 表明更具有远见(far-sighted).

值函数

值函数(Value Function) v(s) 表示一个状态 s 的长期价值(long-term value).

一个马尔可夫奖励过程(MRP)的状态值函数 v(s)是从状态 s 开始的期望回报.

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


MRPs的贝尔曼方程

值函数可以被分解为两部分:

  • 立即奖励 Rt+1
  • 后继状态的折扣价值 γv(St+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|St=s]+E[γGt+1|St=s]=E[Rt+1|St=s]+γv(St+1)=E[Rt+1+γv(St+1)|St=s]

上式表明, t 时刻的状态 Stt+1 时刻的状态 St+1 的值函数之间满足递推关系.

该递推式也称为贝尔曼方程(Bellman Equation).

Bellman Equation for MRPs

如果已知概率转移矩阵 P, 则可将公式(1)变形为:

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

例子:

Example: Bellman Equation for Student MRP

贝尔曼方程的矩阵形式:

可将公式(2)改写为矩阵形式:

v=R+γPv

其中, v 为一个列向量, 向量的元素为每个状态的值函数.

[v(1)v(n)]=[R1Rn]+γ[P11P1nPn1Pnn][v(1)v(n)]

观测贝尔曼方程的矩阵形式, 可知其为线性方程, 可直接求解如下.

v=R+γPv(IγP)v=Rv=(IγP)1R

计算复杂度为: O(n3). 因此, 只适合直接求解小规模的MRP问题.

对于大规模的MRP问题, 通常采取以下的迭代方法:

  • 动态规划(Dynamic programming)
  • 蒙特卡洛评估(Monte-Carlo evaluation)
  • 时序差分学习(Temporal-Difference learning)

马尔可夫决策过程

马尔可夫决策过程(Markov Decision Process, MDP)带有决策的马尔可夫奖励过程.

马尔可夫决策过程是一个五元组<S, A, P, R, γ>

  • S: 有限的状态集
  • A: 有限的动作集
  • P: 状态转移概率矩阵, Pass=P[St+1=s|St=s,At=a]
  • R: 奖励函数, Ras=E[Rt+1|St=s,At=a]
  • γ: 折扣因子, γ[0,1]

例子:

Example: Student MDP

策略

策略(Policy) π 是给定状态的动作分布.

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

  • 策略完全决定智能体的行为;
  • MDP策略值依赖于当前状态(无关历史);
  • 策略是固定的(与时间无关). Atπ(|St),t>0

给定一个马尔可夫决策过程 M=<S,A,P,R,γ> 和 一个策略 π, 其可以转化为马尔可夫过程马尔可夫奖励过程.

  • 状态序列 S1,S2, 是马尔科夫决策过程 <S,Pπ>.

  • 状态和奖励序列 S1,R2,S2, 是马尔科夫奖励过程 <S,Pπ,Rπ,γ>.

其中,

Pπs,s=aAπ(a|s)Pass

Rπs=aAπ(a|s)Ras


值函数

值函数(Value Function)可分为状态值函数(state-value function)动作值函数(action-value function).

MDP的**状态值函数 vπ(s) **是从状态 s 开始, 然后按照策略 π 决策所获得的期望回报.

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

MDP的**动作值函数 qπ(s,a) **是从状态 s 开始, 采取动作 a, 然后按照策略 π 决策所获得的期望回报.

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


贝尔曼期望方程

状态值函数可以被分解为两部分, 立即奖励 + 后继状态的折扣价值.

vπ(s)=Eπ[Rt+1+γvπ(St+1)|St=s]

动作值函数也可以类似地分解.

qπ(s,a)=Eπ[Rt+1+γqπ(St+1,At+1)|St=s,At=a]


上图中, 空心圆圈代表状态, 实心圆圈代表动作.

在已知策略 π 的情况下, 状态值函数 vπ(s) 可以用动作值函数 qπ(s,a) 进行表示:

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


同理, 动作值函数 qπ(s,a) 也可以用状态值函数 vπ(s) 进行表示:

qπ(s,a)=Ras+γsSPassvπ(s)


状态值函数的贝尔曼期望方程:

将公式(4)代入公式(3)中, 可得状态值函数的贝尔曼期望方程:

vπ(s)=aAπ(a|s)(Ras+γsSPassvπ(s))


动作值函数的贝尔曼期望方程:

将公式(3)代入公式(4)中, 可得动作值函数的贝尔曼期望方程:

qπ(s,a)=Ras+γsSPassaAπ(a|s)qπ(s,a)


例子:

状态值函数的贝尔曼期望方程示例

贝尔曼期望方程的矩阵形式:

vπ=Rπ+γPπvπ

可直接求解:

vπ=(IγPπ)1Rπ


最优值函数

最优状态值函数(optimal state-value function) v(s) 是所有策略中最大的值函数.

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

最优动作值函数(optimal action-value function) q(s,a) 是所有策略中最大的动作值函数.

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

  • 最优值函数代表了MDP的最好性能.
  • 当得知最优值函数时, MDP可被认为"已解决".

例子:

Student MDP中的最优状态值函数

例子:

Student MDP中的最优动作值函数

注: 根据公式(3), Pub动作的最优值应为 q=+1+(0.2×6+0.4×8+0.4×10)=9.4.


最优策略

首先定义策略之间的偏序关系, 使得策略之间可以进行比较:

ππifvπ(s)vπ(s),s

对于任意的MDP来说:

  • 存在一个最优策略 π, 使得 ππ,π
  • 所有的最优策略都能取得最优值函数 vπ(s)=v(s)
  • 所有的最优策略都能取得最优动作值函数 qπ(s,a)=q(s,a)

寻找最优策略

一个最优策略可以通过最大化所有的 q(s,a) 得到:

π(a|s)={1 if a=argmaxaA q(s,a)0 otherwise

  • 对于任意的MDP, 总存在确定的最优策略
  • 如果我们知道 q(s,a), 则可以立即得到最优策略

例子:

Student MDP的最优策略

图中红色弧线表示每个状态的最优决策.


贝尔曼最优方程

v可以通过贝尔曼最优方程递归得到:

v(s)=maxaq(s,a)

与公式(3)的贝尔曼期望方程进行比较, 此时不再取均值, 而是取最大值.


q与公式(4)类似:

q(s,a)=Ras+γsSPassv(s)


状态值函数的贝尔曼最优方程

将公式(6)代入公式(5)可得 v 的贝尔曼最优方程:

v(s)=maxaRas+γsSPassv(s)


动作值函数的贝尔曼最优方程

将公式(5)代入公式(6)可得 q 的贝尔曼最优方程:

q(s,a)=Ras+γsSPassmaxaq(s,a)


例子:

Student MDP贝尔曼最优方程

贝尔曼最优方程的求解

贝尔曼最优方程不是线性的(因为有取max操作), 因此没有封闭解(Closed-form solution).

通常采用迭代求解方法:

  • 值迭代(Value Iteration)
  • 策略迭代(Policy Iteration)
  • Q-Learning
  • Sarsa

MDP的扩展

  • 无穷和连续的MDPs
  • 部分可观测的MDPs
  • 不折扣, 平均奖励MDPs
编辑推荐:
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法
点击右上角即可分享
微信分享提示