策略梯度算法的引入表明策略算法更好,因为它直接优化策略而不需要先计算 Q。那么为什么他们在等式中使用 Q 呢?他们如何在不先计算 Q 函数的情况下直接计算整个事物?
2 回答
为什么PG不需要计算Q?
如果你更进一步,你会看到
这是因为
那么你不需要有一个单独的网络来估计 Q(或)V 值。您可以通过执行一个情节的策略来计算回报 $G_t$,然后为您的策略网络参数应用策略梯度更新,即
上面描述的是vanilla PG(REINFORCE),你可以在下面找到算法伪代码(来源:CMU Deep RL (10-703)):
另一个很好的参考是这里。
此外:
这总是正确的吗?
您也可以参考上述文章中描述的 Actor-Critic。虽然 REINFORCE 不需要计算 Q,但如果你可以在策略之外学习 V,它将辅助策略梯度更新 ==> Actor-Critic 方法。
A2C 的算法伪代码如下所示(来源:CMU Deep RL (10-703))。
Policy gradients真正需要的不是它可以去除Q函数,而是帮助在连续动作空间(或大动作空间)中采取行动。在连续空间中,如果我们只使用 Q 函数,我们必须将输入中的所有动作发送到 Q 函数估计器,和/或需要针对情节中的每个状态运行优化以找到最佳动作。它在计算上非常昂贵。为了摆脱这种优化,使用了策略估计器,它是通过策略梯度学习的。正如另一个答案中所解释的那样,策略梯度中不一定需要 Q 函数/ V 函数,但使用 so 实际上有帮助,因为
我们可以直接进行 TD 更新或使用其他方法,而不是使用完整的 Monte-Carlo 部署。
如果我们使用优势函数/更多方法,它会进一步减少梯度的方差,因为 Monte-Carlo 回报有很多方差。
通过使用策略网络,您可以避免运行优化算法来在每个步骤中找到最佳操作。
通过使用 Q/V 网络,您可以帮助进行策略梯度训练。