之前一直理解的actor-critic的算法就像网上的经典图:
actor是一个policy的(深度神经)网络,critic的是一个价值或者Q网络。比如像DDPG和A3C里面提到的那样算法:
联系增强学习的一些相关actor-critic的算法分析和上图DDPG和A3C的算法框架,我一直都认为actor和critic是各自独立的网络,算法中两个网络也是独立更新的。后面再看Sim-to-Real Robot Learning from Pixels with Progressive Nets这篇文章时,对下面的图:
在这篇文章中同一个网络输出策略和价值,我还认为他们画的是简图。直到最近看REINFORCEMENT LEARNING WITH UNSUPERVISED AUXILIARY TASKS和LEARNINGTO NAVIGATEIN COMPLEX ENVIRONMENTS,如下的图:
这一系列的论文中提到的actor-critic的网络是一个共享参数的网络,我找了一段时间,也没有看到具体的出处,看github上别人的代码确实是这样实现的:
也就是说actor和critic是共享一个网络的,网络更新是根据两者的loss和来做反向传递的,不过actor的loss要仔细一点才行。注意负号的含义。
对别人来说,可能就是这样啊,对我来说,进一寸有一寸的欢喜。