介绍
Actor-critic方法仍然是策略梯度方法。
- 它们强调结合策略梯度和基于价值的方法的结构。
什么是“actor”和“critic”?
- 在这里,“actor”指的是策略更新。之所以称为actor,是因为策略将被应用来采取行动。
- 在这里,“critic”指的是策略评估或价值估计。之所以称为critic,是因为它通过评估策略来批评策略。
最简单的actor-critic(QAC)
Actor - Critic 算法结合了策略梯度(Actor)和值函数估计(Critic)两种方法。Actor 负责根据当前策略选择动作,而 Critic 负责评估这些动作的价值,二者相互协作以优化策略。
策略梯度
- 标量度量 J(θ)J(\theta)J(θ),可以是 vˉπ\bar{v}_\pivˉπ 或 rˉπ\bar{r}_\pirˉπ。
- 最大化 J(θ)J(\theta)J(θ) 的梯度上升算法是
θt+1=θt+α∇θJ(θt)=θt+αES∼η,A∼π[∇θlnπ(A∣S,θt)qπ(S,A)] \begin{align*} \theta_{t+1} &= \theta_t + \alpha \nabla_\theta J(\theta_t) \\ &= \theta_t + \alpha E_{S \sim \eta, A \sim \pi} \left[ \nabla_\theta \ln \pi(A|S, \theta_t) q_\pi(S, A) \right] \end{align*} θt+1=θt+α∇θJ(θt)=θt+αES∼η,A∼π[∇θlnπ(A∣S,θt)qπ(S,A)] - 随机梯度上升算法是
θt+1=θt+α∇θlnπ(at∣st,θt)qt(st,at) \theta_{t+1} = \theta_t + \alpha \nabla_\theta \ln \pi(a_t|s_t, \theta_t) q_t(s_t, a_t) θt+1=θt+α∇θlnπ(at∣st,θt)qt(st,at)
我们可以从这个算法中看到“actor”和“critic”:
- 这个算法对应于actor!
- 估计 qt(s,a)q_t(s, a)qt(s,a) 的算法对应于critic!
如何获取 qt(st,at)q_t(s_t, a_t)qt(st,at)?
到目前为止,我们研究了两种估计动作值的方法:
- 蒙特卡洛学习:如果使用MC,则相应的算法称为REINFORCE或蒙特卡洛策略梯度。
- 我们在上次讲座中介绍过。
- 时间差分学习:如果使用TD,则这种算法通常称为actor-critic。
- 我们将在本文介绍。
QAC
- 目标:通过最大化 J(θ)J(\theta)J(θ) 寻找最优策略。
- 这里的 J(θ)J(\theta)J(θ) 通常是策略 π(a∣s,θ)\pi(a|s, \theta)π(a∣s,θ) 的长期累积奖励的期望,它衡量了策略 θ\thetaθ 的优劣程度。
- 算法的核心就是不断调整策略参数 θ\thetaθ,使得 J(θ)J(\theta)J(θ) 达到最大值。
- 在每个episode中的时间步ttt,执行以下操作:
- 生成ata_tat,遵循π(a∣st,θt)\pi(a|s_t, \theta_t)π(a∣st,θt),观察rt+1,st+1r_{t+1}, s_{t+1}rt+1,st+1,然后生成at+1a_{t+1}at+1,遵循π(a∣st+1,θt)\pi(a|s_{t+1}, \theta_t)π(a∣st+1,θt)
- 在每个时间步 ttt,首先根据当前的策略 π(a∣st,θt)\pi(a|s_t, \theta_t)π(a∣st,θt) 生成动作 ata_tat 并执行该动作
- 执行动作后,环境会反馈一个奖励 rt+1r_{t + 1}rt+1 和下一个状态 st+1s_{t + 1}st+1。接着,再根据当前策略 π(a∣st+1,θt)\pi(a|s_{t + 1}, \theta_t)π(a∣st+1,θt) 生成下一个动作 at+1a_{t + 1}at+1
- 这一步骤是智能体与环境进行交互的过程,通过不断地选择动作并观察环境的反馈,智能体可以逐渐了解不同动作在不同状态下的效果
- Critic(价值更新):
wt+1=wt+αw[rt+1+γq(st+1,at+1,wt)−q(st,at,wt)]∇wq(st,at,wt) w_{t+1} = w_t + \alpha_w \left[ r_{t+1} + \gamma q(s_{t+1}, a_{t+1}, w_t) - q(s_t, a_t, w_t) \right] \nabla_w q(s_t, a_t, w_t) wt+1=wt+αw[rt+1+γq(st+1,at+1,wt)−q(st,at,wt)]∇wq(st,at,wt)- Critic 的主要任务是估计状态 - 动作对的价值,即 q(s,a,w)q(s, a, w)q(s,a,w),其中 www 是价值函数的参数
- 公式解释:
- rt+1+γq(st+1,at+1,wt)r_{t + 1} + \gamma q(s_{t + 1}, a_{t + 1}, w_t)rt+1+γq(st+1,at+1,wt) 是目标值,也称为 TD 目标(Temporal Difference target)。其中,rt+1r_{t + 1}rt+1 是当前时间步获得的即时奖励,γ\gammaγ 是折扣因子(0≤γ≤10 \leq \gamma \leq 10≤γ≤1),用于衡量未来奖励的重要性,q(st+1,at+1,wt)q(s_{t + 1}, a_{t + 1}, w_t)q(st+1,at+1,wt) 是下一个状态 - 动作对的估计价值。
- q(st,at,wt)q(s_t, a_t, w_t)q(st,at,wt) 是当前状态 - 动作对的估计价值。
- rt+1+γq(st+1,at+1,wt)−q(st,at,wt)r_{t + 1} + \gamma q(s_{t + 1}, a_{t + 1}, w_t) - q(s_t, a_t, w_t)rt+1+γq(st+1,at+1,wt)−q(st,at,wt) 是 TD 误差(Temporal Difference error),它衡量了当前估计价值与目标值之间的差异。
- αw\alpha_wαw 是 Critic 的学习率,控制着每次更新时参数 www 的调整幅度。
- ∇wq(st,at,wt)\nabla_w q(s_t, a_t, w_t)∇wq(st,at,wt) 是价值函数 q(st,at,w)q(s_t, a_t, w)q(st,at,w) 关于参数 www 的梯度,用于指示参数更新的方向。
- 更新目的:通过不断地更新参数 www,使得价值函数 q(s,a,w)q(s, a, w)q(s,a,w) 能够更准确地估计状态 - 动作对的价值。
- Actor(策略更新):
θt+1=θt+αθ∇θlnπ(at∣st,θt)q(st,at,wt+1) \theta_{t+1} = \theta_t + \alpha_\theta \nabla_\theta \ln \pi(a_t|s_t, \theta_t) q(s_t, a_t, w_{t+1}) θt+1=θt+αθ∇θlnπ(at∣st,θt)q(st,at,wt+1)- Actor 的任务是根据 Critic 提供的价值信息来调整策略参数 θ\thetaθ
- 公式解释:
- ∇θlnπ(at∣st,θt)\nabla_\theta \ln \pi(a_t|s_t, \theta_t)∇θlnπ(at∣st,θt) 是策略 π(at∣st,θ)\pi(a_t|s_t, \theta)π(at∣st,θ) 的对数似然关于参数 θ\thetaθ 的梯度。根据策略梯度定理,这个梯度可以用于指导策略的更新方向。
- q(st,at,wt+1)q(s_t, a_t, w_{t + 1})q(st,at,wt+1) 是当前状态 - 动作对的估计价值,由更新后的 Critic 提供。它作为一个权重,用于调整策略更新的幅度。
- 如果 q(st,at,wt+1)q(s_t, a_t, w_{t + 1})q(st,at,wt+1) 较大,说明当前动作在该状态下是一个好的选择,应该增加选择该动作的概率;
- 反之,如果 q(st,at,wt+1)q(s_t, a_t, w_{t + 1})q(st,at,wt+1) 较小,说明当前动作不是一个好的选择,应该降低选择该动作的概率。
- αθ\alpha_\thetaαθ 是 Actor 的学习率,控制着每次更新时参数 θ\thetaθ 的调整幅度。
- 更新目的:通过不断地更新参数 θ\thetaθ,使得策略 π(a∣s,θ)\pi(a|s, \theta)π(a∣s,θ) 能够根据 Critic 的评估结果进行调整,从而逐渐趋向于最优策略。
- 生成ata_tat,遵循π(a∣st,θt)\pi(a|s_t, \theta_t)π(a∣st,θt),观察rt+1,st+1r_{t+1}, s_{t+1}rt+1,st+1,然后生成at+1a_{t+1}at+1,遵循π(a∣st+1,θt)\pi(a|s_{t+1}, \theta_t)π(a∣st+1,θt)
注意:
- Critic对应于“SARSA+值函数近似”,主要估计状态 - 动作对的价值。
- Actor对应于策略更新算法。
- 该算法是on-policy(为什么PG是on-policy?)。
- 由于策略是随机的,不需要使用类似ε\varepsilonε-贪婪的技术。
- 这种特定的actor-critic算法有时称为Q Actor-Critic(QAC)。
- 尽管简单,但该算法揭示了actor-critic方法的核心思想。它可以扩展以产生许多其他算法,如稍后所示。
Advantage actor-critic (A2C)
接下来,我们延伸QAC到A2C,它的核心思想是引入一个基准来减少方差。
基线不变性
性质:策略梯度对额外的基准是不变的:
∇θJ(θ)=ES∼η,A∼π[∇θlnπ(A∣S,θt)qπ(S,A)]=ES∼η,A∼π[∇θlnπ(A∣S,θt)(qπ(S,A)−b(S))] \begin{align*} \nabla_\theta J(\theta) &= E_{S \sim \eta, A \sim \pi} \left[ \nabla_\theta \ln \pi(A|S, \theta_t) q_\pi(S, A) \right] \\ &= E_{S \sim \eta, A \sim \pi} \left[ \nabla_\theta \ln \pi(A|S, \theta_t) \left(q_\pi(S, A) - b(S)\right) \right] \end{align*} ∇θJ(θ)=ES∼η,A∼π[∇θlnπ(A∣S,θt)qπ(S,A)]=ES∼η,A∼π[∇θlnπ(A∣S,θt)(qπ(S,A)−b(S))]
以下对策略梯度的基线不变性进行详细解释:
-
相关符号与概念说明
- ∇θJ(θ)\nabla_\theta J(\theta)∇θJ(θ):表示目标函数 J(θ)J(\theta)J(θ) 关于策略参数 θ\thetaθ 的梯度。在强化学习中,J(θ)J(\theta)J(θ) 通常代表策略 π(A∣S,θ)\pi(A|S, \theta)π(A∣S,θ) 的长期期望回报,也就是衡量策略好坏的一个指标。我们的目标是通过调整参数 θ\thetaθ 来最大化 J(θ)J(\theta)J(θ)。
- ES∼η,A∼πE_{S \sim \eta, A \sim \pi}ES∼η,A∼π:这是一个期望运算符。S∼ηS \sim \etaS∼η 表示状态 SSS 是从分布 η\etaη 中采样得到的,η\etaη 通常是环境的状态分布;A∼πA \sim \piA∼π 表示动作 AAA 是根据策略 π(A∣S,θ)\pi(A|S, \theta)π(A∣S,θ) 采样得到的。整个期望是对从状态分布 η\etaη 中采样的状态 SSS 以及根据策略 π\piπ 采样的动作 AAA 进行的。
- ∇θlnπ(A∣S,θt)\nabla_\theta \ln \pi(A|S, \theta_t)∇θlnπ(A∣S,θt):是策略 π(A∣S,θ)\pi(A|S, \theta)π(A∣S,θ) 的对数似然关于参数 θ\thetaθ 的梯度在 θ=θt\theta = \theta_tθ=θt 处的值。它在策略梯度算法中用于指导策略参数的更新方向,基于对数似然函数求导得到,这样做有助于计算和优化。
- qπ(S,A)q_\pi(S, A)qπ(S,A):是状态 - 动作价值函数,它表示在状态 SSS 下采取动作 AAA 后,遵循策略 π\piπ 所获得的长期期望回报。
- b(S)b(S)b(S):是一个额外引入的基准函数,它是状态 SSS 的标量函数,即对于每个状态 SSS,b(S)b(S)b(S) 都对应一个标量值。
-
等式推导过程分析
- 第一个等式:∇θJ(θ)=ES∼η,A∼π[∇θlnπ(A∣S,θt)qπ(S,A)]\nabla_\theta J(\theta) = E_{S \sim \eta, A \sim \pi} \left[ \nabla_\theta \ln \pi(A|S, \theta_t) q_\pi(S, A) \right]∇θJ(θ)=ES∼η,A∼π[∇θlnπ(A∣S,θt)qπ(S,A)]
- 是策略梯度定理的一种常见形式。
- 它表明策略的梯度可以通过对策略的对数似然梯度与状态 - 动作价值函数的乘积求期望得到。
- 直观理解就是,通过这种方式可以根据动作的价值来调整策略,使得高价值的动作对应的策略参数朝着增加该动作选择概率的方向更新。
- 第二个等式:
- 要证明 ES∼η,A∼π[∇θlnπ(A∣S,θt)qπ(S,A)]=ES∼η,A∼π[∇θlnπ(A∣S,θt)(qπ(S,A)−b(S))]E_{S \sim \eta, A \sim \pi} \left[ \nabla_\theta \ln \pi(A|S, \theta_t) q_\pi(S, A) \right] = E_{S \sim \eta, A \sim \pi} \left[ \nabla_\theta \ln \pi(A|S, \theta_t) \left(q_\pi(S, A) - b(S)\right) \right]ES∼η,A∼π[∇θlnπ(A∣S,θt)qπ(S,A)]=ES∼η,A∼π[∇θlnπ(A∣S,θt)(qπ(S,A)−b(S))]我们对右边的式子进行展开:
ES∼η,A∼π[∇θlnπ(A∣S,θt)(qπ(S,A)−b(S))]=ES∼η,A∼π[∇θlnπ(A∣S,θt)qπ(S,A)−∇θlnπ(A∣S,θt)b(S)]=ES∼η,A∼π[∇θlnπ(A∣S,θt)qπ(S,A)]−ES∼η,A∼π[∇θlnπ(A∣S,θt)b(S)] \begin{align*} &E_{S \sim \eta, A \sim \pi} \left[ \nabla_\theta \ln \pi(A|S, \theta_t) \left(q_\pi(S, A) - b(S)\right) \right]\\ =&E_{S \sim \eta, A \sim \pi} \left[ \nabla_\theta \ln \pi(A|S, \theta_t) q_\pi(S, A) - \nabla_\theta \ln \pi(A|S, \theta_t) b(S) \right]\\ =&E_{S \sim \eta, A \sim \pi} \left[ \nabla_\theta \ln \pi(A|S, \theta_t) q_\pi(S, A) \right] - E_{S \sim \eta, A \sim \pi} \left[ \nabla_\theta \ln \pi(A|S, \theta_t) b(S) \right] \end{align*} ==ES∼η,A∼π[
- 要证明 ES∼η,A∼π[∇θlnπ(A∣S,θt)qπ(S,A)]=ES∼η,A∼π[∇θlnπ(A∣S,θt)(qπ(S,A)−b(S))]E_{S \sim \eta, A \sim \pi} \left[ \nabla_\theta \ln \pi(A|S, \theta_t) q_\pi(S, A) \right] = E_{S \sim \eta, A \sim \pi} \left[ \nabla_\theta \ln \pi(A|S, \theta_t) \left(q_\pi(S, A) - b(S)\right) \right]ES∼η,A∼π[∇θlnπ(A∣S,θt)qπ(S,A)]=ES∼η,A∼π[∇θlnπ(A∣S,θt)(qπ(S,A)−b(S))]我们对右边的式子进行展开:
- 第一个等式:∇θJ(θ)=ES∼η,A∼π[∇θlnπ(A∣S,θt)qπ(S,A)]\nabla_\theta J(\theta) = E_{S \sim \eta, A \sim \pi} \left[ \nabla_\theta \ln \pi(A|S, \theta_t) q_\pi(S, A) \right]∇θJ(θ)=ES∼η,A∼π[∇θlnπ(A∣S,θt)qπ(S,A)]

最低0.47元/天 解锁文章
492

被折叠的 条评论
为什么被折叠?



