发表时间:2020(ICML 2020)
文章要点:这篇文章基于SAC做简单并且有效的改进来提升效果。作者首先认为SAC里面的entropy是为了解决action saturation due to the bounded nature of the action spaces,这个意思就是说动作空间假如约束到[0-1],动作通常会在0和1两个端点处,而加了entropy可以很好缓解这个问题。然后作者提出了一个streamlined algorithm with a simple normalization scheme or with inverted gradients,可以在没有entropy的情况下达到SAC一样的效果。接着又提出了一个新的experience replay方法来重点采recent的样本(ERE),整个算法叫做Streamlined Off Policy with Emphasizing Recent Experience。
对于Bounded Action Spaces,通常的做法是用clip
或者是用tanh作为最后一层,然后再放缩
DDPG和TD3用的前者,SAC用的后者。作者想说,这两种方式都会有可能造成动作太接近两个端点值,并且由于tanh,如果网络输出的μ一开始比较大的话,其实很难再回到一个合理的范围内
作者把这个问题叫做squashing exploration problem。作者提出了一个简单的方法来缓解这个问题,就是对输出的均值\(\mu\)先做归一化
另一个改进是Inverting Gradients,就是不去归一化均值,而是在计算梯度的时候根据均值的量级来调整梯度大小
最后一个改进就是Emphasizing Recent Experience,大致思路就是在采batch的时候,第一个batch从所有样本里采,后面的batch的采样范围逐渐缩小到最近的样本
看起来效果都很一般
总结:拼凑的痕迹挺重的,而且感觉就没有啥提升,不知道为啥就能中。
疑问:ERE里面假设会采样很多个mini-batch,但是同时不是每个step就采一个batch更新吗,从伪代码里看的话应该是每个episode更新一下,而不是每个step更新。