强化学习的数学原理-09策略梯度
Basic idea of policy gradient
截至目前,所有的策略policy都是用表格表示的,如下图所示,每个状态对应一行动作。
现在由于策略梯度的方法是直接建立一个关于策略的函数,于是就要改变策略的形式。
现在需要引入一个参数
- 目前这个策略函数最广泛的形式就是神经网络,神经网络的输入是
输出是采用每个动作的概率,参数是 - 引入函数的优点和之前的
是类似的,一方面是存储上 能在 很大的时候节省很多空间,另一方面就是泛化能力会得到提升,主要是在 两方面有较大的优点。
表格形式和函数形式上对于策略的几点区别
- 定义最优策略:表格形式最优策略定义是最优策略下的
大于其他所有策略的,而函数形式下的最优策略引入了一个 来衡量什么是最优策略 - 获取在s状态下,采取action的概率:表格形式直接查表即可,而函数形式需要通过神经网络进行一次推理得到。
- 改变策略:表格形式直接索引然后改变,函数形式通过改变参数
来改变策略
下面就看一下
- 首先需要一个
或者 去定义最优策略 - 有了目标函数之后就可用梯度的算法做优化,去寻找最优策略
这就是策略梯度的思想,这个想法是很简单的,但是这其中会存在一些问题。
- 怎么选取目标函数
- 怎么去计算梯度?
Metrics to define optimal policies
主要有两大类
average value
第一种:
实际上是一个 的加权平均 是每个状态的权重- 因为
,我们可以把 描述为概率分布。那么刚才的 就可以写成这个形式 表示随机变量
上面相乘再相加的形式可以写成一种更简洁的形式就是两个向量的内积
上面就结束了第一种
第一种情况是简单的.
只需要对后面的
- 最简单的就是把所有的状态认为是
,所以 - 如何我们关注某些特殊的状态,就可以给某些状态较大的
第二种情况就是和策略有关系
一种选择
然后这个概率可以直接计算出来
average reward
第二种就是
这部分还有一点数学形式待完善...
Gradient of the metrics
计算梯度是
首先这里有很多不同的
还需要区分
这里只给出一个总结的情况
上面这个式子是有用的,因为有期望,所以可以通过采样的方式去近似。这个就是
如何得到上面的等式呢?
上面这个式子实际就是复合函数求导的链式法则
然后把等式右边的分母乘到左边去
把这个式子带入到
分析一下上面的一些点
因为需要计算
但是之前我们的
因为
Gradient-ascent algorithm(REINFORCE)
这个公式是没有办法应用的,因为公式中有期望,所以需要通过随机的梯度来代替真实梯度。
但是上面的式子仍然是无法应用的,因为上面的式子里面涉及了
为了解决上面的问题,这里是对这个
关于怎么采样于是又有两种方法。
- 一种是
,被称为 - 还有就是其他算法,比如
,这就和后面 有关了
上面就是梯度上升算法,下面是一些关于其中细节的实操
如何
是 在按策略 下长期运行后得到的一个稳定的状态
如何
因此- 所以
是 的
如何从另一个角度去理解这个算法
因为
因此上面的梯度上升算法可以重写为
然后可以把
于是上面的式子就可以化为
上面这个式子是在优化
其
如何
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
2022-11-12 编码器和译码器