强化学习的AC类算法(Actor-Critic Algorithms) 2024-06-30 作者 C3P00 在强化学习中,AC类算法(Actor-Critic Algorithms)是非常重要的一类方法。这些算法结合了策略梯度(Policy Gradient)和价值函数(Value Function)方法的优点,通过一个“演员”(Actor)和一个“评论家”(Critic)来协同工作。 1. 基本概念 Actor(演员): Actor 负责选择动作。它使用策略函数 ( \pi_\theta(a|s) ) 来决定在状态 ( s ) 下选择动作 ( a ) 的概率。Actor 的目标是优化策略参数 ( \theta ),以最大化累积奖励。 Critic(评论家): Critic 负责评估 Actor 选择的动作的好坏。它使用一个价值函数 ( V_w(s) ) 或 ( Q_w(s, a) ) 来估计当前策略下的状态值或动作值。Critic 的目标是优化价值函数的参数 ( w ),以准确评估给定状态或状态-动作对的价值。 2. 经典的AC类算法 2.1 Advantage Actor-Critic (A2C) A2C 是一种同步版本的 Actor-Critic 算法,其中多个并行的环境实例同时运行,并共享同一个 Actor 和 Critic。 策略更新(Actor):[\theta \leftarrow \theta + \alpha \nabla_\theta \log \pi_\theta(a_t|s_t) A_t]其中 ( A_t = Q(s_t, a_t) – V(s_t) ) 是优势函数(Advantage Function),表示动作 ( a_t ) 相对于状态 ( s_t ) 的优势。 价值函数更新(Critic):[w \leftarrow w + \beta \nabla_w (r_t + \gamma V_w(s_{t+1}) – V_w(s_t))^2]这是一个 TD(Temporal Difference)误差,用于更新状态值函数 ( V_w )。 2.2 Asynchronous Advantage Actor-Critic (A3C) A3C 是 A2C 的异步版本,它允许多个异步的 Actor-Critic 线程在独立的环境实例中运行,并异步更新全局的 Actor 和 Critic 参数。这种异步更新可以显著提高训练速度和稳定性。 3. 现代的AC类算法 3.1 Proximal Policy Optimization (PPO) PPO 是一种改进的策略梯度方法,旨在解决策略更新不稳定的问题。它通过限制每次策略更新的步长,保证策略的稳定性。 目标函数:[L^{CLIP}(\theta) = \mathbb{E}t \left[ \min \left( r_t(\theta) A_t, \text{clip}(r_t(\theta), 1 – \epsilon, 1 + \epsilon) A_t \right) \right] ] 其中 ( r_t(\theta) = \frac{\pi\theta(a_t|s_t)}{\pi_{\theta_{\text{old}}}(a_t|s_t)} ) 是策略概率比,( \text{clip} ) 操作限制策略比的变化范围。 3.2 Deep Deterministic Policy Gradient (DDPG) DDPG 是一种适用于连续动作空间的 Actor-Critic 算法。它结合了 DQN(Deep Q-Network)和策略梯度方法。 Actor 网络: 直接输出动作,更新时使用目标网络来稳定训练。 Critic 网络: 估计状态-动作值 ( Q(s, a) ),也使用目标网络来稳定训练。 3.3 Soft Actor-Critic (SAC) SAC 是一种基于最大熵强化学习的 Actor-Critic 算法,通过在目标函数中加入熵项,鼓励策略的探索性。 目标函数:[J(\pi) = \sum_{t=0}^{T} \mathbb{E}{(s_t, a_t) \sim \rho\pi} \left[ r(s_t, a_t) + \alpha \mathcal{H}(\pi(\cdot|s_t)) \right]]其中 ( \mathcal{H}(\pi(\cdot|s_t)) ) 是策略的熵,( \alpha ) 是权重系数,控制探索与利用的平衡。 总结 AC类算法通过结合策略梯度和价值函数方法,提供了一种高效且稳定的策略优化方法。我们已经介绍了几种经典和现代的AC类算法,下面继续介绍一些现代方法,以及总结AC类算法的优势和应用场景。 其他现代AC类算法 3.4 Twin Delayed DDPG (TD3) TD3 是 DDPG 的改进版本,旨在解决 DDPG 中的过估计问题。TD3 引入了以下几个关键技术: 双重 Q 网络: 使用两个 Critic 网络来估计 Q 值,取其较小值来避免过估计。 延迟策略更新: Actor 网络的更新频率低于 Critic 网络,以减少策略更新的波动。 目标策略扰动: 在计算目标 Q 值时,对 Actor 网络输出的动作添加噪声,以平滑目标值。 3.5 Trust Region Policy Optimization (TRPO) TRPO 是一种优化策略梯度的算法,通过限制策略更新的幅度来保证训练稳定性。TRPO 使用 KL 散度来限制新旧策略之间的变化: 目标函数:[\max_\theta \mathbb{E}{s \sim \rho{\pi_{\text{old}}}, a \sim \pi_{\text{old}}} \left[ \frac{\pi_\theta(a|s)}{\pi_{\text{old}}(a|s)} A^{\pi_{\text{old}}}(s, a) \right]]其中约束条件为:[\mathbb{E}{s \sim \rho{\pi_{\text{old}}}} \left[ D_{KL}(\pi_{\text{old}}(\cdot|s) | \pi_\theta(\cdot|s)) \right] \leq \delta]其中 ( D_{KL} ) 是 KL 散度,( \delta ) 是一个小常数,控制策略更新的幅度。 AC类算法的优势 结合策略和价值评估: AC类算法既包含策略(Actor)更新,也包含价值(Critic)评估。Critic 提供更稳定的梯度估计,从而使策略更新更加高效和稳定。 适应性强: AC类算法能够适应不同的环境和任务,特别是连续动作空间中的任务。这使得它们在机器人控制、自动驾驶等复杂领域具有广泛应用。 探索与利用平衡: 现代的 AC 类算法(如 SAC)通过引入熵项,平衡了策略的探索和利用能力,提高了训练效率和策略的鲁棒性。 AC类算法的应用场景 AC类算法在许多实际应用中表现出色,以下是一些典型的应用场景: 机器人控制: 机器人需要在复杂的物理环境中做出连续的动作决策,AC类算法能够高效地处理这种连续动作空间的问题。 自动驾驶: 自动驾驶系统需要在动态环境中实时决策,AC类算法能够帮助车辆在各种情况下做出合理的驾驶决策。 游戏 AI: 在复杂的游戏环境中,AC类算法能够帮助 AI 角色学习最佳策略,提升游戏体验。 金融交易: 在金融市场中,AC类算法可以用于优化交易策略,最大化投资回报。 总结 AC类算法通过结合策略梯度和价值函数方法,提供了一种高效且稳定的策略优化方法。无论是经典的 A2C 和 A3C. 还是现代的 PPO、DDPG、SAC 和 TD3,它们都在各自的应用场景中展现了强大的性能和适应性。通过不断的发展和改进,AC类算法在强化学习领域中将继续发挥重要作用。✅
在强化学习中,AC类算法(Actor-Critic Algorithms)是非常重要的一类方法。这些算法结合了策略梯度(Policy Gradient)和价值函数(Value Function)方法的优点,通过一个“演员”(Actor)和一个“评论家”(Critic)来协同工作。
1. 基本概念
2. 经典的AC类算法
2.1 Advantage Actor-Critic (A2C)
A2C 是一种同步版本的 Actor-Critic 算法,其中多个并行的环境实例同时运行,并共享同一个 Actor 和 Critic。
[
\theta \leftarrow \theta + \alpha \nabla_\theta \log \pi_\theta(a_t|s_t) A_t
]
其中 ( A_t = Q(s_t, a_t) – V(s_t) ) 是优势函数(Advantage Function),表示动作 ( a_t ) 相对于状态 ( s_t ) 的优势。
[
w \leftarrow w + \beta \nabla_w (r_t + \gamma V_w(s_{t+1}) – V_w(s_t))^2
]
这是一个 TD(Temporal Difference)误差,用于更新状态值函数 ( V_w )。
2.2 Asynchronous Advantage Actor-Critic (A3C)
A3C 是 A2C 的异步版本,它允许多个异步的 Actor-Critic 线程在独立的环境实例中运行,并异步更新全局的 Actor 和 Critic 参数。这种异步更新可以显著提高训练速度和稳定性。
3. 现代的AC类算法
3.1 Proximal Policy Optimization (PPO)
PPO 是一种改进的策略梯度方法,旨在解决策略更新不稳定的问题。它通过限制每次策略更新的步长,保证策略的稳定性。
[
L^{CLIP}(\theta) = \mathbb{E}t \left[ \min \left( r_t(\theta) A_t, \text{clip}(r_t(\theta), 1 – \epsilon, 1 + \epsilon) A_t \right) \right] ] 其中 ( r_t(\theta) = \frac{\pi\theta(a_t|s_t)}{\pi_{\theta_{\text{old}}}(a_t|s_t)} ) 是策略概率比,( \text{clip} ) 操作限制策略比的变化范围。
3.2 Deep Deterministic Policy Gradient (DDPG)
DDPG 是一种适用于连续动作空间的 Actor-Critic 算法。它结合了 DQN(Deep Q-Network)和策略梯度方法。
3.3 Soft Actor-Critic (SAC)
SAC 是一种基于最大熵强化学习的 Actor-Critic 算法,通过在目标函数中加入熵项,鼓励策略的探索性。
[
J(\pi) = \sum_{t=0}^{T} \mathbb{E}{(s_t, a_t) \sim \rho\pi} \left[ r(s_t, a_t) + \alpha \mathcal{H}(\pi(\cdot|s_t)) \right]
]
其中 ( \mathcal{H}(\pi(\cdot|s_t)) ) 是策略的熵,( \alpha ) 是权重系数,控制探索与利用的平衡。
总结
AC类算法通过结合策略梯度和价值函数方法,提供了一种高效且稳定的策略优化方法。我们已经介绍了几种经典和现代的AC类算法,下面继续介绍一些现代方法,以及总结AC类算法的优势和应用场景。
其他现代AC类算法
3.4 Twin Delayed DDPG (TD3)
TD3 是 DDPG 的改进版本,旨在解决 DDPG 中的过估计问题。TD3 引入了以下几个关键技术:
3.5 Trust Region Policy Optimization (TRPO)
TRPO 是一种优化策略梯度的算法,通过限制策略更新的幅度来保证训练稳定性。TRPO 使用 KL 散度来限制新旧策略之间的变化:
[
\max_\theta \mathbb{E}{s \sim \rho{\pi_{\text{old}}}, a \sim \pi_{\text{old}}} \left[ \frac{\pi_\theta(a|s)}{\pi_{\text{old}}(a|s)} A^{\pi_{\text{old}}}(s, a) \right]
]
其中约束条件为:
[
\mathbb{E}{s \sim \rho{\pi_{\text{old}}}} \left[ D_{KL}(\pi_{\text{old}}(\cdot|s) | \pi_\theta(\cdot|s)) \right] \leq \delta
]
其中 ( D_{KL} ) 是 KL 散度,( \delta ) 是一个小常数,控制策略更新的幅度。
AC类算法的优势
AC类算法的应用场景
AC类算法在许多实际应用中表现出色,以下是一些典型的应用场景:
总结
AC类算法通过结合策略梯度和价值函数方法,提供了一种高效且稳定的策略优化方法。无论是经典的 A2C 和 A3C. 还是现代的 PPO、DDPG、SAC 和 TD3,它们都在各自的应用场景中展现了强大的性能和适应性。通过不断的发展和改进,AC类算法在强化学习领域中将继续发挥重要作用。✅