基于Pytorch的强化学习(DQN)之 REINFORCE with baseline
目录1. 引言2. 估计2.1 估计期望2.2 估计价值函数2.3 估计状态函数3. 算法3.1 策略网络3.2 价值网络1. 引言我们上次讲到了baseline的基本概念,今天来讲讲使用到baseline的常用算法:REINFORCE2. 估计我们之前得到了状态价值函数的梯度表达式我们希望使其梯度上升,现状就需要解决这么几个难题:等式右侧是一个期望表达式,不好计算;含有未知的;含有未知的,现在我
目录
1. 引言
我们上次讲到了baseline的基本概念,今天来讲讲使用到baseline的常用算法:REINFORCE
2. 估计
我们之前得到了状态价值函数的梯度表达式
我们希望使其梯度上升,现状就需要解决这么几个难题:等式右侧是一个期望表达式,不好计算;含有未知的 ;含有未知的
,现在我们来解决这几个问题。
2.1 估计期望
首先解决期望问题,我们上次引入了随机梯度函数
根据 抽取
使用蒙特卡罗算法近似这个期望,则
,这样就解决了期望的问题。
2.2 估计价值函数
我们虽然解决了期望的问题,但是等式右侧还有 ,由于
是return的期望,于是我们可以考虑使用观测到的return来近似
,在一把对局结束之后我们获得一个trajectory
,我们就可以计算
,这样一个未知量就被解决了,这种方法也是蒙特卡罗算法。
2.3 估计状态函数
最后一步就是近似 ,这里我们使用神经网络
来近似状态价值函数
,即
。
3. 算法
我们的算法中出现了两个神经网络,于是我们需要分别更新两个网络的参数
3.1 策略网络
第一个网络近似的是策略函数 状态价值函数
的梯度用
近似。令

我们需要价值函数变大,所以我们使用梯度上升来更新策略网络
3.2 价值网络
第二个网络就是我们引入近似 的神经网络

由于 我们要使
,只需要
,也就是减小
,于是我们定义loss函数
并做梯度下降
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)