《self imitation learning》快速阅读
前言:
最近对自模仿学习特别感兴趣,因此调研了一堆相关的论文,最经典的一篇自然是《self imitation learning》,称为SIL
。
刚开始我搜的模仿学习,然后发现行为克隆 behavior cloning,即BC是是最简单的一种模仿学习,然后发现,他们用的都是提前提供好的专家数据,而不是智能体自己探索到的好数据。这个很明显不优雅。
看了四篇关于imitation相关的文章,在related work中我发现了 self imitation
这个关键词,才知道,原来这才是我一直想要的东西。
我需要的是智能体能够,更好的利用它过去的优秀经验。而不是简单的优先经验回放,因为PER很多情况下并不好用。
接下来简单聊聊SIL。
SIL的核心概念:
从伪代码中一眼看出,它相比于传统的on policy的算法来说,多了一个off-policy的buffer,更新的时候也多了一个L_sil
的loss,这个loss如下:
上面三个公式也非常直观,那个+
号,意味着
def max_func(x):
if x > 0:
return x
else:
return 0
带入内容,即如果当前累计回报R
大于网络拟合的V
,那么就有更新梯度的必要,如果V值本身就很大了,就别更新了。
利用这个特征来进一步的优化网络参数,对于那些优秀的经验
,他们的R
很大,但是简单的利用A2C的更新,不足以完全的利用好这些信息。
这个也是我想要的一个效果。
至于实验的性能,由于他们做了很多对比实验,在不是sota的baseline的对比中,感觉看起来还不错,引用数也挺高,有用过的同学可以交流一下~
联系方式:
ps: 欢迎做强化的同学加群一起学习:
深度强化学习-DRL:799378128
Mujoco建模:818977608
欢迎玩其他物理引擎的同学一起玩耍~
欢迎关注知乎帐号:未入门的炼丹学徒
CSDN帐号:https://blog.csdn.net/hehedadaq
极简spinup+HER+PER代码实现:https://github.com/kaixindelele/DRLib