强化学习笔记:策略、值函数及贝尔曼方程

article/2025/8/2 22:39:04

目录

1. 前言

2. 策略和值函数的定义

3. 值函数的估计

4. 状态值函数的贝尔曼方程


1. 前言

        本篇介绍策略、两种值函数(状态值函数和动作值函数),以及大名鼎鼎的贝尔曼方程。补充了一点关于贝尔曼方程的推导过程,希望能够帮助理解。

        本文中公式编号(,)中第2部分表示对应公式(如果在原书中有的话)在原书中的编号。

2. 策略和值函数的定义

        几乎所有的强化学习算法都涉及到值函数(作为状态的函数,或者“状态-动作对”的函数)的估计,用于衡量对应状态或者“状态-动作对”对于智能体的价值(how good it is),这个价值体现了智能体在该状态下,或者说“状态-动作对”的条件下所能期望的回报,而这个又依赖于在未来智能体将采取什么动作序列,也即依赖于智能体以什么样的方式选择动作,即(动作选择)策略(policies)。

        策略(policy)是指从状态到选择各种动作的概率的映射,通常用字符𝜋表示:

        \pi(a|s)=Pr(A_t=a|S_t=s),\;a\in\mathcal{A}(s),s\in\mathcal{S}

        与前文的p相同,𝜋本身也是一个普通的函数(与p同样,它表示是一种条件概率。不是圆周率!^-^)。

        强化学习的目标就是学习(更好的)策略,即(基于经验、值函数估计值等)学会如何(根据当前的状态)采取行动,以达成总体或长期回报的最大化。

Solution-3.11:

式(3.2)(sutton-book原书编号)如下所示:

        p(s', r|s, a) \doteq Pr(S_t=s',R_t=r | S_{t-1}=s,A_{t-1}=a)

                                        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​       \quad\quad\qquad \forall s,s'\in \mathcal{S}, r\in\mathcal{R}, and\ a\in\mathcal{A}(s) \quad\cdots(1,3.2)​​​​​​​       

        R_{t+1}可以如下计算而得:

        \mathbb{E}_{\pi}[R_{t+1}] = \sum\limits_{r\in\mathcal{R}}r\sum\limits_{s'\in\mathcal{S}}p(s', r|s, a),\quad \forall s\in\mathcal{S}, a\in\mathcal{A}(s)

        在策略𝜋的条件下的状态s的值函数记为v_\pi(s),表示从状态s出发遵循策略𝜋所能得到的期望回报,在马尔科夫决策过程中,可以定义如下:

        v_{\pi}(s) \doteq \mathbb{E}_{\pi}[G_t|S_t=s] = \mathbb{E}_{\pi}\bigg[\sum\limits_{k=0}\limits^{\infty}\gamma^k R_{t+k+1}\bigg|S_t=s\bigg], \forall s\in\mathcal{S} \quad\cdots(2,3.12)

        注意,这里v_\pi(s)与t无关,只与状态s有关,并且通常称为状态值函数(state-value function),以区别于接下来定义的动作值函数。

        同样,我们可以定义遵循策略𝜋在状态s下采取动作a的条件下的值函数如下:

        q_\pi(s,a) \doteq \mathbb{E}_{\pi}[G_t|S_t=s,A_t=a] = \mathbb{E}_{\pi}\bigg[\sum\limits_{k=0}\limits^{\infty}\gamma^k R_{t+k+1}\bigg|S_t=s,A_t=a\bigg], \\ \forall s\in\mathcal{S},a\in\mathcal{A}(s) \quad\cdots(3,3.13)

        通常q_\pi(s,a)被称为动作值函数(action-value function)。注意,虽然更严格一些的话似乎应该称为状态-动作-值函数(state-action-value function),但是由于动作总是依赖于状态的,所以这里省略掉状态也并不会引起歧义。

Solution-3.12:

        根据定义,v_\pi(s)是在状态s下采取所有各种可能的动作所得到的预期回报,而q_\pi(s,a)是在状态s下采取特定动作a时所得到的预期回报,因此 v_\pi(s)可以看作是q_\pi(s,a)的关于动作a的期望,由此可得:

         v_\pi(s) = \sum\limits_{a\in\mathcal{A}(s)}\pi(a|s)\cdot q_\pi(s,a)\quad\cdots(4)

3. 值函数的估计

        值函数v和q可以以基于经验的方式进行估计。比如说,一个遵循策略𝜋的智能体针对状态s进行跟踪统计,对每次碰到状态s后的实际回报进行平均就可以得到v_\pi(s)的近似估计,当碰到状态s的次数趋近无限时估计值就收敛于v_\pi(s)。同理,对每次状态s条件下采取动作a后所获得的实际回报进行跟踪、统计及平均即可得到q_\pi(s,a)的近似估计。这种估计方法就是所谓的蒙特卡洛方法。值函数估计的蒙特卡洛方法将在第5章讨论。

        当状态数很多时,通常对每个状态分别跟踪统计会变得不现实,更太不上动作值函数的跟踪统计。取而代之的做法是将𝑣𝜋,𝑞𝜋近似地表示为参数化(参数个数远小于状态个数)的近似函数(function approximator),然后条件参数使其更好地匹配实际观测到的回报。这种方法能够得到很精确的估计,当然估计性能依赖于所取的参数化函数近似器的性质。这一类方法将在本书第2部分讨论。

4. 状态值函数的贝尔曼方程

        在前面我们得到了预期回报的递推关系(recursive relationships),如下所示:

        G_t = R_{t+1}+ \gamma G_{t+1} \qquad\cdots(5,3.9)

        而值函数又是关于预期回报的条件均值,因此基于这个递推关系我们可以得到价值函数的递推关系,如下所示:

\begin{align}v_\pi(s) &\doteq \mathbb{E}_\pi[G_t|S_t=s] \\&= \mathbb{E}_\pi[R_{t+1}+ \gamma G_{t+1}|S_t=s] \\&= \sum\limits_{a}\pi(a|s)\sum\limits_{s'}\sum\limits_{r}p(s',r|s,a)\big[r+\gamma\mathbb{E}_\pi[G_{t+1}|S_{t+1}=s'] \big] \\&= \sum\limits_{a\in \mathcal{A}}\pi(a|s)\sum\limits_{s'\in \mathcal{S},r\in \mathcal{R}}p(s',r|s,a)\big[r+\gamma v_\pi(s') \big] \ \forall s\in\mathcal{S} \quad\cdots(6,3.14) \end{align}

        最后一行将针对s'和r的双重累加符号缩减为一个累加符号了,仅是为了是公式简洁一些,没有特别附加的含义。这最后一行也清楚表明了状态值函数𝑣𝜋(𝑠)是针对三元组{s',a,r}的所有可能组合的概率加权平均(expectation),结合下图可能更容易理解(更详细的解释可以参考原书,这种图叫做backup diagram,备份图--感觉这个名字真是有点不知所云^-^)。

      

v_\pi(s)计算的𝑏𝑎𝑐𝑘𝑢𝑝 𝑑𝑖𝑎𝑔𝑟𝑎𝑚(备份图)

        这个就是大名鼎鼎的状态值函数的贝尔曼方程。但是这个推导看起来有点可怕,尤其这个并不是概率论教材中的公式应用一下能够直接得出的,需要结合其中各变量的物理含义才能推导得出。我想像我这样需要琢磨很久才能回过神来的菜鸟应该不在少数。让我们来看看能不能拆解得更加友好易懂一些。如下所示:

        \mathbb{E}_{\pi}[R_{t+1}+\gamma G_{t+1} | S_t=s] = \sum\limits_{a}\pi(a|s)\mathbb{E}_{\pi}[R_{t+1}+\gamma G_{t+1} | S_t=s,A_t=a]

        参见Exercise 3.12的题解,道理相同。

        进一步(道理同上,抠住条件均值和期望的定义即可),

        \mathbb{E}_{\pi}[R_{t+1}+\gamma G_{t+1} | S_t=s,A_t=a] \\= \sum\limits_{s'}\sum\limits_{r}p(s',r|s,a) \mathbb{E}_{\pi}[R_{t+1}+\gamma G_{t+1} | S_{t+1}=s',R_{t+1}=r]

        显而易见(因为S_{t+1}对于R_{t+1}没有影响),\mathbb{E}_{\pi}[R_{t+1} | S_{t+1}=s',R_{t+1}=r] = r,所以,

        同样,由于R_{t+1}对于G_{t+1}没有影响,所以有:

        \begin{align}\mathbb{E}[\gamma G_{t+1} | S_{t+1}=s', R_{t+1}=r] &=\gamma \mathbb{E}[G_{t+1} | S_{t+1}=s'] \\ &= \gamma v_{\pi}(s')\end{align}

        综合可得:

        \begin{align} v_{\pi}(s) &= \mathbb{E}_{\pi}[R_{t+1}+\gamma G_{t+1}|S_t=s] \\ &= \sum\limits_{a}\pi(a|s)\sum\limits_{s',r} p(s',r|s,a)[r+\gamma v_{\pi}(s')] \end{align}

        状态值函数的贝尔曼方程的具有唯一解。后续章节我们将看到贝尔曼方程是各种计算、近似和学习状态值函数的基础。

        同理可以推出动作值函数的贝尔曼方程,参见Exercise 3.17.

本系列总目录参见:强化学习笔记总目录https://chenxiaoyuan.blog.csdn.net/article/details/121715424

参考文献:

[1] Sutton-RLbook-chapter3.5


http://chatgpt.dhexx.cn/article/FLDxho2l.shtml

相关文章

贝尔曼最优方程(Bellman Optimality Equation)

贝尔曼最优方程 目录回顾 补充逻辑场景设置 贝尔曼最优方程最优策略与最优价值函数最优状态价值函数最优状态-动作价值函数 小小的题外话 - 最大值/期望值最大值和期望值之间的大小关系 最优策略与两种价值函数间的关系贝尔曼最优方程表达式 本节使用 更新图的方式对 V π ( …

价值函数与贝尔曼方程

一.价值函数 由于在面对不同的状态时,智能体需要选择最优的动作,到达更优的状态以得到更多的奖励.那么我们根据什么判别一个状态或动作的的好坏程度呢?我们引入价值函数。 价值函数的定义是:获得回报的期望。 1.状态价值函数 …

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

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

贝尔曼方程(Bellman Equation)的解读

这个算法只适用于没有变化的环境 在解释下面几个专业术语前 我先来说一下这个Agent,中文的意思是 代理,代理人 但是实际上他大概表示的意思就相当于变量,就给你某一个状态贴上了一个标签一样 **状态(State) :**用一个数值来作为…

贝尔曼方程讲解

网格世界示例如下: 贝尔曼方程 在这个网格世界示例中,一旦智能体选择一个动作, 它始终沿着所选方向移动(而一般 MDP 则不同,智能体并非始终能够完全控制下个状态将是什么) 可以确切地预测奖励(…

Bellman 贝尔曼方程究竟是什么

贝尔曼方程是一种思想,而不是一个具体的公式 贝尔曼方程是由美国一位叫做理查德-贝尔曼科学家发现并提出的。 它的核心思想是:当我们在特定时间点和状态下去考虑下一步的决策,我们不仅仅要关注当前决策立即产生的Reward,同时也要…

(详细)强化学习--贝尔曼方程

原文链接:https://zhuanlan.zhihu.com/p/86525700 我有一个疑问,就是在推导过程中,状态s不是变量,st 是t阶段的状态相当于是一个常数,那么为什么sts,常数在等号的左边,变量在等号的右边&#x…

什么是强化学习?(贝尔曼方程)

文章目录 什么是强化学习?(贝尔曼方程)3.贝尔曼方程(Bellman equation)3.1贝尔曼期望方程(Bellman expectation equation)3.2 贝尔曼最优方程(Bellman optimality equation) 4. M D P MDP MDP 的动态编程(dynamic programming)4.1 M D P MD…

Bellman Equation 贝尔曼方程

Bellman equation(贝尔曼方程),是以Richard E.Bellman命名,是数值最优化方法的一个必要条件,又称为动态规划。它以一些初始选择的收益以及根据这些初始选择的结果导致的之后的决策问题的“值”,来给出一个决策问题在某一个时间点的…

贝尔曼方程详尽推导(无跳步|带图)

贝尔曼方程推导(无跳步) 这两天学习MDP,对于贝尔曼方程有很大的困惑,而且找了很多资料都没有详尽的推导,我这里把详尽推导写出来,希望能帮到正在学习的同学们。 V π ( s ) E [ G t ∣ S t s ] E [ R t…

20张图深度详解MAC地址表、ARP表、路由表

本文我们以两个案例为例,深度来讲解一下网络中我们经常要用到的mac地址表、ARP表、路由表,掌握了这3张表,基本上就能够掌握了网络中数据通信的原理,成为网络中的武林高手! 数据网络的本质就是为了传递数据,…

观察交换机学习MAC地址表的过程

查看交换机的mac地址表 dis mac-address 此时路由表为空 为pc配置IP地址 由pc3 ping 数据包 通过发送arp数据包 可使交换机学习到 pc3的mac地址 此时交换机学习到了pc3的mac地址 通过 E0/0/1接口 通过数据抓包可见 ping pc4 交换机也学习到了相应的mac地址

LAN---MAC表简介(MAC地址分类、MAC地址表生成方式、MAC表报文转发方式、MAC地址表分类、AC地址老化、端口安全、安全MAC地址分类、MAC地址漂移、MAC地址防漂移)

MAC表简介 介绍MAC表的定义、由来和作用。 MAC(MediaAccessControl)地址用来定义网络设备的位置。MAC地址由48比特长、12位的16进制数字组成,0到23位是厂商向IETF等机构申请用来标识厂商的代码,24到47位由厂商自行分派&#xff0c…

华为交换机MAC地址表分类与实验

MAC地址表分类: 动态表项由接口通过对报文中的源MAC地址学习方式动态获取到,这类MAC地址有老化的时间,并且可以自己修改,老化时间越短,交换机对周边的网络变化越敏感,适合在网络拓扑变化比较环境中&#xf…

华为路由器上有没有mac表_MAC地址表、ARP缓存表、路由表及交换机、路由器基本原理...

MAC地址表 说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的。在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据这张表负责将数据帧传输到指定的主机上的。 交换机的工作原理 交换机在接收到数据帧…

MAC地址表+端口安全+MAC地址漂移

目录 一、MAC地址表的组成 二、端口安全(Port Security) 三、MAC地址漂移 1、配置接口mac地址学习优先级(MAC地址表就不会被抢占覆盖了) 2、配置不允许相同优先级接口mac地址漂移(不要轻易配置) 四、…

怎么管理思科交换机MAC地址表?

【欢迎关注微信公众号:厦门微思网络】 实验目的 1、理解交换机的工作原理 2、掌握交换机MAC地址表的管理方法 实验拓扑 【欢迎关注微信公众号:厦门微思网络】 实验需求 1、根据实验拓扑图,完成设备的基本配置; 2、测试主机之间…

交换机MAC地址表实验任务

一、实验目的 1、掌握交换机学习MAC地址的过程 二、实验内容 1、跟据所给题目完成MAC地址表实验 三、实验过程 1、实验任务说明 如图1-1所示,在GNS3软件中,使用一台三层交换机(S3950)以及两台PC机,进行配置后根据…

MAC地址、MAC地址表、端口安全、MAC地址漂移

一、MAC地址 mac地址主要工作在数据链路层,主要用于单个广播域内的数据传输 1.组成 总共48Bit,前24bit是通过向IETF等机构申请用来标识厂商的代码,后24bit由是厂商分配给产品的唯一数值 2.作用 mac地址工作在数据链路层 数据的封装和解封…

网络之MAC地址表学习

MAC地址表是在交换机中记录局域网主机和对应接口关系的表,交换机就是根据这张表负责将数据帧传输到指定的主机上的。 MAC表一般包含动态MAC地址、静态MAC地址和黑洞MAC地址。 动态MAC地址:由接口通过报文中的源MAC地址学习获得,表项可老化&…