llan-ml/tesp

关于shared policy的更新问题

zstbackcourt opened this issue · 5 comments

在论文中给出的算法伪码,我理解的是,不论是task encoder的更新还是策略的更新都是直接对公式(10)进行SGD,这是一个meta-update,应该可以简单地理解成一个梯度更新。但是在源码中,我看到了ppo和a3c以及它们的loss,请问tesp需要借助ppo或者a3c的策略更新方式么?

在meta-RL中,meta-update时一般用PPO或者TRPO进行RL loss的优化,fast-update中用VPG进行RL loss的更新。这个在Section 5.1最后一段有提(参照MAML原文中的做法)。

源码中A3C的loss其实就是在算VPG的loss,只是我命名直接拿了RLlib中的名字,这里不涉及A3C中的异步更新操作。

另外一点是,对于VPG和PPO的更新,都是用一个linear baseline去直接估算advantage,没有用critic网络。

你好,我想问一下,上面“对于VPG和PPO的更新,都是用一个linear baseline去直接估算advantage”这句话是什么意思,可以详细解释一下吗,感谢!

在优化RL的目标函数时,为了减小方差,我们需要根据整条episode中所有reward去计算advantage。估计advantage的方式有很多,PPO原文、actor-critic等是用很多episode的reward额外训练一个神经网络。我们这里是用一个linear baseline实时对每条episode进行估计,参考https://arxiv.org/abs/1604.06778和MAML。

哦哦大概有点思路了,因为对你的文章挺感兴趣的,也仔细地研究了几个星期,但是代码确实有点难懂(特别是rllib的部分),最近我在用pytorch复现你的代码,但是遇到很多问题和疑惑,不知道方不方便加一下你的微信或qq,谢谢。

可以把你的微信发到我邮箱,我加你。