演员-评论家算法是什么?一个负责行动、一个负责打分
演员-评论家算法(Actor-Critic),也译作行为-评判算法,是强化学习中一类非常重要的方法。它由两个部分组成:“演员”负责根据当前的情况决定采取什么行动,“评论家”负责评价这个行动的好坏,并把评价反馈给演员,帮助它改进。这种结构结合了强化学习中两大类方法的优点。
两类强化学习方法
强化学习主要有两类思路。基于价值的方法:学习每个状态或每个动作的价值,也就是从这里出发预期能获得多少奖励,然后选择价值最高的动作,比如 Q 学习和深度 Q 网络。它们擅长处理离散的、数量不多的动作,但在动作是连续的情况下,比如机器人关节转动的角度,就很难直接使用。基于策略的方法:直接学习策略本身,也就是在每个状态下选择各个动作的概率,然后通过策略梯度方法,让带来高奖励的动作被选中的概率增大。它能自然地处理连续动作,但有一个缺点:它通常要等到一整个回合结束后,根据最终获得的总奖励来调整策略,而总奖励受到大量随机因素的影响,导致学习信号的波动很大,也就是方差很大,学习缓慢而不稳定。
演员和评论家如何配合
演员-评论家方法把两者结合起来。演员就是策略:给定当前的状态,它输出要采取的动作或动作的概率分布。评论家就是价值函数:它估计当前状态有多好,或者在当前状态下采取某个动作有多好。工作的过程是这样的:演员在当前状态下采取一个动作,环境给出奖励并转移到新的状态;评论家根据这次的奖励和它对新状态价值的估计,判断这个动作的结果比它原先预期的好还是差,这个差值叫作时序差分误差,或者用优势函数来表示,也就是“这个动作比平均水平好多少”;演员根据这个评价来调整策略:比预期好的动作,以后更多地采取,比预期差的动作,以后少采取;同时,评论家也根据实际的结果更新自己的价值估计,让评价越来越准确。
可以打个比方:演员在舞台上表演,评论家在台下观看,每演完一段就告诉演员“这段比我预想的好”或者“这段不太行”,演员据此改进表演,评论家也在观看中不断提高自己的鉴赏水平。与只看最终总奖励相比,评论家每一步都能给出及时的反馈,大大降低了学习信号的波动,让学习更快、更稳定。
代表性的算法
A3C 和 A2C:DeepMind 在 2016 年提出的异步优势演员-评论家算法(A3C),让多个智能体在多个环境副本中同时探索,并行地更新共享的网络;A2C 是它的同步版本。DDPG:适用于连续动作的确定性策略演员-评论家方法,常用于机器人控制。TD3:对 DDPG 的改进,缓解了价值估计过高的问题。SAC(软演员-评论家):在追求高奖励的同时,鼓励策略保持一定的随机性,以促进探索,训练稳定,被广泛用于机器人学习。PPO(近端策略优化):通常也采用演员-评论家的结构,通过限制每次策略更新的幅度来保证稳定,是目前最常用的强化学习算法之一,也被用于大语言模型基于人类反馈的强化学习:在那里,大语言模型就是演员,另有一个价值网络扮演评论家的角色。近年来提出的 GRPO 等方法则省去了单独的评论家网络,用同一问题下多个回答的平均奖励作为基准,以节省计算和显存。