Actor-Critic 强化学习方法



什么是 Actor-Critic 方法?

Actor-critic 算法是一种强化学习类型,它将基于策略的技术与基于价值的方法相结合。这种结合是为了克服单独使用每种技术的局限性。

在 Actor-critic 框架中,代理(Actor)制定决策策略,而价值函数(Critic)评估 Actor 所采取的动作。同时,Critic 通过评估这些动作的质量和价值来分析这些动作。这种双重作用允许该方法通过利用策略和价值函数的优势来保持探索和利用之间的平衡。

Actor-Critic 方法的工作原理

Actor-critic 方法是基于策略和基于价值的技术的组合,主要旨在学习一种可以提高预期累积奖励的策略。所需的两个主要组件是:

  • Actor - 此组件负责根据当前策略选择动作。它通常表示为 Πθ(a|s),表示在状态 s 中采取动作 a 的概率。
  • Critic - Critic 通过估计价值函数来评估 Actor 所采取的动作。它用 V(s) 表示,计算预期回报。

Actor-Critic 方法的分步工作原理

Actor-critic 方法的主要目标是 Actor 选择一个动作(策略),而 Critic 评估这些动作的质量(价值函数),并将此反馈用于改进 Actor 的策略和 Critic 的价值评估。以下是 Actor-critic 方法的伪算法:

Working of Actor-Critic Method
  • 从初始化 Actor 的策略参数、Critic 的价值函数、环境以及选择初始状态 s0 开始。
  • 使用 Actor 网络中的策略 Πθ 对 {s_t,a_t} 进行采样。
  • 评估优势函数。它被称为 TD误差 δ。在 Actor-critic 算法中,优势函数由 Critic 网络生成。
  • 评估梯度。
  • 更新策略参数 (θ)
  • 根据基于价值的强化学习调整 Critic 的权重。δt 表示优势函数。
  • 依次重复上述步骤以找到最优策略。

Actor-Critic 方法的优势

Actor-critic 方法提供了多种优势:

  • 提高样本效率 - Actor-critic 算法的集成方法导致了更好的样本效率,需要更少的与环境交互才能达到最佳性能。
  • 更快的收敛速度 - 该技术能够同时更新策略和价值函数,从而在训练过程中实现更快的收敛速度,从而能够更快地适应学习任务。
  • 动作空间的灵活性 - Actor-Critic 模型可以有效地管理离散和连续的动作空间,为各种强化学习挑战提供适应性。
  • 离策略学习 - 从过去的经验中获取知识,即使它不严格遵守当前的策略。

Actor-Critic 方法的挑战

Actor-critic 方法的一些关键挑战需要解决:

  • 高方差 - 即使使用优势函数,Actor-critic 方法在估计梯度时仍然存在高方差问题。可以使用广义优势估计 (GAE) 等方法来解决此挑战。
  • 训练稳定性 - Actor 和 Critic 的同时训练可能导致不稳定,尤其是在 Actor 的策略与 Critic 的价值函数之间存在较差的一致性时。可以使用信任区域策略优化 (TRPO) 和近端策略优化 (PPO) 等技术来解决此挑战。
  • 偏差-方差权衡 - 计算策略梯度时偏差和方差之间的平衡有时会导致收敛速度变慢,这在强化学习领域是一个相当大的挑战。

Actor-Critic 方法的变体

Actor-critic 方法的一些关键变体包括:

  • 优势 Actor-Critic (A3C) - A2C(优势 Actor-critic)是 Actor-critic 算法的一种变体,它结合了优势函数的概念。
  • 异步优势 Actor-Critic (A3C) - 这种方法使用多个并行运行的代理来改进共同的策略和价值函数。它还有助于稳定训练并提高效率。
  • 软 Actor-Critic (SAC) - SAC 是一种离策略方法,它结合了熵正则化以促进探索。其目标是优化预期回报和策略的不确定性。SAC 的关键特征包括通过向奖励添加熵项来平衡探索和利用。
  • 深度确定性策略梯度 (DDPG) - DDPG 旨在用于包含连续动作空间的环境。它将 Actor-critic 方法与确定性策略梯度相结合。DDPG 的关键特征包括使用确定性策略和目标网络来稳定训练。
  • Q-Prop - Q-Prop 是另一种 Actor-critic 方法。在之前的方法中,实现了时间差分学习以减少方差,从而导致偏差增加。Q-Prop 通过使用控制变量的想法,在不引入偏差的情况下减少了梯度计算中的方差。

优势 Actor-Critic (A2C)

A2C(优势 Actor-critic)是 Actor-critic 算法的一种变体,它结合了优势函数的概念。该函数评估与给定状态下的平均动作相比,一个动作在多大程度上更好。通过包含此优势信息,A2C 将学习过程引导到比在该状态下通常执行的动作更有价值的动作。

A2C 算法

A2C 算法中涉及的步骤包括:

  • 初始化策略参数、价值函数参数和环境。
  • 代理根据当前策略与环境交互,并获得回报。
  • 根据当前策略和价值估计计算优势函数 A(s,a)
  • 同时使用策略梯度更新 Actor 的参数,并使用基于价值的方法更新 Critic 的参数。

异步优势 Actor-Critic (A3C)

异步优势 Actor-Critic (A3C) 算法由 Volodymyr Mnih 及其同事于 2016 年提出。它主要用于利用来自多个并行代理的异步更新,这有助于克服传统强化学习算法中发现的稳定性和样本效率问题。

A3C 算法

A3C 算法的分步分解:

  • 初始化全局网络。
  • 启动并发工作器,每个工作器都配备了自己的本地网络。这些工作器与环境交互以收集经验(状态、动作、奖励、下一个状态)。
  • 在每一轮训练的每个步骤中,工作进程都会观察状态,根据当前策略选择动作,并接收奖励和下一状态。此外,工作进程还会计算优势函数,以衡量预测值与预期实际奖励之间的差异。
  • 更新评论家(价值函数)和演员(策略)。
  • 当一个工作进程刷新其本地模型时,来自多个工作进程的梯度会异步地组合起来以修改全局模型。这将使每个工作进程的更新相互独立,从而减少相关性并导致更稳定、更有效的训练。

优势演员-评论家 (A2C) 与异步优势演员-评论家 (A3C)

下表展示了**A2C(优势演员-评论家)**和**A3C(异步优势演员-评论家)**之间的关键区别 -

特征 A2C(优势演员-评论家) A3C(异步优势演员-评论家)
并行性 它使用单个工作进程(代理)来更新模型;因此称为单线程。 它使用多个工作进程并行探索完整环境,因此称为多线程。
模型更新 更新同步执行,使用来自工作进程的梯度。 更新在各个工作进程之间异步发生,每个工作进程独立更新全局模型。
学习速度 应用标准梯度下降,并在每个步骤之后更新模型。 异步更新能够实现更规律和分布式的模型修改,这可能提高稳定性并加速收敛。
稳定性 稳定性较差,因为同步更新可能导致模型收敛过快。 由于来自各个工作进程的异步更新,相关性降低,因此稳定性相对较高。
效率 效率较低,因为只有一个工作进程探索环境。 采样效率更高,因为多个工作进程并行探索环境。
实现 易于实现。 相对复杂,因为它必须管理多个代理。
收敛速度 收敛速度较慢,因为一次只有一个代理从经验中学习。 由于并行代理同时探索环境的不同部分,因此收敛速度更快。
计算成本 计算成本较低。 计算成本较高。
用例 适用于计算资源较少的简单环境。 适用于需要并行性和更稳健探索的更复杂的环境。
广告