强化学习的学习之路(三十六)_2021-02-05: Actor Critic - Reducing variance with critic

作为一个新手,写这个强化学习-基础知识专栏是想和大家分享一下自己学习强化学习的学习历程,希望对大家能有所帮助。这个系列后面会不断更新,希望自己在2021年能保证平均每日一更的更新速度,主要是介绍强化学习的基础知识,后面也会更新强化学习的论文阅读专栏。本来是想每一篇多更新一点内容的,后面发现大家上CSDN主要是来提问的,就把很多拆分开来了(而且这样每天任务量也小一点哈哈哈哈偷懒大法)。但是我还是希望知识点能成系统,所以我在目录里面都好按章节系统地写的,而且在github上写成了书籍的形式,如果大家觉得有帮助,希望从头看的话欢迎关注我的github啊,谢谢大家!另外我还会分享深度学习-基础知识专栏以及深度学习-论文阅读专栏,很早以前就和小伙伴们花了很多精力写的,如果有对深度学习感兴趣的小伙伴也欢迎大家关注啊。大家一起互相学习啊!可能会有很多错漏,希望大家批评指正!不要高估一年的努力,也不要低估十年的积累,与君共勉!

Reducing variance with critic

策略梯度法的梯度如下:

∇ θ J ( θ ) = 1 N ∑ i = 1 N ∑ t = 0 T [ ∇ θ log ⁡ π θ ( a i , t ∣ s i , t ) ( ∑ t ′ = t T r ( s i , t ′ , a i , t ′ ) − b i ) ] \nabla_{\theta} J(\theta)=\frac{1}{N} \sum_{i=1}^{N} \sum_{t=0}^{T}\left[\nabla_{\theta} \log \pi_{\theta}\left(\boldsymbol{a}_{i, t} \mid \boldsymbol{s}_{i, t}\right)\left(\sum_{t^{\prime}=t}^{T} r\left(\boldsymbol{s}_{i, t^{\prime}}, \boldsymbol{a}_{i, t^{\prime}}\right)-\boldsymbol{b}_{i}\right)\right] θJ(θ)=N1i=1Nt=0T[θlogπθ(ai,tsi,t)(t=tTr(si,t,ai,t)bi)]

我们用轨迹的回报表示整个序列的价值,这个表示是准确无偏的,但是在真实的训练过程中,为了尽可能地控制学习时间,我们无法完成非常多次的交互,往往只会进行有限次数的交互,这些交互有时并不能很好地代表轨迹真实的期望。每一个交互得到的序列都会有一定的差异,即使他们从同一起点出发对应的回报也会有一定的差异,因此不充足的交互会给轨迹回报带来较大的方差

img

而在这里我们选择用牺牲一定的偏差来换取方差变小:Actor-Critic 用一个独立的模型估计轨迹的长期回报,而不再直接使用轨迹的真实回报。类似于基于模型的Q-Learning 算法,在估计时使用模型估计轨迹价值,在更新时利用轨迹的回报得到目标价值,然后将模型的估计值和目标值进行比较,从而改进模型。

公式中可以被模型替代的部分有两个,其中 ∑ t ′ = t T r ( s i , t ′ , a i , t ′ ) \sum_{t^{\prime}=t}^{T} r\left(s_{i, t^{\prime}}, a_{i, t^{\prime}}\right) t=tTr(si,t,ai,t) 代表从 t t t 时刻出发所获得的长期回报, b i b_{i} bi 代表待减去的偏移量。根据这两个部分被模型替代的情况,我们可以得到以下几种方案:

  • 采用策略梯度法的方法:公式由 ∑ t ′ = t T r ( s i , t ′ , a i , t ′ ) − b i \sum_{t^{\prime}=t}^{T} r\left(s_{i, t^{\prime}}, \boldsymbol{a}_{i, t^{\prime}}\right)-\boldsymbol{b}_{i} t=tTr(si,t,ai,t)bi 表示。
  • 使用状态值函数估计轨迹的回报 : q ( s , a ) ∘ q(s, a)_{\circ} q(s,a)
  • 直接使用优势函数估计轨迹的回报:A ( s , a ) = q ( s , a ) − V ( s ) (s, a)=q(s, a)-V(s) (s,a)=q(s,a)V(s)
  • 使用 TD-Error 估计轨迹的回报: 公式由 r ( s t , a t ) + v ( s t + 1 ) − v ( s ) r\left(s_{t}, \boldsymbol{a}_{t}\right)+v\left(s_{t+1}\right)-v(s) r(st,at)+v(st+1)v(s) 表示。

可以看出四种方法都可以在一定程度上降低算法的方差,实际中 Actor Critic 算法最终选择了第 4 种方案,这种方案在计算量(只需要算一个价值函数V,而V函数和动作无关,又可以用来计算Q函数和A函数)和减少方差方面具有一定的优势。由于引入了状态价值模型,算法整体包含了两个模型,一个是策略模型,一个是价值模型,所以这个算法被称为 Actor-Critic,其中 Actor 表示策略模型,Critic 表示价值模型。

因此,我们可以得到我们的Actor-Critic算法为如下:

在这里插入图片描述

上一篇:强化学习的学习之路(三十五)_2021-02-04:Tips in Policy Gradient Descent
下一篇:强化学习的学习之路(三十七)_2021-02-06: Actor Critic - Evaluation for value function

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值