基于Pytorch的强化学习(DQN)之Sarsa算法
目录1. 引言2. 数学推导2. 算法步骤1. 引言我们现在来看看强化学习中一种常用的算法:Sarsa算法。它常用于学习动作价值网络。2. 数学推导我们知道动作价值函数 就是return对于随机变量state和action的期望值,即:我们之前推导过一个return的递推式:将其代入得到我们知道就是的期望,于是我们得到等式右端含有随机变量,我们使用来近似,用来近似,于是我们有,又由于等式右端整体是
目录
1. 引言
我们现在来学习一下强化学习中一种常用的算法:Sarsa算法。它常用于学习动作价值网络 ,它是通过Q表的形式进行决策,在 Q 表中挑选值较大的动作值施加在环境中来换取奖惩,也就是根据计算出来的Q值来作为选取动作的依据
2. 数学推导
我们知道动作价值函数 就是return对于随机变量state和action的期望值,即:
我们之前推导过一个return的递推式:
将其代入得到
我们知道 就是
的期望,于是我们得到
等式右端含有随机变量 ,我们使用
来近似
,用
来近似,于是我们有
,又由于等式右端整体是一个期望不好计算,于是我们使用蒙特卡罗方法近似这个期望 ,我们将
看成TD target,这里的
我们可以用查询Q表(状态动作价值表)得到接下来要想办法让
接近这个TD target。
Q表:

基本算法思路如下:
- 观测到一个state transition:
- 根据policy函数
抽取
- 计算TD target
- 计算TD error
- 更新
其中第一步的transition序列加上组成的五元组
就是Sarsa的名称的由来。
2. 算法步骤
具体怎么实现呢?当然还是用神经网络啦:
- 用神经网络
来近似
- 计算TD target:
- 计算TD error:
- 损失函数loss:
- 梯度下降:
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)