深度强化学习原理--Actor-Critic(演员-评论家架构)

举报
剑指南天 发表于 2026/05/21 19:14:20 2026/05/21
【摘要】 在REINFORCE算法中,使用基于神经网络建模的价值函数作为基线,这个算法叫做Actor-Critic。这个算法可以通过价值函数控制基线,给予动作正向或者负向的梯度调整。

1.概述

在REINFORCE算法中,使用基于神经网络建模的价值函数作为基线,这个算法叫做Actor-Critic。这个算法通过价值函数控制基线,调整回报期望的梯度。

2. Actor-Critic的数学定义

当 t 时刻,回报大于状态价值期望时,给予策略正梯度,回报小于状态价值期望时,给予策略负梯度。回报等于状态价值期望时,不需要更新策略函数参数。所以价值函数的训练目标是接近 J(θ) 最大值时的Gt 。但是公式中存在一个问题,J(θ) 没有达到最大值,就无法确定 𝐺𝑡 的值。也就是说,在抵达目标之前,无法更新策略和价值函数。

3. 时序差分法(TD方法,Time Difference Method)

贝尔曼期望方程:𝑉𝜔 (𝑆𝑡)=𝔼𝜋 [𝑅𝑡+𝛾𝑉𝜔(𝑆𝑡+1)|𝑆𝑡],所以可以使用𝔼𝜋 [𝑅𝑡+𝛾𝑉𝜔(𝑆𝑡+1)|𝑆𝑡] 来近似Gt使用神经网络对价值函数建模时,以接近 𝑅𝑡+𝛾𝑉𝜔(𝑆𝑡+1) 为目标训练𝑉𝜔(𝑆𝑡) 函数。具体来说就是将 𝑉𝜔(𝑆𝑡) 和 𝑅𝑡+𝛾𝑉𝜔(𝑆𝑡+1) 的均方差作为损失函数,通过梯度下降法更新神经网络的权重。

使用TD方法训练价值函数时,使用1个时间步(或𝑛个时间步)后的结果就能进行更新。

3.1 使用1步时序差分法进行3000次倒立摆游戏,每次回报情况如下图。相比REINFORCE算法,回报有明显提升。模型训练稳定性提高很多。

①训练过程中每条轨迹回报

②测试过程中每条轨迹回报

4. 广义优势估计(Generalized Advantage Estimation,GAE)

4.1 1步TD误差表示为:𝛿 = 𝑅𝑡 + 𝛾𝑉𝜔(𝑆𝑡+1) − 𝑉𝜔(𝑆𝑡) 。在很多强化学习文献中,这个叫做优势𝐴(Advantage),表示1步TD目标 𝑅𝑡 + 𝛾𝑉𝜔(𝑆𝑡+1) 相对于基线 𝑉𝜔(𝑆𝑡) 的优势是多少。现在常用的一种方法是通过多步TD误差的计算,结合指数加权平均的方式来估算优势,也就是广义优势估计。

4.2 广义优势估计的数学推导

其中,𝜆∈[0,1] 是在 GAE 中额外引入的一个超参数。当 𝜆=0,从狭义角度看时,= 𝛿𝑡 = 𝑅𝑡 + 𝛾𝑉(𝑠𝑡+1) − 𝑉(𝑠𝑡) ,一步差分得到的优势;当𝜆=1,从广义角度看时,,是每一步差分得到的优势的完全平均值。
所以可以得到递推公式:

下面是计算GAE的过程,给定 𝛾 和 𝜆 以及每个时间步的 𝛿𝑡 之后,根据公式直接进行优势估计:

4.3 使用广义优势估计,进行3000次倒立摆游戏,每次回报情况如下图。相比REINFORCE算法,回报有明显提升。模型训练稳定性提高很多。

①训练过程中每条轨迹回报

②测试过程中每条轨迹回报

5. 总结: 通过优势算法解决了轨迹的质量参差不齐对参数更新的影响。但是在强化学习中很难找到合适的策略函数参数更新步长,使期望回报稳步上升。在训练过程中,每次策略函数参数更新的步长如果太大,容易发生训练崩溃。如果步长太小,模型学习速度就会太慢,并且如果策略函数参数更新的方向错了,也会训练崩溃。训练崩溃后就需要重新探索,需要很长时间才能恢复。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。