3.弗洛伊德算法和迪杰斯特拉算法相比有什么优势?_强化学习(十三 )--AC、A2C、A3C算法...

1.Actor-Critic框架的提出

从策略梯度中可以看出,累积回报

equation?tex=R%28%5Ctau%29 就像是一个评价器(Critic),该评价器(Critic)评价参数更新后,该轨迹出现的概率应该变大还是变小。如果变大,应该变大多少;如果减小,应该减小多少。也就是说,策略的参数调整幅度由轨迹回报
equation?tex=R%28%5Ctau%29 进行评价。在保持策略梯度不变的情况下,策略梯度可写为:
equation?tex=%5C%5B+g%3D%5Cmathbb%7BE%7D%5Cleft%5B%5Csum_%7Bt%3D0%7D%5E%7B%5Cinfty%7D%7B%5CPsi_t%5Cnabla_%7B%5Ctheta%7D%5Clog%5Cpi_%7B%5Ctheta%7D%5Cleft%28a_t%7Cs_t%5Cright%29%7D%5Cright%5D+%5C%5D

其中

equation?tex=%5Cpi_%7B%5Ctheta%7D%5Cleft%28a%7Cs%5Cright%29 为Actor,
equation?tex=%5CPsi_t 称为Critic,此式是一个广义的AC框架。

equation?tex=%5CPsi_t 可以取以下任何一个:

equation?tex=%5C%5B+1.%5CSigma_%7Bt%3D0%7D%5E%7B%5Cinfty%7Dr_t+%5C%5D 轨迹的总回报,

equation?tex=2.%5CSigma_%7Bt%27%3Dt%7D%5E%7B%5Cinfty%7Dr_%7Bt%27%7D 动作后的回报

equation?tex=3.%5CSigma_%7Bt%27%3Dt%7D%5E%7B%5Cinfty%7Dr_%7Bt%27%7D-b%5Cleft%28s_t%5Cright%29 加入基线的形式

equation?tex=4.%5C+Q%5E%7B%5Cpi%7D%5Cleft%28s_t%2Ca_t%5Cright%29+ 状态-行为值函数

equation?tex=5.%5C+A%5E%7B%5Cpi%7D%5Cleft%28s_t%2Ca_t%5Cright%29 ,优势函数

equation?tex=6.r_t%2BV%5E%7B%5Cpi%7D%5Cleft%28s_%7Bt%2B1%7D%5Cright%29-V%5E%7B%5Cpi%7D%5Cleft%28s_t%5Cright%29%3ATD-error

前三个直接应用轨迹的回报累积回报,由此计算出来的策略梯度不存在偏差,但是由于需要累积多步的回报,因此方差会很大。后三个利用动作值函数,优势函数和TD偏差代替累积回报,其优点是方差小,但是这三种方法中都用到了逼近方法,因此计算出来的策略梯度都存在偏差。这三种方法以牺牲偏差来换取小的方差。当

equation?tex=%5CvarPsi_t 取4-6时,为经典的AC方法。

f7ba037ee663d7c0747448236d3974ab.png

Actor为策略函数,经常用神经网络来表示,因此称为策略网络。Critic为评价函数,也常常用神经网络进行逼近,它的参数常用

equation?tex=%5Comega 表示,因此Critic又称为评价网络。两个模型同时进行训练。

equation?tex=%5CvarPsi_t 取TD-error,并且值函数
equation?tex=V%5E%7B%5Cpi%7D%5Cleft%28s_t%5Cright%29 由参数为
equation?tex=w 的神经网络进行逼近时,值函数网络的更新:
equation?tex=%5C%5B+%5Cdelta%5Cgets+G_t-%5Chat%7B%5Cupsilon%7D%5Cleft%28S_t%2Cw%5Cright%29%5C%5C+w%5Cgets+w%2B%5Cbeta%5Cdelta%5Cnabla_w%5Chat%7B%5Cupsilon%7D%5Cleft%28S_t%2Cw%5Cright%29+%5C%5D

策略网络部分的更新:

equation?tex=%5C%5B+%5Ctheta%5Cgets%5Ctheta+%2B%5Calpha%5Cdelta%5Cnabla_%7B%5Ctheta%7D%5Clog%5Cpi%5Cleft%28A_t%7CS_t%2C%5Ctheta%5Cright%29+%5C%5D

2.A2C算法

A2C全称为优势动作评论算法(Advantage Actor Critic)。

A2C使用优势函数代替Critic网络中的原始回报,可以作为衡量选取动作值和所有动作平均值好坏的指标。

65d5f6b49ff00ebb131bf9292251e99d.png

什么是优势函数?

equation?tex=+A_%7B%5Cpi%7D%28s%2Ca%29%3DQ_%7B%5Cpi%7D%5Cleft%28s%2Ca%5Cright%29-V_%7B%5Cpi%7D%5Cleft%28s%5Cright%29+ 称为优势函数。

93a747ab2561680cbe7075b8043001b0.png
优势函数示意图

状态值函数

equation?tex=V%28s%29 :该状态下所有可能动作所对应的动作值函数乘以采取该动作的概率的和。动作值函数
equation?tex=Q%28s%2Ca%29 :该状态下的a动作对应的值函数。

优势函数

equation?tex=%5C%5B+Q_%7B%5Cpi%7D%5Cleft%28s%2Ca%5Cright%29-V_%7B%5Cpi%7D%5Cleft%28s%5Cright%29+%5C%5D :动作值函数相比于当前状态值函数的优势。

如果优势函数大于零,则说明该动作比平均动作好,如果优势函数小于零,则说明当前动作还不如平均动作好。

3.A3C算法

A3C全称为异步优势动作评价算法(Asynchronous advantage actor-critic)。

前文讲到,神经网络训练时,需要的数据是独立同分布的,为了打破数据之间的相关性,DQN和DDPG的方法都采用了经验回放的技巧。然而经验回放需要大量的内存,打破数据的相关性,经验回放并非是唯一的方法。另外一种是异步的方法,所谓异步的方法是指数据并非同时产生,A3C的方法便是其中表现非常优异的异步强化学习算法。

A3C模型如下图所示,每个Worker直接从Global Network中拿参数,自己与环境互动输出行为。利用每个Worker的梯度,对Global Network的参数进行更新。每一个Worker都是一个A2C。

487d75f941bfea19f323711e093c9f89.png
A3C模型

A3C的伪代码如图所示:

e49465264e8c56ba59b985cc47c0d2cd.png
A3C算法

参考博客:

天津包子馅儿:Actor-Critic算法小结

相关论文:

https://arxiv.org/pdf/1602.01783.pdf

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值