强化学习Actor-Critic 算法

本文详细介绍了Actor-Critic算法,一种结合了策略和值函数学习的强化学习方法。它通过策略梯度和时序差分残差来优化策略,并利用价值网络降低方差。文中还提供了Python代码实例,展示了如何在CartPole-v0环境中应用Actor-Critic算法。

第 10 章 Actor-Critic 算法

10.1简介

本书之前的章节讲解了基于值函数的方法(DQN)和基于策略的方法(REINFORCE),其中基于值函数的学习方法只学习一个价值函数,而基于策略的方法只学习一个策略函数。那么,一个很自然的问题是,有没有什么方法既学习价值函数,又学习策略函数呢?答案是Actor-Critic是囊括一系列算法的整体架构,目前很多高效的前沿算法都属于Actor-Critic算法,本章接下来将会介绍一种最简单的Actor-Critic算法。需要明确的是,Actor-Critic算法本质上是基于策略的算法,因为这一系列算法的目标都是优化一个带参数的策略,只是会额外学习价值函数,从而帮助策略函数更好地学习。

10.2 Actor-Critic

回顾一下,再REINFORCE算法中,目标函数的梯度中有一项轨迹回报,用于指导策略的更新。REINFORCE算法用蒙特卡洛方法来估计Q(s,a)Q(s,a)Q(s,a),能不能考虑拟合一个值函数来指导策略进行学习呢?这是Actor-Critic算法所做的。在策略梯度中,可以把梯度写成下面这个更加一般的形式:

g=E[ΣtTψt∇θlog⁡πθ(at∣st)]g=\mathbb{E}[\varSigma _{t}^{T}\psi _t\nabla _{\theta}\log \pi _{\theta}(a_t|s_t)]g=E[ΣtTψtθlogπθ(atst)]

其中,ψt\psi _tψt可以有很多种形式:

  1. ΣTt′=0γt′rt′\underset{t'=0}{\overset{T}{\varSigma }} \gamma ^{t'}r_{t'}t=0ΣTγtrt:轨迹的总回报
  2. ΣTt′=tγt′−trt′\underset{t'=t}{\overset{T}{\varSigma }} \gamma ^{t'-t}r_{t'}t=tΣTγttrt:动作ata_tat之后的回报
  3. ΣTt′=tγt′−trt′−b(st)\underset{t'=t}{\overset{T}{\varSigma }} \gamma ^{t'-t}r_{t'}-b(s_t)t=tΣTγttrtb(st
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值