强化学习: 贝尔曼方程与马尔可夫决策过程

强化学习: 贝尔曼方程与马尔可夫决策过程强化学习 贝尔曼方程与马尔可夫决策过程一 简介贝尔曼方程和马尔可夫决策过程是强化学习非常重要的两个概念 大部分强化学习算法都是围绕这两个概念进行操作 尤其是贝尔曼方程 对以后理解蒙特卡洛搜索 时序差分算法以及深度强化学习算法都至关重要 这篇文章主要介绍贝尔曼方程 常用的资料 Reinforcemen AnIntroducti author RichardS SuttonandAnd BartoUCLCour https www dav

强化学习: 贝尔曼方程与马尔可夫决策过程

一、简介

贝尔曼方程和马尔可夫决策过程是强化学习非常重要的两个概念,大部分强化学习算法都是围绕这两个概念进行操作。尤其是贝尔曼方程,对以后理解蒙特卡洛搜索、时序差分算法以及深度强化学习算法都至关重要。这篇文章主要介绍贝尔曼方程。

常用的资料:

《Reinforcement Learning: An Introduction》 author: Richard S.Sutton and Andrew G.Barto

UCL Course: https://www.davidsilver.uk/teaching/

博客园:https://www.cnblogs.com/pinard/


二、马尔可夫决策过程

熟悉自然语言处理的同学一定对马尔可夫(Markov)并不陌生,隐马尔科夫模型,条件随机场中都有利用到马尔可夫性质。马尔可夫描述这样一个随机过程:如果一个系统有 N N N个状态 S 1 , S 2 , . . . , S N S_1,S_2,…,S_N S1,S2,...,SN,随着时间的推移,该系统从某一个状态转移到另一个状态。如果用 q t q_t qt表示系统在时间 t t t的状态变量,那么 t t t时刻的状态取值为 S j S_j Sj的概率取决于前 t − 1 t-1 t1个时刻,该概率为:
p ( q t = S j ∣ q t − 1 = S i , q t − 2 = s k , . . . ) (1) \tag{1} p(q_t=S_j|q_{t-1}=S_i,q_{t-2}=s_k,…) p(qt=Sjqt1=Si,qt2=sk,...)(1)
意思很好理解,就是某一时刻状态的取值,取决于前面所有时刻的状态,画图表示为:
在这里插入图片描述


在这里插入图片描述

这样一看,模型就简化很多了,虽然可能会带来模型上的误差,但相比较于难以计算的复杂度,这点误差还是可以接受的。2. 时间独立性假设。可以设想这么一个情况,如果时刻 j j j和时刻 j + 1 j+1 j+1的状态是 a a a b b b,在 i i i i + 1 i+1 i+1时刻的状态也分别是 a a a b b b,那么时间独立性可以表示为:
p 1 = p ( q j + 1 = b ∣ q j = a ) p 2 = p ( q i + 1 = b ∣ q i = a ) p 1 = p 2 (3) \begin{aligned} p_1&=p(q_{j+1}=b|q_j=a)\\ p_2&=p(q_{i+1}=b|q_i=a)\\\tag{3} p_1&=p_2 \end{aligned} p1p2p1=p(qj+1=bqj=a)=p(qi+1=bqi=a)=p2(3)
也就是只要前一个时刻的状态是 a a a,那么后一个时刻的状态是 b b b的概率是固定的,此概率和 a a a所在的时刻( i i i或者 j j j)无关。那么既然和时间是无关的,那么由状态 a a a转移到状态 b b b的概率就可以写作:
p ( b ∣ a ) (4) p(b|a)\tag{4} p(ba)(4)
从而,我们得到马尔可夫模型,一阶独立性假设和时间独立性假设。




三、强化学习中的马尔可夫决策过程

回想一下强化学习中的一个重要概念,概率转化模型,也就是 p s s , a p^a_{ss^,} pss,a,代表的是,在状态 s s s下,采取动作 a a a后,转移到状态 s , s^, s,的概率。此变量的定义其实已经暗含了马尔科夫假设:状态 s , s^, s,发生的概率仅仅和上一时刻的状态 s s s相关。当然,还和动作 a a a相关,但这个动作 a a a可以看作是环境的输入(想一想条件随机场)。因此,可以用数学表达为:
p s s , a = p ( s , ∣ s , a ) (5) p_{ss^,}^a=p(s^,|s,a)\tag{5} pss,a=p(s,s,a)(5)
这个假设极大的简化了强化学习的状态转移矩阵。此外,除了马尔可夫假设之外,还有一个比较重要的假设,就是对策略 π \pi π的假设,回想一下策略 π \pi π的定义,在状态 s s s下,agent采取动作 a a a的概率,表达为概率形式:
π ( a ∣ s ) = p ( a ∣ s ) \begin{aligned} \pi(a|s)=p(a|s) \end{aligned} π(as)=p(as)
其实也隐含了一个假设,那就是agent的动作 a a a只和状态 s s s有关。




四、贝尔曼方程

如果要说强化学习中最重要的一个公式,那么非贝尔曼方程莫属了,本文将以图表和公式的形式来解释贝尔曼方程,争取能以一种接近人的思维去解释贝尔曼方程。

首先引入一个变量,叫做动作价值函数, q π ( s , a ) q_{\pi}(s,a) qπ(s,a),它的含义是在状态 s s s下,采取动作 a a a后所期望获得的总回报。对比一下价值函数 v π ( s ) v_\pi (s) vπ(s)的定义,状态s下,期望获得的总回报,显然,二者的区别在于动作价值函数在状态 s s s下多了一个动作 a a a的限制。言语无法解释,直接上图:

在这里插入图片描述

假设agent初始状态为 A A A,在 t = 1 t=1 t=1时刻,采取了动作 a 11 a_{11} a11(其他可能的动作 a 12 , a 13 a_{12},a_{13} a12,a13),那么之后可能发生的状态都如红框中所示,而动作价值函数 q π ( s , a ) q_\pi(s,a) qπ(s,a)代表的就是红框中所能获得回报期望,也就是状态 A A A到达所有红框中叶子节点(终点)的回报期望值。从上节的定义中可知,价值函数 v π ( s ) v_\pi (s) vπ(s)代表从状态 s s s到达所有叶子节点的总回报的期望,因此可以看出来,动作价值函数只是价值函数的一部分。那么怎么由动作价值函数去获得价值函数呢?看下图:
在这里插入图片描述

如图所示,我们可以把整个状态树可以分成三个分支,分别代表执行 a 11 a_{11} a11产生的动作价值函数 q π ( A , a 11 ) q_\pi(A,a_{11}) qπ(A,a11),执行 a 12 a_{12} a12产生的动作价值函数 q π ( A , a 12 ) q_\pi(A,a_{12}) qπ(A,a12),和执行 a 13 a_{13} a13产生的动作价值函数 q π ( A , a 13 ) q_\pi(A,a_{13}) qπ(A,a13)。而价值函数 v π ( A ) v_\pi(A) vπ(A)由于代表的是 A A A到达所有叶子节点的回报的期望,因此,将这三个分支相加不就是总的价值函数了吗?由此可以得到下式
v π ( s ) = π ( a 11 ∣ A ) q π ( A , a 11 ) + π ( a 12 ∣ A ) q π ( A , a 12 ) + π ( a 13 ∣ A ) q π ( A , a 13 ) (6) v_\pi(s)=\pi(a_{11}|A) q_\pi(A,a_{11})+\pi(a_{12}|A)q_\pi(A,a_{12})+\pi(a_{13}|A)q_\pi(A,a_{13})\tag{6} vπ(s)=π(a11A)qπ(A,a11)+π(a12A)qπ(A,a12)+π(a13A)qπ(A,a13)(6)
注意由于是求期望,我们还要乘以各自分支发生的概率 π ( a ∣ s ) \pi(a|s) π(as)。从而,我们得到了第一个重要的公式,也就是关联动作价值函数和价值函数的等式
v π ( s ) = ∑ a π ( a ∣ s ) q π ( s , a ) (7) v_\pi(s)=\sum_{a}\pi(a|s)q_\pi(s,a)\tag{7} vπ(s)=aπ(as)qπ(s,a)(7)
它代表的是,一个状态的价值函数,由此状态可能发生的动作价值函数构成,也就是一棵树可以由若干个分支构成,每一个分支是由一个动作产生,这个动作的概率由 π \pi π决定,此分支的动作价值函数记为 q π ( s , a ) q_\pi(s,a) qπ(s,a)




  • 贝尔曼方程

在这里插入图片描述

如图所示,状态 s s s选择一个动作后,可能会转到某一个橘色状态,如果我们知道了橘色状态的价值(橘色节点代表的子树所有叶子节点奖励的总和的期望值),那么我们就不需要知道计算到叶子节点了,因为橘色的状态足以代表叶子节点。从而,贝尔曼方程实际上为我们提供了一个递归的方式求解问题:计算根节点的价值时,不需要遍历整棵树,而只需要利用根节点的子节点价值。这不是递归的典型特点吗?一个大的问题(求解整棵树的价值)可以由子问题去求解(子节点的价值)。同理,我们也可以得到动作价值函数的贝尔曼方程:
q π ( s , a ) = E π ( R t + 1 + γ Q ( S t + 1 , A t + 1 ) ∣ S t = s , A t = a ) (17) q_\pi(s,a)=E_\pi(R_{t+1}+\gamma Q(S_{t+1}, A_{t+1})|S_t=s, A_t=a)\tag{17} qπ(s,a)=Eπ(Rt+1+γQ(St+1,At+1)St=s,At=a)(17)
贝尔曼方程是我们后续动态规划、时序差分算法的基础,一定要理解其中的含义。


动作价值函数和价值函数的关系

在这里插入图片描述

这些公式,我们都可以找到他们的物理含义,都可以找到他们在状态树上的定义,我们一定要理解着去记忆,明白他们数学推导后的物理含义。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209690.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午8:38
下一篇 2026年3月19日 上午8:39


相关推荐

  • pycharm conda TensorFlow环境配置

    pycharm conda TensorFlow环境配置pycharm 配置 tensorflow 环境 pycharmfile gt setting gt pythoninterp gt add gt condaenviron gt existingenvi gt

    2026年3月27日
    5
  • ps后期调色教程,ps怎么后期调色步骤图「建议收藏」

    ps后期调色教程,ps怎么后期调色步骤图「建议收藏」欢迎来到易夏岚UI设计之Photoshop系列教学课程,今天我们来学习ps后期调色教程,ps怎么后期调色步骤图。在平时修图的过程中,我们常常会遇到修完图以后觉得色彩还是有些不搭配,使得整个图片看起来效果都不是特别好,那么如何使用ps来进行后期的调色呢?今天我们就一起来看一下吧!先附上原图和做完后期的成片,左为原图,右为调色后。这类小清新的照片的后期思路有一个大的方向,用术语来说就是往高调片走,通俗来说就是明度较高(较亮)的片子。在直方图上的一般表现是这样的:大量的照片信息集中在直方图的…

    2022年6月18日
    19
  • 用 nano-banana 制作毛绒符号教程

    用 nano-banana 制作毛绒符号教程

    2026年3月13日
    2
  • 男性英文名字汉语意思大全

    男性英文名字汉语意思大全AARON 希伯来 启发的意思 AARON 被描绘为不高但英俊的男人 诚实刻苦具有责任感 是个有效率个性沉静的领导者 ABEL 希伯来 呼吸 的意思 为 ABELARD 的简写 大部份的人认为 ABEL 是高大 强壮的运动员 能干 独立 又聪明 有些人则认为 ABEL 是瘦小 温顺的男孩 ABRAHAM 原为希伯来文 意为 民族之父 后来 它演变成 万物之父 的意思 大多数人将 A

    2026年3月17日
    2
  • MySQL—内连接和外连接区别

    MySQL—内连接和外连接区别区别内连接(innerjoin):取出两张表中匹配到的数据,匹配不到的不保留 外连接(outerjoin):取出连接表中匹配到的数据,匹配不到的也会保留,其值为NULL示例表users表mysql>select*fromusers;+—-+——-+|id|name|+—-+——-+|1|john||2…

    2022年8月30日
    9
  • 【SpringBoot】4、SpringBoot中整合Freemarker模板引擎

    【SpringBoot】4、SpringBoot中整合Freemarker模板引擎FreeMarker 是一款模板引擎 即一种基于模板和要改变的数据 并用来生成输出文本 HTML 网页 电子邮件 配置文件 源代码等 的通用工具 它不是面向最终用户的 而是一个 Java 类库 是一款程序员可以嵌入他们所开发产品的组件 FreeMarker 是一个很值得去学习的模版引擎 它是基于模板文件生成其他文本的通用工具 本文主要介绍在 SpringBoot 中如何整合 FreeM

    2026年3月20日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号