2. actor loss

1 actor_loss 定义

在强化学习中,演员(Actor)损失(actor_loss)衡量策略的改进方向,即如何更新策略以更好地选择动作。对于常见的策略梯度方法,actor_loss 的定义通常与优势函数(Advantage Function)相关,以帮助引导演员选择更好的动作。

下面是几种常见的 actor_loss 定义:

  1. 基于策略梯度的 Actor Loss: 在策略梯度方法(如 REINFORCE)中,actor_loss 通常定义为策略概率的负对数与优势函数的乘积的期望值,表达式如下:

    L actor = − E τ [ log ⁡ π θ ( a t ∣ s t ) A t ] L_{\text{actor}} = -\mathbb{E}_{\tau} \left[ \log \pi_{\theta}(a_t | s_t) A_t \right] Lactor=Eτ[logπθ(atst)At]

    其中:

    • π θ ( a t ∣ s t ) \pi_{\theta}(a_t | s_t) πθ(atst)是策略在状态 s t s_t st 选择动作 a t a_t at 的概率。
    • A t A_t At 是优势函数(Advantage Function),表示在当前策略下,动作 a t a_t at 相对平均表现的优劣。
    • 这个损失函数的目标是通过最大化优势 A t A_t At来提高优质动作的选择概率。
  2. PPO(Proximal Policy Optimization)中的 Actor Loss: 在 PPO 中,为了限制策略更新的幅度,actor_loss 通常定义为“剪切”策略更新的目标函数,表达式如下:

    L actor = − E τ [ min ⁡ ( r t ( θ ) A t , clip ( r t ( θ ) , 1 − ϵ , 1 + ϵ ) A t ) ] L_{\text{actor}} = -\mathbb{E}_{\tau} \left[ \min(r_t(\theta) A_t, \text{clip}(r_t(\theta), 1 - \epsilon, 1 + \epsilon) A_t) \right] Lactor=Eτ[min(rt(θ)At,clip(rt(θ),1ϵ,1+ϵ)At)]

    其中:

    • ( r t ( θ ) = π θ ( a t ∣ s t ) π θ old ( a t ∣ s t ) ) (r_t(\theta) = \frac{\pi_{\theta}(a_t | s_t)}{\pi_{\theta_{\text{old}}}(a_t | s_t)}) (rt(θ)=πθold(atst)πθ(atst)) 表示新旧策略概率的比值。
    • ( ϵ ) (\epsilon) (ϵ) 是一个小的常数,用于限制更新幅度,防止策略发生过大的改变。
  3. AC(Actor-Critic)方法中的 Actor Loss: 在 AC(Actor-Critic)方法中,actor_loss 通常基于状态价值函数 ( V ( s ) ) (V(s)) (V(s)) 计算,形式如下:

L actor = − E τ [ log ⁡ π θ ( a t ∣ s t ) ( R t − V ( s t ) ) ] L_{\text{actor}} = -\mathbb{E}_{\tau} \left[ \log \pi_{\theta}(a_t | s_t) (R_t - V(s_t)) \right] Lactor=Eτ[logπθ(atst)(RtV(st))]

其中 R t − V ( s t ) R_t - V(s_t) RtV(st) 表示 TD(Temporal Difference)误差,也可以作为优势函数的近似值,用来指导策略改进。

总结来说,actor_loss 的目标是通过最大化优势(Advantage)来提高策略在环境中的表现,通常通过最小化负的策略梯度来实现。不同算法对 actor_loss 的定义可能略有不同,但核心思想都是通过优势函数来衡量动作的质量,并更新策略以提升选取好动作的概率。

2 AC(Actor-Critic)

AC(Actor-Critic)方法中的 Actor Loss

AC(Actor-Critic)方法是一种结合了策略学习和价值学习的强化学习算法。它通过演员(Actor)和评论员(Critic)之间的协作来实现策略的改进。下面是对 AC 方法中 Actor Loss 的详细讲解。

1. Actor-Critic 框架概述

  • Actor(演员):负责学习策略(Policy) π θ ( s ) \pi_\theta(s) πθ(s),即给定当前的状态 (s),输出每个可能动作的概率分布。演员的目标是基于学习到的策略直接与环境交互,选择动作。
  • Critic(评论员):负责评估当前策略的表现。具体来说,它估计每个状态或状态-动作对的价值Value,通常用状态价值函数 V ( s ) V(s) V(s)或动作价值函数 Q ( s , a ) Q(s, a) Q(s,a)表示。Critic 主要用于指导 Actor 改进其策略。

Actor 和 Critic 的结合,使得 AC 方法既能获得策略的导数方向(由 Actor 获得),也能通过 Critic 提供的价值函数评估策略的好坏,帮助策略朝更好的方向改进。

2. Actor Loss 的定义

在 Actor-Critic 方法中,演员(Actor)的目标是学习一个策略,使得它在给定状态下能够选择最优的动作。Actor Loss 定义如下:

L actor = − E τ [ log ⁡ π θ ( a t ∣ s t ) ( R t − V ( s t ) ) ] L_{\text{actor}} = -\mathbb{E}_{\tau} \left[ \log \pi_{\theta}(a_t | s_t) (R_t - V(s_t)) \right] Lactor=Eτ[logπθ(atst)(RtV(st))]

为了更好地理解 Actor Loss 的作用,下面对公式中的每一部分进行详细说明:

  1. ( π θ ( a t ∣ s t ) ) (\pi_{\theta}(a_t | s_t)) (πθ(atst))

    • ( π θ ) (\pi_{\theta}) (πθ) 是演员的策略,它以参数 θ \theta θ 为基础,表示在给定状态 ( s t ) (s_t) (st)下选择动作 ( a t ) (a_t) (at) 的概率。
    • 演员的任务是通过策略梯度提升“好”动作的选择概率。
  2. ( log ⁡ π θ ( a t ∣ s t ) ) (\log \pi_{\theta}(a_t | s_t)) (logπθ(atst))

    • 取对数的目的是为了便于计算梯度(概率乘积转化为对数求和,便于优化)。
    • 通过对数形式,损失函数能更好地应用链式法则进行反向传播,从而更新参数 ( θ ) (\theta) (θ)
  3. 优势函数 ( A t = R t − V ( s t ) ) (A_t = R_t - V(s_t)) (At=RtV(st))

    • ( R t ) (R_t) (Rt) 是实际的累积回报,通常表示从时间步 ( t ) (t) (t) 开始的累计折扣奖励。
    • ( V ( s t ) ) (V(s_t)) (V(st)) 是评论员(Critic)估计的状态 ( s t ) (s_t) (st)的价值。
    • ( A t = R t − V ( s t ) ) (A_t = R_t - V(s_t)) (At=RtV(st)) 表示动作 ( a t ) (a_t) (at) 的优势(Advantage)。它衡量的是在状态 ( s t ) (s_t) (st) 选择动作 ( a t ) (a_t) (at)的表现相比于平均策略表现的好坏。
      • 如果 A t > 0 A_t > 0 At>0,表示动作 a t a_t at 的表现好于平均水平,此时演员应该增加选择该动作的概率。
      • 如果 A t < 0 A_t < 0 At<0,表示动作 a t a_t at 的表现差于平均水平,此时演员应该减少选择该动作的概率。
  4. 负号的作用

    • Actor Loss 中包含一个负号,目的是将优化目标转换为最小化问题。
    • 在深度学习中,常用梯度下降法来最小化损失函数。通过添加负号,损失函数的最小化相当于增加优势函数为正的动作的概率,减少优势函数为负的动作的概率,从而优化策略。

3. Actor Loss 的意义

  • 最小化损失以改进策略

    • Actor Loss 的核心目标是通过最小化损失来更新策略参数 ( θ ) (\theta) (θ),使得优势(Advantage)较大的动作被选择的概率更大,优势较小的动作被选择的概率减少。
    • 损失函数中包含了优势函数 ( A t ) (A_t) (At),这意味着更新策略时考虑了动作的好坏,优先增加表现好的动作的选择概率。
  • 指导策略改进

    • Critic 提供的状态价值函数 ( V ( s t ) ) (V(s_t)) (V(st)) 作为 Actor 的参考,帮助 Actor 确定当前动作是否优于平均水平。
    • Actor 借助 Critic 的反馈信息来更新自身的策略,从而在与环境的交互中不断提升自身的表现。

4. Actor-Critic 的更新流程

  1. 环境交互:在当前状态 ( s t ) (s_t) (st) 下,Actor 使用策略 ( π θ ( a t ∣ s t ) ) (\pi_{\theta}(a_t | s_t)) (πθ(atst)) 选择动作 ( a t ) (a_t) (at) 并与环境交互。
  2. 获得奖励:从环境获得即时奖励 ( r t ) (r_t) (rt) 和下一状态 ( s t + 1 ) (s_{t+1}) (st+1)
  3. Critic 估值:Critic 使用状态价值函数 ( V ( s t ) ) (V(s_t)) (V(st)) 对当前状态进行评估,并计算 TD 误差: [ δ t = r t + γ V ( s t + 1 ) − V ( s t ) ] [ \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t) ] [δt=rt+γV(st+1)V(st)] 其中 ( γ ) (\gamma) (γ) 是折扣因子,表示未来奖励的重要性。
  4. 更新 Critic:使用 TD 误差 ( δ t ) (\delta_t) (δt) 更新 Critic 的参数。
  5. 更新 Actor:根据优势函数 ( A t = δ t ) (A_t = \delta_t) (At=δt) 更新 Actor 的策略参数,以最小化 Actor Loss。

5. 总结

AC(Actor-Critic)方法中的 Actor Loss 通过结合 Critic 的评估,指导 Actor 改进策略。损失函数的核心思想是通过优势函数衡量动作的质量,以增加优质动作的选择概率并减少劣质动作的选择概率。这样,Actor-Critic 方法能够高效地对策略进行优化,使得智能体在与环境的长期交互中表现得越来越好。

3 轨迹(trajectory)

( τ ) (\tau) (τ)的定义

在强化学习中,符号 τ \tau τ 通常用来表示整个轨迹(trajectory),也叫做路径情节(episode)。它包含了智能体从起始状态到终止状态的所有状态、动作以及奖励序列。因此, τ \tau τ 的作用是表示强化学习过程中智能体与环境交互的完整记录,用于计算预期的损失。

( τ ) (\tau) (τ) 通常定义为状态-动作序列,描述从起点到终点的整个轨迹。一般形式为:

τ = ( s 0 , a 0 , r 0 , s 1 , a 1 , r 1 , … , s T ) \tau = (s_0, a_0, r_0, s_1, a_1, r_1, \dots, s_T) τ=(s0,a0,r0,s1,a1,r1,,sT)

其中:

  • ( s t ) (s_t) (st):表示在时间步 ( t ) (t) (t)时的状态。
  • ( a t ) (a_t) (at):表示在状态 ( s t ) (s_t) (st) 时采取的动作。
  • ( r t ) (r_t) (rt):表示在时间步 ( t ) (t) (t) 时从环境中获得的即时奖励。
  • ( T ) (T) (T):表示轨迹的结束时间步,通常是一个终止状态或者达到了某个最大步数。

在 Actor-Critic 方法的 Actor Loss 公式中, ( τ ) (\tau) (τ) 代表了智能体在与环境交互时可能经历的所有轨迹。具体来说,损失函数中的 ( E τ ) (\mathbb{E}_{\tau}) (Eτ) 表示对轨迹 ( τ ) (\tau) (τ) 的期望值,也就是在不同的状态和动作序列下,取它们的平均。

( τ ) (\tau) (τ) 的作用

在 Actor Loss 的公式中:

L actor = − E τ [ log ⁡ π θ ( a t ∣ s t ) ( R t − V ( s t ) ) ] L_{\text{actor}} = -\mathbb{E}_{\tau} \left[ \log \pi_{\theta}(a_t | s_t) (R_t - V(s_t)) \right] Lactor=Eτ[logπθ(atst)(RtV(st))]

( τ ) (\tau) (τ)的作用可以理解为用来表示整个轨迹的期望。这里的期望指的是智能体在不同的轨迹下计算损失的平均效果。由于强化学习中的环境具有不确定性,智能体从状态 ( s t ) (s_t) (st) 开始所经历的轨迹并不唯一,因此通过对所有可能轨迹 ( τ ) (\tau) (τ) 的期望来计算损失,以确保策略的更新是对不同可能情况的整体表现进行改进。

具体来说, ( E τ ) (\mathbb{E}_{\tau}) (Eτ) 表示对轨迹的采样(即智能体在环境中探索得到的多个轨迹)进行求和,并求平均,以获得 Actor Loss 的期望值。这意味着损失函数并不只针对某个特定轨迹,而是希望考虑到多种不同的轨迹,以便对策略进行更加鲁棒的优化。

轨迹期望的计算

在实际操作中, ( E τ ) (\mathbb{E}_{\tau}) (Eτ) 一般是通过采样来近似计算的。智能体通过与环境多次交互,生成一批不同的轨迹,然后在这些采样轨迹上对损失函数进行估计。可以总结如下:

  1. 采样轨迹:在当前策略 ( π θ ) (\pi_\theta) (πθ) 下,与环境进行多次交互,采集一批完整的轨迹 ( τ 1 , τ 2 , … , τ n ) (\tau_1, \tau_2, \dots, \tau_n) (τ1,τ2,,τn)
  2. 计算损失:对于每条轨迹,计算相应的损失值,然后对所有轨迹的损失进行平均,从而得到整体损失的估计。
  3. 更新策略:根据平均损失对策略参数 ( θ ) (\theta) (θ) 进行更新。

因此, ( τ ) (\tau) (τ)在这个公式中的主要作用是概括表示所有可能的轨迹,并且通过对轨迹的期望来计算损失,以使得策略改进不仅对某一特定状态有效,而是对整体表现进行提升。

总结

  • ( τ ) (\tau) (τ) 表示智能体与环境交互的完整轨迹,包括所有状态、动作、奖励的序列。
  • 在 Actor Loss 中, ( τ ) (\tau) (τ) 用于表示对整个轨迹的期望,以确保策略改进是针对不同轨迹的平均效果。
  • 在实际中,这个期望值通过对多个采样轨迹进行平均来近似计算。

这种方式使得 Actor-Critic 算法可以综合考虑多种情况,使得策略的改进在各种环境状态下都更加稳定和鲁棒。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值