强化学习-5 策略梯度、Actor-Critic 算法

文章目录

  • 1 基于价值( value-based \text{value-based} value-based )算法的缺点
  • 2 策略梯度算法
    • 2.1 解释
      • 2.1.1 分母和分子相消
      • 2.1.2 对数函数的导数
      • 2.1.3 组合公式
      • 2.1.4 总结
  • 3 REINFORCE算法
  • 4 策略梯度推导进阶
    • 4.1 平稳分布
    • 4.2 基于平稳分布的策略梯度推导
  • 5 策略函数的设计
    • 5.1 离散动作
    • 5.2 连续动作
  • 6 附
    • 6.1 式9.12各部分解释
      • 6.1.1 等式解释
        • 6.1.1.1 左侧等式
        • 6.1.1.2 右侧等式
      • 6.1.2 直观理解
      • 6.1.3 应用
    • 6.2 式9.13解释
      • 6.2.1 各部分解释
      • 6.2.2 逐步推导
      • 6.2.3 直观理解
      • 6.2.4 应用
  • 7 策略梯度算法的缺点
  • 8 Q Actor - Critic算法
  • 9 A2C 与 A3C 算法
  • 10 广义优势估计


基于策略梯度( policy-based \text{policy-based} policy-based )的算法。这类算法直接对策略本身进行近似优化。在这种情况下,我们可以将策略描述成一个带有参数 θ \theta θ的连续函数,该函数将某个状态作为输入,输出的不再是某个确定性( deterministic \text{deterministic} deterministic )的离散动作,而是对应的动作概率分布,通常用 π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ(as) 表示,称作随机性( stochastic \text{stochastic} stochastic )策略。

1 基于价值( value-based \text{value-based} value-based )算法的缺点

基于价值(DQN)蒙特卡洛策略梯度Actor-Critic
优点效果不错,有较好的收敛性适配连续动作空间;适配随机策略兼容两者的优点
缺点无法表示连续动作采样效率低
高方差。通过采样的方式估计价值函数,导致方差高,影响收敛性。高方差。估计梯度时蒙特卡洛算法引起的。
探索与利用的平衡问题。确定性策略和随机策略的平衡。收敛性差。容易陷入局部最优解。
难以处理高维离散动作空间

2 策略梯度算法

策略梯度算法的优化目标与基于价值的算法是一样的,都是累积的价值期望 V ∗ ( s ) V^{*}(s) V(s) 。通常用 π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ(as) 来表示策略,即在状态 s s s 下采取动作 a a a 的概率分布 p ( a ∣ s ) p(a|s) p(as),其中 θ \theta θ 是我们要去求出来的模型参数。

J ( π θ ) = E τ ∼ π θ [ R ( τ ) ] = P θ ( τ 1 ) R ( τ 1 ) + P θ ( τ 2 ) R ( τ 2 ) + ⋯ = ∫ τ P θ ( τ ) R ( τ ) = E τ ∼ P θ ( τ ) [ ∑ t r ( s t , a t ) ] (9.3) \tag{9.3} \begin{aligned} J(\pi_{\theta}) = \underset{\tau \sim \pi_\theta}{E}[R(\tau)] & = P_{\theta}(\tau_{1})R(\tau_{1})+P_{\theta}(\tau_{2})R(\tau_{2})+\cdots \\ &=\int_\tau P_{\theta}(\tau) R(\tau) \\ &=E_{\tau \sim P_\theta(\tau)}[\sum_t r(s_t, a_t)] \end{aligned} J(πθ)=τπθE[R(τ)]=Pθ(τ1)R(τ1)+Pθ(τ2)R(τ2)+=τPθ(τ)R(τ)=EτPθ(τ)[tr(st,at)](9.3)
我们的目标就是最大化策略的价值期望 J ( π θ ) J(\pi_{\theta}) J(πθ),因此 J ( π θ ) J(\pi_{\theta}) J(πθ) 又称作目标函数。有了目标函数之后,只要能求出梯度,就可以使用万能的梯度上升或下降的方法来求解对应的最优参数 θ ∗ \theta^* θ了,这里由于目标是最大化目标函数,因此我们使用梯度上升的方法。那么问题来了,我们发现策略梯度的目标函数过于复杂,这种情况下要怎么求梯度呢?这就是策略梯度算法的核心问题。

这个公式涉及到概率密度函数的梯度和对数梯度的转换,广泛应用于强化学习和其他概率模型中。公式如下:

∇ θ P θ ( τ ) = P θ ( τ ) ∇ θ P θ ( τ ) P θ ( τ ) = P θ ( τ ) ∇ θ log ⁡ P θ ( τ ) \nabla_\theta P_\theta(\tau) = P_\theta(\tau) \frac{\nabla_\theta P_\theta(\tau)}{P_\theta(\tau)} = P_\theta(\tau) \nabla_\theta \log P_\theta(\tau) θPθ(τ)=Pθ(τ)Pθ(τ)θPθ(τ)=Pθ(τ)θlogPθ(τ)

2.1 解释

为了理解为什么这些表达式相等,我们需要理解以下几个步骤:

2.1.1 分母和分子相消

首先,我们来看中间的部分:

∇ θ P θ ( τ ) P θ ( τ ) \frac{\nabla_\theta P_\theta(\tau)}{P_\theta(\tau)} Pθ(τ)θPθ(τ)

这是一个简单的比值,其中分子是 P θ ( τ ) P_\theta(\tau) Pθ(τ) 对参数 θ \theta θ 的梯度,而分母是 P θ ( τ ) P_\theta(\tau) Pθ(τ) 自身。这相当于用 P θ ( τ ) P_\theta(\tau) Pθ(τ) 归一化其梯度。

2.1.2 对数函数的导数

接下来,我们引入对数函数。对数函数有一个重要的性质:

∇ θ log ⁡ P θ ( τ ) = ∇ θ P θ ( τ ) P θ ( τ ) \nabla_\theta \log P_\theta(\tau) = \frac{\nabla_\theta P_\theta(\tau)}{P_\theta(\tau)} θlogPθ(τ)=Pθ(τ)θPθ(τ)

这个性质来源于对数的导数公式:

如果 y = log ⁡ f ( x ) y = \log f(x) y=logf(x),那么 ∇ x y = ∇ x f ( x ) f ( x ) \nabla_x y = \frac{\nabla_x f(x)}{f(x)} xy=f(x)xf(x)

应用在这里,设 f ( θ ) = P θ ( τ ) f(\theta) = P_\theta(\tau) f(θ)=Pθ(τ),则:

∇ θ log ⁡ P θ ( τ ) = ∇ θ P θ ( τ ) P θ ( τ ) \nabla_\theta \log P_\theta(\tau) = \frac{\nabla_\theta P_\theta(\tau)}{P_\theta(\tau)} θlogPθ(τ)=Pθ(τ)θPθ(τ)

2.1.3 组合公式

现在我们将这个性质带回到原公式中:

P θ ( τ ) ∇ θ P θ ( τ ) P θ ( τ ) = P θ ( τ ) ∇ θ log ⁡ P θ ( τ ) P_\theta(\tau) \frac{\nabla_\theta P_\theta(\tau)}{P_\theta(\tau)} = P_\theta(\tau) \nabla_\theta \log P_\theta(\tau) Pθ(τ)Pθ(τ)θPθ(τ)=Pθ(τ)θlogPθ(τ)

我们看到分母和分子 P θ ( τ ) P_\theta(\tau) Pθ(τ) 互相抵消,剩下的就是对数梯度:

∇ θ P θ ( τ ) = P θ ( τ ) ∇ θ log ⁡ P θ ( τ ) \nabla_\theta P_\theta(\tau) = P_\theta(\tau) \nabla_\theta \log P_\theta(\tau) θPθ(τ)=Pθ(τ)θlogPθ(τ)

2.1.4 总结

这个等式的关键在于对数函数的导数性质,即:

∇ θ log ⁡ P θ ( τ ) = ∇ θ P θ ( τ ) P θ ( τ ) \nabla_\theta \log P_\theta(\tau) = \frac{\nabla_\theta P_\theta(\tau)}{P_\theta(\tau)} θlogPθ(τ)=Pθ(τ)θPθ(τ)

这使得我们能够将梯度从概率密度函数的形式转换为对数概率密度函数的形式,从而简化计算并利用对数的性质进行分析和优化。这种转换在很多概率模型和强化学习算法中起到重要作用,例如策略梯度方法。

3 REINFORCE算法

利用蒙特卡洛的方法来近似求解了,即我们可以不必采样所有的轨迹,而是采样一部分且数量足够多的轨迹,然后利用这些轨迹的平均值来近似求解目标函数的梯度。这种方法就是蒙特卡洛策略梯度算法,也称作 REINFORCE \text{REINFORCE} REINFORCE 算法。

4 策略梯度推导进阶

问题:
解决方案:
更泛化更通用的策略梯度公式。

4.1 平稳分布

概念
本质:熵增原理的一种体现

4.2 基于平稳分布的策略梯度推导

回顾前面小节中计算轨迹概率的公式 P θ ( τ ) P_{\theta}(\tau) Pθ(τ),可以发现如果轨迹 τ \tau τ的初始状态是 s 0 s_0 s0并且终止状态是 s s s的话,轨迹概率公式 P θ ( τ ) P_{\theta}(\tau) Pθ(τ)跟平稳分布的 d π ( s ) d^\pi(s) dπ(s)是等效的,当然前提是该条轨迹必须“无限长”,即 t → ∞ t \rightarrow \infty t。但是平稳分布与轨迹概率公式相比,它的好处就是只涉及一个定量即初始状态 s 0 s_0 s0和一个变量 s s s。对于每个状态 s s s,我们用 V π ( s ) V^{\pi}(s) Vπ(s)表示策略 π \pi π下对应的价值。读者们现在可以往前回顾,为什么笔者说策略梯度算法跟基于价值函数的算法都是在计算累积状态的价值期望了,此时策略梯度算法目标函数就可以表示为式 ( 9.12 ) \text(9.12) (9.12)
J ( θ ) = ∑ s ∈ S d π ( s ) V π ( s ) = ∑ s ∈ S d π ( s ) ∑ a ∈ A π θ ( a ∣ s ) Q π ( s , a ) (9.12) \tag{9.12} J(\theta)=\sum_{s \in \mathcal{S}} d^\pi(s) V^\pi(s)=\sum_{s \in \mathcal{S}} d^\pi(s) \sum_{a \in \mathcal{A}} \pi_\theta(a \mid s) Q^\pi(s, a) J(θ)=sSdπ(s)Vπ(s)=sSdπ(s)aAπθ(as)Qπ(s,a)(9.12)

这个公式描述了强化学习中策略的目标函数 J ( θ ) J(\theta) J(θ),其作用是评估给定策略 π \pi π 的期望回报。我们通过求和得到在所有状态下的期望回报,并进一步通过策略 π \pi π 在每个状态下的动作来分解回报。以下是对该公式的详细解释:

同样可以利用对数微分技巧求得对应的梯度,如式 ( 9.13 ) \text(9.13) (9.13) 所示。

∇ θ J ( θ ) ∝ ∑ s ∈ S d π ( s ) ∑ a ∈ A Q π ( s , a ) ∇ θ π θ ( a ∣ s ) = ∑ s ∈ S d π ( s ) ∑ a ∈ A π θ ( a ∣ s ) Q π ( s , a ) ∇ θ π θ ( a ∣ s ) π θ ( a ∣ s ) = E π θ [ Q π ( s , a ) ∇ θ log ⁡ π θ ( a ∣ s ) ] (9.13) \tag{9.13} \begin{aligned} \nabla_\theta J(\theta) & \propto \sum_{s \in \mathcal{S}} d^\pi(s) \sum_{a \in \mathcal{A}} Q^\pi(s, a) \nabla_\theta \pi_\theta(a \mid s) \\ &=\sum_{s \in \mathcal{S}} d^\pi(s) \sum_{a \in \mathcal{A}} \pi_\theta(a \mid s) Q^\pi(s, a) \frac{\nabla_\theta \pi_\theta(a \mid s)}{\pi_\theta(a \mid s)} \\ &=\mathbb{E}_{\pi_{\theta}}\left[Q^\pi(s, a) \nabla_\theta \log \pi_\theta(a \mid s)\right] \end{aligned} θJ(θ)sSdπ(s)aAQπ(s,a)θπθ(as)=sSdπ(s)aAπθ(as)Qπ(s,a)πθ(as)θπθ(as)=Eπθ[Qπ(s,a)θlogπθ(as)](9.13)

这个公式描述了如何计算策略梯度,即策略参数 θ \theta θ 的目标函数 J ( θ ) J(\theta) J(θ) 的梯度。这个过程在策略梯度方法中非常重要,用于更新策略参数以最大化期望回报。我们将结合上个问题的公式进行解释。

到这里我们会发现, REINFORCE \text{REINFORCE} REINFORCE 算法只是利用蒙特卡洛的方式将公式中的 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 替换成了 G ( τ ) G(\tau) G(τ)。实际上读者们在学习了结合深度学习的 DQN 算法之后, Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 也是可以用神经网络模型来近似的,只是略有不同的是这里的 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 相比于 DQN \text{DQN} DQN 算法中的 Q Q Q 函数多了一个策略 π \pi π 作为输入,并且输出的不再是所有动作对应的 Q Q Q 值,而是针对当前状态和动作 ( s t , a t ) (s_t,a_t) (st,at) 的单个值,因此更多的像是在评判策略的价值而不是状态的价值,而用来近似 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 的模型我们一般称作 Critic \text{Critic} Critic
只包含策略梯度的一部分 ∇ θ log ⁡ π θ ( a ∣ s ) \nabla_\theta \log \pi_\theta(a \mid s) θlogπθ(as) 的模型我们一般称作 Actor \text{Actor} Actor 。这样一来已经不是单纯的策略梯度算法了,而是同时结合了基于价值和策略梯度的算法,我们一般把这类算法称之为 Actor-Critic \text{Actor-Critic} Actor-Critic 算法。

5 策略函数的设计

5.1 离散动作

5.2 连续动作

6 附

6.1 式9.12各部分解释

J ( θ ) = ∑ s ∈ S d π ( s ) V π ( s ) = ∑ s ∈ S d π ( s ) ∑ a ∈ A π θ ( a ∣ s ) Q π ( s , a ) (9.12) \tag{9.12} J(\theta)=\sum_{s \in \mathcal{S}} d^\pi(s) V^\pi(s)=\sum_{s \in \mathcal{S}} d^\pi(s) \sum_{a \in \mathcal{A}} \pi_\theta(a \mid s) Q^\pi(s, a) J(θ)=sSdπ(s)Vπ(s)=sSdπ(s)aAπθ(as)Qπ(s,a)(9.12)

  1. 目标函数 J ( θ ) J(\theta) J(θ)

    • J ( θ ) J(\theta) J(θ) 是策略 π θ \pi_\theta πθ 的性能度量,表示在策略参数 θ \theta θ 下的期望回报。
  2. 状态分布 d π ( s ) d^\pi(s) dπ(s)

    • d π ( s ) d^\pi(s) dπ(s) 是在策略 π \pi π 下状态 s s s 的稳态分布。它表示在无限时间步内,系统处于状态 s s s 的概率。
    • 通常通过马尔可夫链的状态转移概率计算得到。
  3. 状态值函数 V π ( s ) V^\pi(s) Vπ(s)

    • V π ( s ) V^\pi(s) Vπ(s) 是在策略 π \pi π 下,从状态 s s s 开始的期望回报。
    • 定义为从状态 s s s 开始,跟随策略 π \pi π 所能获得的期望回报。
  4. 动作值函数 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a)

    • Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 是在策略 π \pi π 下,从状态 s s s 采取动作 a a a 开始的期望回报。
    • 定义为在状态 s s s 采取动作 a a a,然后按照策略 π \pi π 继续行动所能获得的期望回报。
  5. 策略 π θ ( a ∣ s ) \pi_\theta(a \mid s) πθ(as)

    • π θ ( a ∣ s ) \pi_\theta(a \mid s) πθ(as) 是策略 π \pi π 在状态 s s s 选择动作 a a a 的概率。
    • 它依赖于策略的参数 θ \theta θ

6.1.1 等式解释

6.1.1.1 左侧等式

J ( θ ) = ∑ s ∈ S d π ( s ) V π ( s ) J(\theta) = \sum_{s \in S} d^\pi(s) V^\pi(s) J(θ)=sSdπ(s)Vπ(s)

  • 表示在所有状态 s s s 的稳态分布 d π ( s ) d^\pi(s) dπ(s) 下,状态值函数 V π ( s ) V^\pi(s) Vπ(s) 的加权和。
  • 直观上,这表示在策略 π \pi π 下系统处于不同状态时的期望回报的总和。
6.1.1.2 右侧等式

J ( θ ) = ∑ s ∈ S d π ( s ) ∑ a ∈ A π θ ( a ∣ s ) Q π ( s , a ) J(\theta) = \sum_{s \in S} d^\pi(s) \sum_{a \in A} \pi_\theta(a \mid s) Q^\pi(s, a) J(θ)=sSdπ(s)aAπθ(as)Qπ(s,a)

  • 将状态值函数 V π ( s ) V^\pi(s) Vπ(s) 展开为动作值函数 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 和策略 π θ ( a ∣ s ) \pi_\theta(a \mid s) πθ(as) 的加权和。
  • 这一步利用了以下关系:
    V π ( s ) = ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) V^\pi(s) = \sum_{a \in A} \pi(a \mid s) Q^\pi(s, a) Vπ(s)=aAπ(as)Qπ(s,a)
    即在状态 s s s 下,状态值函数等于在该状态下所有可能动作的值函数的期望。

6.1.2 直观理解

  • 第一部分:我们在状态 s s s 的稳态分布 d π ( s ) d^\pi(s) dπ(s) 下,计算所有状态的期望回报 V π ( s ) V^\pi(s) Vπ(s)
  • 第二部分:通过引入策略 π θ \pi_\theta πθ,将期望回报展开为每个状态下的所有可能动作的值函数的期望。
  • 这种展开形式有助于进一步分析和优化策略,因为我们可以直接看到每个状态和动作对总回报的贡献。

6.1.3 应用

这个公式在强化学习中非常重要,尤其在策略梯度方法中,通过优化 J ( θ ) J(\theta) J(θ) 来改进策略参数 θ \theta θ。策略梯度算法通过计算 J ( θ ) J(\theta) J(θ) θ \theta θ 的梯度,调整策略参数以最大化期望回报。

总结来说,这个公式提供了一种计算和优化策略性能的方法,通过状态分布、状态值函数和动作值函数的结合,反映了策略在不同状态和动作下的期望回报。

6.2 式9.13解释

6.2.1 各部分解释

  1. 目标函数的梯度 ∇ θ J ( θ ) \nabla_\theta J(\theta) θJ(θ)

    • 目标是计算策略参数 θ \theta θ 的梯度,以便在策略优化中使用。
  2. 状态分布 d π ( s ) d^\pi(s) dπ(s)

    • d π ( s ) d^\pi(s) dπ(s) 是在策略 π \pi π 下,系统处于状态 s s s 的稳态分布。
  3. 动作值函数 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a)

    • Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 是在策略 π \pi π 下,从状态 s s s 采取动作 a a a 开始的期望回报。
  4. 策略 π θ ( a ∣ s ) \pi_\theta(a \mid s) πθ(as)

    • π θ ( a ∣ s ) \pi_\theta(a \mid s) πθ(as) 是策略 π \pi π 在状态 s s s 选择动作 a a a 的概率。

6.2.2 逐步推导

  1. 初始形式

    ∇ θ J ( θ ) ∝ ∑ s ∈ S d π ( s ) ∑ a ∈ A Q π ( s , a ) ∇ θ π θ ( a ∣ s ) \nabla_\theta J(\theta) \propto \sum_{s \in S} d^\pi(s) \sum_{a \in A} Q^\pi(s, a) \nabla_\theta \pi_\theta(a \mid s) θJ(θ)sSdπ(s)aAQπ(s,a)θπθ(as)

    这是目标函数梯度的初始形式,我们希望计算期望回报的梯度。

  2. 引入对数梯度技巧

    ∇ θ π θ ( a ∣ s ) = π θ ( a ∣ s ) ∇ θ π θ ( a ∣ s ) π θ ( a ∣ s ) = π θ ( a ∣ s ) ∇ θ log ⁡ π θ ( a ∣ s ) \nabla_\theta \pi_\theta(a \mid s) = \pi_\theta(a \mid s) \frac{\nabla_\theta \pi_\theta(a \mid s)}{\pi_\theta(a \mid s)} = \pi_\theta(a \mid s) \nabla_\theta \log \pi_\theta(a \mid s) θπθ(as)=πθ(as)πθ(as)θπθ(as)=πθ(as)θlogπθ(as)

    通过引入对数梯度技巧,将梯度转换为对数的形式。这一步利用了对数函数的导数性质。

  3. 替换并简化

    ∇ θ J ( θ ) ∝ ∑ s ∈ S d π ( s ) ∑ a ∈ A π θ ( a ∣ s ) Q π ( s , a ) ∇ θ log ⁡ π θ ( a ∣ s ) \nabla_\theta J(\theta) \propto \sum_{s \in S} d^\pi(s) \sum_{a \in A} \pi_\theta(a \mid s) Q^\pi(s, a) \nabla_\theta \log \pi_\theta(a \mid s) θJ(θ)sSdπ(s)aAπθ(as)Qπ(s,a)θlogπθ(as)

    这里,我们将原始的梯度形式替换为对数梯度形式,进一步简化表达式。

  4. 期望形式

    ∇ θ J ( θ ) = E π θ [ Q π ( s , a ) ∇ θ log ⁡ π θ ( a ∣ s ) ] \nabla_\theta J(\theta) = \mathbb{E}_{\pi_\theta} [Q^\pi(s, a) \nabla_\theta \log \pi_\theta(a \mid s)] θJ(θ)=Eπθ[Qπ(s,a)θlogπθ(as)]

    最后一步,将求和形式转换为期望形式,这样可以更直观地表示在策略 π θ \pi_\theta πθ 下的期望梯度。

6.2.3 直观理解

  • 梯度的期望:公式的最终形式表明,目标函数 J ( θ ) J(\theta) J(θ) 的梯度是动作值函数 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 与策略 π θ ( a ∣ s ) \pi_\theta(a \mid s) πθ(as) 的对数梯度的乘积的期望值。
  • 策略改进:通过计算这个梯度,我们可以更新策略参数 θ \theta θ,使得期望回报 J ( θ ) J(\theta) J(θ) 最大化。

6.2.4 应用

这个公式在策略梯度方法(如REINFORCE算法)中至关重要,通过计算和使用这个梯度,我们可以不断改进策略,以在给定环境中获得更高的回报。

总结来说,该公式通过引入对数梯度技巧,将策略参数的目标函数梯度转换为一个更加易于计算和理解的形式,使得在强化学习中策略优化变得更加高效和可行。

7 策略梯度算法的缺点

结合了策略梯度和值函数的 Actor-Critic \text{Actor-Critic} Actor-Critic 算法则能同时兼顾两者的优点,并且甚至能缓解两种方法都很难解决的高方差问题。可能读者会奇怪为什么各自都有高方差的问题,结合了之后反而缓解了这个问题呢?我们再仔细分析一下两者高方差的根本来源:

  1. 策略梯度算法是因为直接对策略参数化,相当于既要利用策略去与环境交互采样,又要利用采样去估计策略梯度,
  2. 而基于价值的算法也是需要与环境交互采样来估计值函数的,因此也会有高方差的问题。
    而结合之后呢, Actor \text{Actor} Actor 部分还是负责估计策略梯度和采样,但 Critic \text{Critic} Critic 即原来的值函数部分就不需要采样而只负责估计值函数了,并且由于它估计的值函数指的是策略函数的值,相当于带来了一个更稳定的估计,来指导 Actor \text{Actor} Actor 的更新,反而能够缓解策略梯度估计带来的方差。
    当然尽管 Actor-Critic \text{Actor-Critic} Actor-Critic 算法能够缓解方差问题,但并不能彻底解决问题,在接下来的章节中我们也会展开介绍一些改进的方法。

8 Q Actor - Critic算法

Actor-Critic \text{Actor-Critic} Actor-Critic 算法的目标函数10.1
∇ θ J ( θ ) ∝ E π θ [ Q π ( s , a ) ∇ θ log ⁡ π θ ( a ∣ s ) ] (10.1) \tag{10.1} \begin{aligned} \nabla_\theta J(\theta) \propto \mathbb{E}_{\pi_{\theta}}\left[Q^\pi(s, a) \nabla_\theta \log \pi_\theta(a \mid s)\right] \end{aligned} θJ(θ)Eπθ[Qπ(s,a)θlogπθ(as)](10.1)

Q Actor-Critic \text{Q Actor-Critic} Q Actor-Critic 算法的目标函数10.2
∇ θ J ( θ ) ∝ E π θ [ Q ϕ ( s t , a t ) ∇ θ log ⁡ π θ ( a t ∣ s t ) ] (10.2) \tag{10.2} \begin{aligned} \nabla_\theta J(\theta) \propto \mathbb{E}_{\pi_{\theta}}\left[Q_{\phi}(s_t, a_t) \nabla_\theta \log \pi_\theta(a_t \mid s_t)\right] \end{aligned} θJ(θ)Eπθ[Qϕ(st,at)θlogπθ(atst)](10.2)

我们通常将 Actor 和 Critic 分别用两个模块来表示,即图中的 策略函数( Policy )和价值函数( Value Function )。Actor 与环境交互采样,然后将采样的轨迹输入 Critic 网络,Critic 网络估计出当前状态-动作对的价值,然后再将这个价值作为 Actor 网络的梯度更新的依据,这也是所有 Actor-Critic 算法的基本通用架构。
在这里插入图片描述

9 A2C 与 A3C 算法

10 广义优势估计

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/766983.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

家用洗地机什么牌子好?四款公认品牌好的机型推荐

每个人都希望自己的家里面能够干干净净,就算不是一尘不染,也至少应该是整洁的,但是在这个快节奏的大环境下,做清洁对于人们来说,不是没时间,就是太累了。正当此时,一款造福懒人的神器——家用洗…

IT行业入门,如何假期逆袭,实现抢跑

目录 前言 1.IT行业领域分类 2.基础课程预习指南 3.技术学习路线 4.学习资源推荐 结束语 前言 IT(信息技术)行业是一个非常广泛和多样化的领域,它包括了许多不同的专业领域和职业路径。如果要进军IT行业,我们应该要明确自己…

python-数据容器对比总结

基于各类数据容器的特点,它们的应用场景如下: 数据容器的通用操作 - 遍历 数据容器的通用统计功能 容器的通用转换功能 容器通用排序功能 容器通用功能总览

GIT - 一条命令把项目更新到远程仓库

前言 阅读本文大概需要1分钟 说明 更新项目到远程仓库只需要执行一条命令,相当的简便 步骤 第一步 编辑配置文件 vim ~/.bash_profile第二步 写入配置文件 gsh() {local msg"${1:-ADD COMMIT PUSH}"git add . && git commit -m "$m…

市场布局企业增加 光场显示技术商业化进程将加快

市场布局企业增加 光场显示技术商业化进程将加快 光场显示技术是一种新型三维(3D)显示技术,是利用特殊显示和控光器件重构3D空间光场信息,实现3D动态显示。光场即光线在空间中的分布。   目前3D显示可分为真3D显示、助视3D显示、…

Kubernetes 离线安装的坑我采了

Kubernetes 离线安装的坑我采了 一、Error from server: Get "https://xx.xx.xx.xx:10250/containerLogs/kube-system/calico-node-8dnvs/calico-node": tls: failed to verify certificate: x509: certificate signed by unknown authority二、calico 或 pod 启动正…

【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(七)-shell语法(5)

shell语法的一些知识和练习,可以当作笔记收藏一下!! 文章目录 前言 一、shell 二、shell语法 1.文件重定向 2.引入外部脚本 3.作业 总结 前言 shell语法的一些知识和练习,可以当作笔记收藏一下!! 提示&…

CISSP是什么?值得考吗?

近期,国际信息系统安全认证联盟(ISC)宣布自2024年2月12日起,中国信息安全专业人员认证(CISSP)的中文考试将采用计算机自适应测试(CAT)形式进行。 计算机化自适应测试(CAT)根据考生答题情况动态调整后续试题的难度和类型,以更准确地衡量个人能…

2024最新ComfyUI文生图详解教程!

前言 leetcode,16.25. LRU 缓存 设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。 缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它应该删除最近最少…

网络基础:EIGRP

EIGRP(Enhanced Interior Gateway Routing Protocol)是由思科开发的一种高级距离矢量路由协议,结合了距离矢量和链路状态路由协议的优点;EIGRP具有快速收敛、高效带宽利用、负载均衡等特点,适用于各种规模的网络。EIGR…

基于YOLOv9+pyside的安检仪x光危险物物品检测(有ui)

安全检查在公共场所确保人身安全的关键环节,不可或缺。X光安检机作为必要工具,在此过程中发挥着重要作用。然而,其依赖人工监控和判断成像的特性限制了其应用效能。本文以此为出发点,探索了基于Torch框架的YOLO算法在安检X光图像中…

线性代数笔记

行列式 求高阶行列式 可以划上三角 上三角 余子式 范德蒙行列式 拉普拉斯公式 行列式行列对换值不变 矩阵 矩阵的运算 同型矩阵加减 对应位置相加减 矩阵的乘法 左边第 i 行 一次 相乘求和 右边 第 j 列 eg 中间相等 两边规模 矩阵的幂运算 解题思路 找规律 数学归纳…

智能体实战:开发一个集成国内AI平台的GPTs,自媒体高效智能助手

文章目录 一,什么是GPTs二,开发GPTs1,目标2,开发2.1 打开 GPTS:https://chat.openai.com/gpts2.2 点击 Create 创建一个自己的智能体 2.3 配置GPTs2.4 配置外挂工具2.4.1 配置Authentication-授权2.4.1.1 生成语聚AI的…

人工智能-NLP简单知识汇总01

人工智能-NLP简单知识汇总01 1.1自然语言处理的基本概念 自然语言处理难点: 语音歧义句子切分歧义词义歧义结构歧义代指歧义省略歧义语用歧义 总而言之:!!语言无处不歧义 1.2自然语言处理的基本范式 1.2.1基于规则的方法 通…

医院挂号系统:基于JSP和MySQL的现代化医疗预约平台

开头语:您好,我是专注于医疗系统开发的IT学长。如果您对医院挂号系统感兴趣,欢迎联系我。 开发语言:Java 数据库:MySQL 技术:JSP技术,B/S架构 工具:Eclipse,MyEclips…

前端Bug 修复手册

1.前端长整数精度丢失问题 (1)问题 在前后端联调时,发现后端有一个接口返回的值和前端页面上展示的值不一致。 后端Java实现的接口如下,返回一个json格式的大整数 123456789123456789: 但是前端请求这个接口后&…

数据结构算法之B树

一、绪论 1.1 数据结构的概念和作用 1.2 B树的起源和应用领域 二、B树的基本原理 2.1 B树的定义和特点 2.2 B树的结构和节点组成 2.3 B树的插入 2.4 B树的删除操作 三、B树的优势和应用 3.1 B树在数据库系统中的应用 3.2 B树在文件系统中的应用 3.3 B树在内存管理中…

【网络】网络基础(一)

网络基础(一) 文章目录 一、计算机网络背景1.1网络发展1.2认识“协议” 二、网络协议初识2.1OSI七层模型2.2OSI五层模型 三、网络传输基本流程3.1局域网通信3.2网络传输流程不跨子网的网络传输跨子网的网络传输 3.3网络中的地址管理IP地址MAC地址 一、计…

SpringBoot环境集成 sms4j短信聚合

SpringBoot环境集成 sms4j短信聚合 官方文档 前言 在正式使用sms4j短信功能之前,请详细阅读本文档,依照本篇流程进行操作和配给,即可解决大部分问题,如对我们的文档有建议,请联系开发者团队, 我们将根据可…

摸鱼必备!!10个你不知道的 Vue 3 组件库...

大家好,我是CodeQi! 你们有没有过这种经历:正在认真写代码,忽然想看看有啥好玩的新东西,结果一不小心就摸鱼了整整一个下午? 哈哈,我也有过这种体验。不过,这次的摸鱼可不是浪费时间,而是大有收获! 今天,我要分享的是10个你可能还不知道的 Vue 3 组件库,这些库…