深度强化学习课程文档
优势Actor-Critic (A2C)
并获得增强的文档体验
开始使用
优势Actor-Critic (A2C)
使用 Actor-Critic 方法减少方差
减少 Reinforce 算法方差并更快更好地训练代理的解决方案是结合使用基于策略和基于价值的方法:Actor-Critic 方法。
要理解 Actor-Critic,想象你在玩一个视频游戏。你可以和朋友一起玩,他会给你一些反馈。你是 Actor,你的朋友是 Critic。

一开始你不知道怎么玩,所以你会随机尝试一些动作。Critic 会观察你的动作并提供反馈。
从这个反馈中学习,你将更新你的策略,并能更好地玩这个游戏。
另一方面,你的朋友(Critic)也会更新他们提供反馈的方式,以便下次做得更好。
这就是 Actor-Critic 背后的思想。我们学习两种函数近似
一种策略,它控制着我们代理的行动方式
一个价值函数,通过衡量所采取行动的优劣来辅助策略更新
Actor-Critic 过程
现在我们已经了解了 Actor-Critic 的大致情况,接下来我们深入了解 Actor 和 Critic 在训练过程中如何共同改进。
正如我们所见,在 Actor-Critic 方法中,有两种函数近似(两个神经网络)
- Actor,一个由 theta 参数化的策略函数
- Critic,一个由 w 参数化的价值函数
让我们看看训练过程,了解 Actor 和 Critic 如何优化
在每个时间步 t,我们得到当前状态从环境中获取,并将其作为输入传递给我们的 Actor 和 Critic。
我们的策略接收状态并输出一个动作.

- Critic 也将该动作作为输入,并使用和,计算在该状态下执行该动作的价值:Q 值。

- 在环境中执行的动作会输出一个新状态和一个奖励 .

- Actor 使用 Q 值更新其策略参数。

由于其更新的参数,Actor 会在给定新状态.
生成下一个要执行的动作。

在 Actor-Critic (A2C) 中添加优势
我们可以通过使用优势函数作为 Critic,而不是动作价值函数来进一步稳定学习。
其思想是优势函数计算一个动作相对于在某个状态下其他可能动作的相对优势:在某个状态下采取该动作比该状态的平均价值好多少。它通过从状态-动作对中减去该状态的平均价值来计算。

换句话说,这个函数计算的是如果在该状态下采取这个动作,我们比在该状态下获得的平均奖励多获得的额外奖励。
额外奖励是指超出该状态预期价值的部分。
- 如果 A(s,a) > 0:我们的梯度朝着该方向推进。
- 如果 A(s,a) < 0(我们的动作表现比该状态的平均价值差),我们的梯度则朝相反方向推进。
实现这个优势函数的问题在于它需要两个价值函数——和。幸运的是,我们可以使用 TD 误差作为优势函数的良好估计器。
