强化学习-05--A2C


原本计划将AC、A2C、A3C算法写在一块的,但是写完后发现内容太多了,大家看的时候会非常没有耐心,效率感觉会比较低,就把他们拆开写了。

一、A2C算法

A2C 没有具体的论文,是 OpenAI 在实现 baseline 中发现多个actor的梯度同步更新或异步更新产生的效果差不多,所以写了一个博客 , 同时在 OpenAI baseline 中实现了A2C。

因此也没有具体的伪代码进行展示。

二、A2C与AC算法的区别

与AC算法不同的是,actor网络求梯度的时候用的是优势函数 Q ( s , a ) − V ( s ) Q(s,a)-V(s) Q(s,a)V(s)

1、actor网络和critic网络的更新

actor网络的更新: θ = θ + α ▽ θ l o g π θ ( s t , a t ) ( Q ( s , a ) − V ( s ) ) θ=θ+α▽ _{θ} log π _{θ} (s_{t},a_{t})(Q(s,a)-V(s)) θ=θ+αθlogπθ(st,at)(Q(s,a)V(s))
但是在实际操作中,一般用TD误差代替优势函数进行计算,因为TD误差是优势函数的无偏估计。TD error:$ δ=r+γV(S′)−V(S)$。因此actor网络的更新公式为:

θ = θ + α ▽ θ l o g π θ ( s t , a t ) δ θ=θ+α▽ _{θ} log π _{θ} (s_{t},a_{t})\delta θ=θ+αθlogπθ(st,at)δ
δ = r + γ V ( S ′ ) − V ( S ) δ=r+γV(S′)−V(S) δ=r+γV(S)V(S)

critic网络的更新:一般使用MSE(均方误差)损失函数来做迭代更新,
均方误差损失函数: 1 n ∑ n = 1 ∞ ( R + γ V ( S ′ ) − V ( S , w ) ) 2 = 1 n ∗ ∑ n = 1 ∞ δ 2 \frac{1}{n}\sum_{n=1}^{\infty}{(R+γV(S^{′})−V(S,w))^{2}}=\frac{1}{n}*\sum_{n=1}^{\infty}{\delta}^2 n1n=1(R+γV(S)V(S,w))2=n1n=1δ2

2、其余内容

其余内容和AC算法内容差不多都保持一致。

参考链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值