问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

强化学习中的Actor-Critic方法详解

创作时间:
作者:
@小白创作中心

强化学习中的Actor-Critic方法详解

引用
CSDN
1.
https://blog.csdn.net/rellvera/article/details/145708659

Actor-Critic方法是强化学习中一种重要的策略优化方法,它结合了基于策略的优化和基于价值的评估,通过actor和critic两个组件的协同工作来提升学习效率和性能。本文将详细介绍Actor-Critic方法的各种变体,包括最简单的QAC、Advantage Actor-Critic(A2C)、重要性采样和Off-Policy Actor-Critic,以及Deterministic Actor-Critic (DPG)。

一、最简单的Actor-Critic(QAC)

Actor-Critic算法与策略梯度方法本质上是相同的,但不同的是,Actor-Critic方法将基于价值的方法引入到策略梯度中。

  • Actor:对应策略,负责更新策略参数θ。
  • Critic:对应策略评估/价值估计过程,通过计算动作价值来评估当前策略的好坏。

回顾策略梯度方法,最终需要计算的公式1(未显示)实际上就是一个actor,因为它在更新参数θ,而θ的更新就是策略的更新。公式1中的q_t(s_t, a_t)就是一个critic,通过计算动作价值来评估当前策略。

计算q_t(s_t, a_t)有两种方法:

  1. 蒙特卡洛方法:从状态(s, a)出发收集一个episode,计算这个episode所对应的return作为q_t(s_t, a_t)的近似值。这种方式计算出的q_t(s_t, a_t),再配合算法,就是REINFORCE。

  2. TD方法:用TD方法来估计q_t(s_t, a_t),这种方法被称为actor-critic。

最简单的actor critic算法的伪代码如下:

  1. 目标是优化函数J(θ)。
  2. 根据当前策略生成经验数据(st, at, rt+1, st+1, at+1)。
  3. 在critic部分用Sarsa算法计算q(s, a)。
  4. 在actor部分使用critic计算出的q(s, a)来更新策略。
  5. 使用更新后的策略生成新的数据。

补充说明:

  • Critic对应Sarsa+价值函数近似
  • Actor对应策略更新算法
  • 这是一个on-policy算法
  • 这是最简单的Actor-Critic算法之一

二、Advantage Actor-Critic(A2C)

A2C是QAC的推广,其基本思想是在QAC的基础上引入一个偏置量来减少估计的方差。

性质

策略梯度梯度对于引入一个新的偏置是不会变化的。例如,引入b(S)不会影响梯度的结果。

为什么引入b(S)对计算梯度没有影响?

通过推导可以证明,E[X]和b(S)无关。

为什么要考虑这个baseline?它究竟有什么用?

虽然E[X]和b(S)无关,但X的方差var(X)与b(S)有关。目标是找到一个最佳的baseline,使X的方差最小。方差越小,在采样时误差也越小。

在REINFORCE和QAC中,没有使用baseline(即b=0)。最优的b*的计算公式较为复杂,通常使用vπ(s)作为近似。

定义一个新的量δπ(S, A),称为优势函数:

δπ(S, A) = qπ(S, A) - vπ(S)

vπ(S)相当于qπ(S, A)的平均值。如果当前的qπ(S, A)大于vπ(S),说明这个动作a的效果不错,δπ(S, A)为正值,选择(S, A)的概率会变大。

优势函数也可以用TD error来近似,这样可以简化计算,只需要一个神经网络来近似vπ(S)。

这是A2C算法的伪代码:

  1. Critic部分使用TD算法和价值函数近似。

三、重要性采样和Off-Policy Actor-Critic

之前介绍的策略都是on-policy的,即采样和更新都遵循同一个策略π。但我们可以使用重要性采样将on-policy转换为off-policy。

1. 一些简单的例子

假设有一个随机变量X,其分布未知,我们想通过采样来估计E[X]。

  • 如果样本是在X的真实分布p0上采样的,那么样本均值会收敛到真实均值。
  • 如果样本是在另一个分布p1上采样的,那么样本均值会偏离真实均值。

2. 重要性采样

可以通过估计E_{X~p1}[f(X)]来估计满足分布p0的随机变量X的期望。重要性采样的计算方式如下:

小结:

  • 有一些服从p1分布的样本x_i,计算结果是在p1分布下的expectation。
  • 目标是求fˉ,fˉ的计算结果是在p0分布下的expectation。

3. off-policy policy gradient 的理论

假设β是一个行为策略,用来生成经验采样;π是目标策略,目标是优化J(θ)函数。

这个目标函数对应的梯度与on-policy的区别在于,on-policy中A~π,但在off-policy中A~β。此外,还多了一个重要性采样的项。

使用梯度上升方法优化时,可以在梯度中加上一个baseline b(s),一般设置b(S) = vπ(S)。

公式1中使用了随机梯度计算梯度,并加上了vπ(S)作为baseline。公式2在公式1的基础上加了一个TD error,得到公式3。最后以公式3来计算梯度。公式4是对公式3的变形,目的是提取出step size。

这是对应的伪代码:

四、Deterministic Actor-Critic (DPG)

前面介绍的策略都是stochastic的,即π(a|s,θ)总是大于0。下面介绍Deterministic Actor-Critic。

在确定性策略中,策略不再用π(a|s,θ)表示,而是用a = μ(s,θ)表示,其输出直接是一个具体的动作a。μ是状态空间到动作空间的映射,可以用神经网络实现。

确定性策略梯度的目标函数J(θ)。其中d0(s)表示概率分布。d(s)是独立于μ的,在这种情况下,梯度更容易计算。

这是求出来的梯度结果。这是一个off-policy算法。

然后用梯度上升的方法进行优化。

伪代码如下:

补充说明:

  • 这是一个off-policy算法,其中行为策略是β,目标策略是μ。
  • β可以用μ+noise来代替。

五、总结

从2025年11月底开始断断续续学习,到今天终于完成了这门课的第一遍学习。由于基础有限,部分知识还没能完全消化。希望在后续实践中不断思考、学习。

赵老师在课程中提到:“关于学具有系统性的知识,建议放弃速成的想法,比如一小时入门,一上午精通。很多焦虑都来源于时间安排不合适。举个例子,读一篇论文需要五天,但你只给自己一天的时间,到晚上也许发现,连introduction部分都没搞明白。但是如果给自己足够的时间,心态放平,稳扎稳打,也许三天就可以读完一篇论文。” 这句话深受启发。做学问切忌心浮气躁,应该放平心态,给自己一些消化和适应的时间。在以后的科研生活中,也要时刻铭记这一点。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号