首页 > 其他分享 >强化学习Chapter2——优化目标(2)

强化学习Chapter2——优化目标(2)

时间:2023-07-13 16:13:06浏览次数:40  
标签:tau 价值 函数 状态 Chapter2 强化 pi 优化 sim

强化学习Chapter2——优化目标(2)

上文推导出强化学习的一般性目标,即不做确定性假设下的优化目标,得到了下面两个式子:

\[P(\tau|\pi)=\rho_0(s_0)\prod^{T-1}_{t=0} P(s_{t+1}|s_t,a_t)\pi(a_t|s_t)\\ J(\pi)=\int_\tau P(\tau|\pi)R(\tau)=E_{\tau\sim\pi}[R(\tau)] \]

我们的目标就是学习最优策略:

\[\pi^*=\arg \max_\pi J(\pi) \]

价值函数

上文仅对 \(P(\tau|\pi)\) 做出了详细的推导,但是没有涉及 \(R(\tau)\) 的计算,为了衡量回报,本节将介绍几个相关的价值函数。所谓价值函数,其实只是将价值看成状态 \(s\) 或者动作 \(a\) 等变量的函数罢了,这都是为了便于衡量回报。

1、State-Value Function \(V^{\pi}(s)\)

\[V^{\pi}(s)=E_{\tau\sim\pi}[R(\tau)|s_0=s] \]

显然,这个函数是一个关于状态 \(s\) 的价值函数,可以将其于我们的目标比较,不难看出,只是将初始状态 \(s_0\) 当作一个变量而已。即 \(V^{\pi}(s)\) 的含义是,按照一个固定的策略从 s 状态出发的 trajectories 的回报的期望,将其定义为状态 s 的价值

2、Action-Value Function \(Q^{\pi}(s,a)\)

\[Q^{\pi}(s,a)=E_{\tau\sim\pi}[R(\tau)|s_0=s,a_0=a] \]

参考状态价值函数,动作价值函数就好理解得多。不过是多添加了一个变量,即初始状态与初始动作,由此可以衡量该动作的价值。容易想到的是,动作价值函数只比状态价值函数多一个变量 \(a_0\),且是同一变量 \(R(\tau)\) 的期望,因此可以对 V 取期望就能得到 Q。

\[V^\pi(s)=E_{a\sim\pi}[Q^\pi(s,a)] \]

由于等号左边只是 s 的函数,因此需要通过策略来表示等号右边的 a,根据期望的定义可以得出:

\[V^\pi(s)=\sum_{a}\pi(a|s)Q^\pi(s,a) \]

事实上,也可以用 \(V\) 来表示 \(Q\),这是通过分析单步状态迁移得到的。从某个状态 v,选择动作 a,首先会立即得到一个 Reword(用 \(r(s,a)\) 表示),然后会迁移到下一个状态 \(s'\)。所以 \(Q(s,a)\) 应当等于即时奖励 + 下一状态的 state-value。

\[Q^\pi(s,a)=r(s,a)+\gamma\sum_{s'}P(s'|s,a)V^\pi(s') \]

这里涉及上一节的假设,即给定 \(s\) 和 \(a\) 迁移到下一状态 \(s'\),这是一个概率事件(为了普适性)。除此之外,这里采用的 Return 定义是带遗忘因子的回报。

状态价值函数 V 与动作价值函数 Q 之间的等式关系,是推导贝尔曼方程的关键所在。

3、Optimal State-Value Function \(V^*(s)\) and Optimal Action-Value Function \(Q^*(s,a)\)

\[V^*=\max_{\pi} E_{\tau\sim\pi}[R(\tau)|s_0=s]\\ Q^*(s,a) = \max_{\pi} E_{\tau\sim\pi}[R(\tau)|s_0=s, a_0=a] \]

这两个式子只是将上面一般形式加上对策略 \(\pi\) 的限制而已。此处的策略,应当是最优策略。但要知道的是,当状态价值或动作价值取最优时,对应的最优策略不唯一,这也是式子中不直接写 \(\pi^*\) 的原因。若考虑这二者之间的关系,则可以得出下面的式子:

\[V^*(s)=\max_a Q^*(s,a) \]

这个式子告诉我们,如果对特定的开始状态 s,若要使其价值最大,则只需选择使 \(Q\) 最大的动作 a 即可(当然可能存在多个),这为我们构建策略提供了方便:

\[a^*(s)=\arg \max_aQ^*(s,a) \]

标签:tau,价值,函数,状态,Chapter2,强化,pi,优化,sim
From: https://www.cnblogs.com/tsyhahaha/p/RL_Chapter2-2.html

相关文章

  • 【Netty】「优化进阶」(一)粘包半包问题及解决方案
    前言本篇博文是《从0到1学习Netty》中进阶系列的第一篇博文,主要内容是介绍粘包半包出现的现象和原因,并结合应用案例来深入讲解多种解决方案,往期系列文章请访问博主的Netty专栏,博文中的所有代码全部收集在博主的GitHub仓库中;粘包现象粘包是指多个独立的数据包被粘合在一起发送,......
  • 【Netty】「优化进阶」(二)浅谈 LengthFieldBasedFrameDecoder:如何实现可靠的消息分割?
    前言本篇博文是《从0到1学习Netty》中进阶系列的第二篇博文,主要内容是通过不同的应用案例来了解LengthFieldBasedFrameDecoder是如何处理不同的消息,实现自动分割,往期系列文章请访问博主的Netty专栏,博文中的所有代码全部收集在博主的GitHub仓库中;介绍LengthFieldBasedFrameDe......
  • 一些js高阶函数的封装及常用优化技巧
    函数防抖//频繁触发、耗时操作,只执行最后一次constdebounce=function(fn,delay=300){lettimer=nullreturnfunction(...args){clearTimeout(timer)timer=setTimeout(()=>{fn.apply(this,args)},delay)}}//constdebounc......
  • sql优化篇
    简单优化:1、不要使用select*,尽量避免回表查询2、尽量避免in语句3、如果like语句前后模糊匹配导致索引失效,可以使用  SELECT*FROMtableWHEREINSTR(name,'keyword')>0; 4、其余字段加索引5、limit时,尽量添加orderby[索引字段],可以在大数据量时提高查询速度6......
  • 斜率优化
    斜率优化大致思想:将决策点视为若干二维平面上的点,将当前点的已知条件视为斜率,将\(dp_i\)视为截距。寻找经过某个点且斜率一定的直线的最小截距。(寻找最大截距时需要将\(dp\)取负,转化为最小,这样维护的凸包就始终是下凸包)凸包的维护:单调队列:满足条件:满足抉择点的\(x\)坐......
  • 强化学习Chapter2——优化目标(1)
    强化学习Chapter2——优化目标(1)上节涉及强化学习基本思路以及利用数学方式表征强化学习,但对强化学习的目标并没有进行详尽的定义。本节的目标旨在介绍algorithm-free的优化目标,即本文将不涉及算法地详述强化学习的目标。强化学习一般性目标上文提到,强化学习的目标可以解释为:......
  • EasyCVR平台Ehome协议接入,设备管理中出现新增通道按钮的问题优化
    EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等,能对外分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。有用户反馈,通过海康Ehome接入的设备,在设备管理中出现了新......
  • SysMain 服务(也称为 Superfetch 或 Prefetch)是 Windows 操作系统中的一个关键组件之一
    SysMain服务(也称为Superfetch或Prefetch)是Windows操作系统中的一个关键组件之一,用于优化系统性能和加速应用程序的启动时间。SysMain服务通过分析系统的使用模式,并预先加载常用的应用程序和文件到内存中,从而减少应用程序的启动时间和提高响应速度。SysMain服务的主要目标......
  • redis数据结构编码优化(1)
    redis数据结构内部编码优化(1)Redis可以通过内部编码规则来节省空间。Redis为每种数据类型提供了两种内部编码方式。以散列类型为例,散列类型是通过散列表实现的,这样就可以实现o(1)时间复杂度的查找、赋值操作,然而当键中元素很少的时候,o(1)的操作并不会比o(n)有明显的性能提高,所以这......
  • 说透MySQL:从数据结构到性能优化,附实际案例和面试题
    typora-copy-images-to:imgmysql索引第一章MySQL性能(掌握)1分析-数据库查询效率低下我们进入公司进行项目开发往往关注的是业务需求和功能的实现,但是随着项目运行的时间增加,数据量也就增加了,这时会影响到我们数据库的查询性能。所以我们要提高操作数据库的性能,有如下两种方式:1.......