《强化学习基础概念:四大模型与两大损失》

  • 强化学习基础概念
    • 一、策略模型
      • 1. 策略的定义
      • 2. 策略的作用
      • 3.策略模型
    • 二、价值模型
      • 1. 价值函数的定义
        • (1)状态值函数(State Value Function)
        • (2)动作值函数(Action Value Function)
      • 2. 价值函数的作用
        • (1)评估策略
        • (2)指导策略改进
        • (3)帮助决策
      • 3. 价值模型
    • 三、奖励模型
      • 奖励模型的定义
      • 奖励模型的作用
      • 奖励模型的类型
      • 奖励模型总结
    • 四、参考模型
      • 参考模型的定义
      • 参考模型的应用
      • 参考模型的作用
      • 参考模型的总结
    • 五、策略损失
      • 1. 策略损失的定义
      • 2. 常见的策略损失形式
        • (1)策略梯度损失(Policy Gradient Loss)
        • (2)PPO(Proximal Policy Optimization)损失
        • (3)DPO(Direct Preference Optimization)损失
      • 3. 策略损失的作用
      • 4. 策略损失的优化
      • 策略梯度损失的计算
      • 策略梯度损失的优化
      • 策略梯度损失与深度学习梯度下降的对比
      • 5. 策略损失的总结
    • 六价值损失
      • 价值损失的定义
      • 常见的价值损失形式
      • 价值损失的作用
      • 价值损失的优化
      • 总结
    • 七、基于策略的强化学习优化目标
      • 1. 基于策略的强化学习的优化目标
      • 2. 策略梯度定理
      • 3. 策略损失函数
      • 4. 策略优化方法
        • (1)REINFORCE算法
        • (2)PPO(Proximal Policy Optimization)
        • (3)Actor-Critic方法
      • 5. 总结

强化学习基础概念

首先介绍四个模型和两个损失

一、策略模型

什么是强化学习的策略

在强化学习中,策略(Policy)是核心概念之一,它定义了智能体(Agent)在给定状态下如何选择动作。

1. 策略的定义

策略是一个函数,它将状态映射到动作的概率分布。用数学符号表示为 π ( a ∣ s ) \pi(a|s) π(as),其中 s s s 表示状态, a a a 表示动作, π ( a ∣ s ) \pi(a|s) π(as) 表示在状态 s s s 下选择动作 a a a 的概率。策略决定了智能体在环境中如何行动,从而影响其获得的奖励和最终的学习效果。

  • 确定性策略(Deterministic Policy):对于每个状态 s s s,策略 π \pi π 映射到一个唯一确定的动作 a a a,即 π ( s ) = a \pi(s) = a π(s)=a。在这种情况下,智能体在给定状态下总是选择同一个动作。
  • 随机性策略(Stochastic Policy):对于每个状态 s s s,策略 π \pi π 给出一个动作的概率分布 π ( a ∣ s ) \pi(a|s) π(as),智能体根据这个概率分布随机选择动作。随机性策略在探索环境中非常有用,因为它允许智能体尝试不同的动作,从而发现更好的行为模式。

2. 策略的作用

  • 决策依据:策略是智能体在环境中做出决策的依据。智能体根据当前状态和策略来选择动作,从而与环境进行交互。
  • 影响轨迹:策略决定了智能体在环境中的行动轨迹(Trajectory),即状态和动作的序列。不同的策略会导致不同的轨迹,进而影响智能体获得的奖励。
  • 学习目标:在强化学习中,学习的目标是找到一个最优策略 π ∗ \pi^* π,使得智能体在该策略下能够获得最大的累积奖励。通过不断调整策略,智能体可以逐步改进其行为,从而更好地适应环境。

3.策略模型

我们可以使用大模型来表示策略模型,比如使用一个神经网络来表示策略模型,在PPO算法中,我们可以将语言模型当作策略,它是待优化的模型,参与参数更新

二、价值模型

价值用于衡量智能体在特定状态下或采取特定动作时的长期收益。价值函数是强化学习算法中用于评估策略优劣的关键工具,通过价值函数,智能体可以判断在给定策略下,不同状态或动作的相对重要性。

1. 价值函数的定义

价值函数(Value Function)是衡量智能体在给定策略下,从某个状态或状态-动作对开始,能够获得的长期累积奖励的期望值。根据其定义的侧重点不同,价值函数主要分为以下两种类型:

(1)状态值函数(State Value Function)

状态值函数 V π ( s ) V_\pi(s) Vπ(s) 表示在策略 π \pi π 下,从状态 s s s 开始,智能体能够获得的累积奖励的期望值。数学上可以表示为:
V π ( s ) = E π [ ∑ t = 0 ∞ γ t R t + 1 ∣ S t = s ] V_\pi(s) = \mathbb{E}_\pi\left[\sum_{t=0}^{\infty} \gamma^t R_{t+1} \mid S_t = s\right] Vπ(s)=Eπ[t=0γtRt+1St=s]
其中:

  • R t + 1 R_{t+1} Rt+1 是在时间步 t + 1 t+1 t+1 获得的奖励。

  • γ \gamma γ 是折扣因子( 0 ≤ γ < 1 0 \leq \gamma < 1 0γ<1),用于衡量未来奖励的当前价值, γ \gamma γ 越接近 1,未来奖励的当前价值越高。

  • E π \mathbb{E}_\pi Eπ 表示在策略 π \pi π 下的期望。

状态值函数反映了在给定策略下,某个状态的“价值”或“重要性”。值越高,说明从该状态开始,智能体能够获得更多的累积奖励。

(2)动作值函数(Action Value Function)

动作值函数 Q π ( s , a ) Q_\pi(s, a) Qπ(s,a) 表示在策略 π \pi π 下,从状态 s s s 开始并采取动作 a a a 后,智能体能够获得的累积奖励的期望值。数学上可以表示为:
Q π ( s , a ) = E π [ ∑ t = 0 ∞ γ t R t + 1 ∣ S t = s , A t = a ] Q_\pi(s, a) = \mathbb{E}_\pi\left[\sum_{t=0}^{\infty} \gamma^t R_{t+1} \mid S_t = s, A_t = a\right] Qπ(s,a)=Eπ[t=0γtRt+1St=s,At=a]
动作值函数不仅考虑了当前状态,还考虑了当前采取的动作,因此它能够更细致地评估在特定状态下采取不同动作的优劣。

2. 价值函数的作用

价值函数在强化学习中具有以下重要作用:

(1)评估策略

通过计算状态值函数 V π ( s ) V_\pi(s) Vπ(s) 或动作值函数 Q π ( s , a ) Q_\pi(s, a) Qπ(s,a),可以评估当前策略 π \pi π 的性能。如果一个策略在所有状态下的价值函数值都较高,说明该策略能够使智能体获得更多的累积奖励,是一个较好的策略。

(2)指导策略改进

价值函数可以为策略的改进提供指导。例如,在策略迭代(Policy Iteration)算法中,通过计算状态值函数来评估当前策略,然后根据状态值函数来改进策略,使得智能体在每个状态下都选择价值最高的动作。

在值函数迭代(Value Iteration)算法中,直接通过动作值函数来更新策略,选择使 Q π ( s , a ) Q_\pi(s, a) Qπ(s,a) 最大的动作作为新的策略。

(3)帮助决策

在实际决策过程中,智能体可以根据动作值函数 Q π ( s , a ) Q_\pi(s, a) Qπ(s,a) 来选择动作。例如,在 ϵ \epsilon ϵ-贪婪策略中,智能体以 1 − ϵ 1 - \epsilon 1ϵ 的概率选择使 Q π ( s , a ) Q_\pi(s, a) Qπ(s,a) 最大的动作,以 ϵ \epsilon ϵ 的概率随机选择动作,从而在探索和利用之间进行平衡。

3. 价值模型

在PPO算法中我们可以使用大模型来作为价值模型,它可以计算当前动作和状态的期望回报,可有奖励模型和策略模型初始化而成,参与参数更新

三、奖励模型

奖励模型(Reward Model)是强化学习中一个关键的组成部分,它通过为智能体的行为或输出分配奖励值,来指导智能体的学习方向。以下是关于奖励模型的详细介绍:

  • 单步奖励 :根据当前状态、动作和下一个状态由奖励模型得到的即时奖励,评估当前动作的好坏
  • 累计奖励:一条完整轨迹的单步奖励之和
  • 折扣奖励:平衡即时奖励和长期奖励之间的关系,使得智能体在决策时不经要考虑当前的奖励,还要考虑未来的潜在奖励。
  • 轨迹:轨迹由一系列的状态、动作组成,代表一次完整的采样,即大模型生成一条完整的句子。

奖励模型的定义

奖励模型是一种用于量化评估智能体行为或输出质量的模型,其核心任务是根据给定的输入和反馈来预测奖励值。在强化学习中,奖励模型的输出通常是一个标量值,表示对某个行为或输出的奖励,这个奖励值用于指导策略模型的优化。

奖励模型的作用

  • 指导策略优化:奖励模型的输出作为强化学习算法中的奖励信号,直接指导策略模型的优化方向。例如,在RLHF(Reinforcement Learning from Human Feedback)中,奖励模型通过整合人类反馈,帮助强化学习算法更有效地优化策略。
  • 评估输出质量:奖励模型可以对智能体的输出进行质量评估,判断其是否符合人类偏好或任务要求。
  • 替代环境奖励:在一些场景中,环境提供的奖励信号可能不够准确或难以获取,奖励模型可以替代环境奖励,成为策略模型优化的唯一奖励来源。

奖励模型的类型

常见的奖励模型主要有以下两种形式:

  • 结果奖励模型(Outcome Reward Model,ORM):这种模型关注的是最终结果的质量,即对生成的输出整体进行打分评估。例如,在文本生成任务中,ORM会对生成的完整文本进行评分。
  • 过程奖励模型(Process Reward Model,PRM):与ORM不同,PRM不仅关注最终结果,还会在生成过程中对每一步进行打分,是一种更细粒度的奖励模型。

奖励模型总结

计算当前的动作的即时奖励不参与参数更新

四、参考模型

在强化学习和人工智能领域,参考模型(Reference Model) 是一种用于辅助训练和优化的模型,它通常作为基准或对比标准,帮助指导策略模型的训练方向。以下是参考模型的详细解释:

参考模型的定义

参考模型是一种预训练好的模型,通常用于在训练过程中提供额外的约束或指导。它可以帮助策略模型(Actor Model)在优化过程中保持稳定,避免过度偏离初始的策略或生成不符合要求的结果。

参考模型的应用

在强化学习中,参考模型的应用场景主要包括以下几种:

  1. 约束策略更新:在RLHF(Reinforcement Learning from Human Feedback)和PPO(Proximal Policy Optimization)等算法中,参考模型通常是一个经过监督微调(SFT)的模型,用于计算KL散度(Kullback-Leibler Divergence),以约束策略模型的更新,防止其偏离初始策略。
  2. 对比学习:在DPO(Direct Preference Optimization)等算法中,参考模型用于对比策略模型的输出,帮助优化策略模型,使其生成的结果更符合人类偏好。
  3. 提供基线:在一些强化学习算法中,参考模型可以提供一个基线性能,用于评估策略模型的改进程度。

参考模型的作用

  • 保持稳定性:通过约束策略模型的更新,参考模型可以帮助训练过程保持稳定,避免策略模型在优化过程中出现剧烈波动。
  • 提高对齐性:参考模型可以作为人类偏好的代理,帮助策略模型生成更符合人类期望的结果。
  • 简化训练流程:在某些算法中,参考模型可以替代复杂的奖励模型或价值函数,从而简化训练流程。

参考模型的总结

参考模型是用来限制策略模型在更新时不让其偏离基础模型太远,不参与参数更新,由策略模型进行初始化。

五、策略损失

在强化学习中,策略损失(Policy Loss) 是衡量当前策略性能的一个关键指标,它反映了当前策略与最优策略之间的差距。策略损失通常用于指导策略模型(Policy Model)的优化,通过最小化策略损失,可以逐步改进策略,使其能够获得更高的累积奖励。

1. 策略损失的定义

策略损失是通过某种方式量化当前策略 π θ \pi_\theta πθ 与最优策略 π ∗ \pi^* π 之间的差异。在不同的强化学习算法中,策略损失的定义和计算方式可能有所不同,但其核心目标是通过优化策略参数 θ \theta θ 来最大化累积奖励的期望值。

2. 常见的策略损失形式

以下是几种常见的策略损失形式及其计算方式:

(1)策略梯度损失(Policy Gradient Loss)

策略梯度方法通过最大化累积奖励的期望值来优化策略。策略梯度损失通常定义为:
L ( θ ) = − E π θ [ ∑ t = 0 T γ t R t + 1 ] L(\theta) = -\mathbb{E}_{\pi_\theta}\left[\sum_{t=0}^{T} \gamma^t R_{t+1}\right] L(θ)=Eπθ[t=0TγtRt+1]
其中:

  • π θ \pi_\theta πθ 是当前策略。
  • R t + 1 R_{t+1} Rt+1 是在时间步 t + 1 t+1 t+1 获得的奖励。
  • γ \gamma γ 是折扣因子。
  • T T T 是轨迹的长度。

策略梯度损失的目标是最小化这个损失函数,从而最大化累积奖励的期望值。通过计算这个损失函数的梯度,并使用梯度上升方法更新策略参数 θ \theta θ,可以逐步改进策略。

(2)PPO(Proximal Policy Optimization)损失

PPO 是一种改进的策略梯度方法,它通过引入截断的概率比来防止策略更新过大,从而提高训练的稳定性。PPO 的策略损失定义为:
L C L I P ( θ ) = E t [ min ⁡ ( π θ ( a t ∣ s t ) π θ o l d ( a t ∣ s t ) A t , clip ( π θ ( a t ∣ s t ) π θ o l d ( a t ∣ s t ) , 1 − ϵ , 1 + ϵ ) A t ) ] L^{CLIP}(\theta) = \mathbb{E}_t\left[\min\left(\frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)} A_t, \text{clip}\left(\frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}, 1 - \epsilon, 1 + \epsilon\right) A_t\right)\right] LCLIP(θ)=Et[min(πθold(atst)πθ(atst)At,clip(πθold(atst)πθ(atst),1ϵ,1+ϵ)At)]
其中:

  • π θ o l d \pi_{\theta_{old}} πθold 是上一次更新的策略。
  • A t A_t At 是优势函数(Advantage Function),表示在状态 s t s_t st 下采取动作 a t a_t at 的优势。
  • ϵ \epsilon ϵ 是一个超参数,用于控制截断的范围。

PPO 损失通过限制策略更新的幅度,防止策略在每次更新时发生过大的变化,从而提高训练的稳定性和收敛速度。

(3)DPO(Direct Preference Optimization)损失

DPO 是一种基于人类偏好的强化学习方法,它直接优化策略以生成更符合人类偏好的输出。DPO 的策略损失定义为:
L D P O ( θ ) = E s , a , a ′ [ log ⁡ ( π θ ( a ∣ s ) π θ ( a ∣ s ) + π θ ( a ′ ∣ s ) ) ] L^{DPO}(\theta) = \mathbb{E}_{s, a, a'}\left[\log\left(\frac{\pi_\theta(a|s)}{\pi_\theta(a|s) + \pi_\theta(a'|s)}\right)\right] LDPO(θ)=Es,a,a[log(πθ(as)+πθ(as)πθ(as))]
其中:

  • s s s 是状态。
  • a a a a ′ a' a 是两个动作,其中 a a a 是更受人类偏好的动作。
  • π θ ( a ∣ s ) \pi_\theta(a|s) πθ(as) 是策略在状态 s s s 下选择动作 a a a 的概率。

DPO 损失通过优化策略,使其更倾向于选择人类偏好的动作,从而提高生成结果的质量。

3. 策略损失的作用

策略损失在强化学习中具有以下重要作用:

  • 指导策略优化:通过最小化策略损失,可以逐步改进策略,使其能够获得更高的累积奖励。
  • 衡量策略性能:策略损失可以作为衡量当前策略性能的一个指标,通过观察策略损失的变化,可以判断策略是否在逐步优化。
  • 控制策略更新:在一些算法中,策略损失可以通过引入约束或截断机制,控制策略更新的幅度,防止策略在每次更新时发生过大的变化,从而提高训练的稳定性。

4. 策略损失的优化

优化策略损失是强化学习中的一个核心问题,常见的优化方法包括:

  • 梯度上升:通过计算策略损失的梯度,并使用梯度上升方法更新策略参数 θ \theta θ,从而最大化累积奖励的期望值。
  • 截断概率比:在 PPO 中,通过引入截断的概率比,限制策略更新的幅度,从而提高训练的稳定性。
  • 对比学习:在 DPO 中,通过对比两个动作的概率,优化策略使其更倾向于选择人类偏好的动作。

策略梯度损失的计算

策略梯度损失的计算涉及以下步骤:

  1. 采样轨迹:从当前策略 π θ \pi_\theta πθ 中采样一条轨迹 τ = ( s 0 , a 0 , r 1 , s 1 , a 1 , r 2 , … , s T , a T , r T + 1 ) \tau = (s_0, a_0, r_1, s_1, a_1, r_2, \ldots, s_T, a_T, r_{T+1}) τ=(s0,a0,r1,s1,a1,r2,,sT,aT,rT+1)
  2. 计算累积奖励:对于每个时间步 t t t,计算从 t t t 开始到轨迹结束的累积奖励:

G t = ∑ k = t T γ k − t R k + 1 G_t = \sum_{k=t}^{T} \gamma^{k-t} R_{k+1} Gt=k=tTγktRk+1

  1. 计算梯度:对于每个时间步 t t t,计算策略梯度损失函数的梯度:

∇ θ L ( θ ) = − ∇ θ log ⁡ π θ ( a t ∣ s t ) ⋅ G t \nabla_\theta L(\theta) = -\nabla_\theta \log \pi_\theta(a_t|s_t) \cdot G_t θL(θ)=θlogπθ(atst)Gt

  1. 更新策略参数:沿着梯度的方向更新策略参数 θ \theta θ

θ ← θ + α ∇ θ L ( θ ) \theta \leftarrow \theta + \alpha \nabla_\theta L(\theta) θθ+αθL(θ)
其中 α \alpha α 是学习率。

策略梯度损失的优化

策略梯度方法通过不断采样轨迹、计算梯度和更新策略参数,从而逐步改进策略,使其能够获得更高的累积奖励。这个过程可以看作是在策略空间中进行梯度下降,不断接近策略梯度损失函数的最低点。

策略梯度损失与深度学习梯度下降的对比

  • 目标不同:深度学习中的梯度下降是为了最小化损失函数,而策略梯度是为了最大化累积奖励的期望值。
  • 梯度方向不同:深度学习中的梯度下降是沿着梯度的反方向更新参数,而策略梯度是沿着梯度的方向更新参数。
  • 采样方式不同:深度学习中的梯度下降通常使用整个数据集或其子集来计算梯度,而策略梯度是通过采样轨迹来计算梯度。

5. 策略损失的总结

策略损失是强化学习中用于衡量当前策略性能的一个关键指标,通过最小化策略损失,可以逐步改进策略,使其能够获得更高的累积奖励。不同的强化学习算法中,策略损失的定义和计算方式可能有所不同,但其核心目标是通过优化策略参数,提高策略的性能。

六价值损失

在强化学习中,价值损失(Value Loss) 是用于衡量价值函数估计的准确性的损失函数。它通常用于优化价值函数,使其能够更准确地预测在给定策略下从某个状态或状态-动作对开始的累积奖励的期望值。

价值损失的定义

价值损失函数是针对价值函数(如状态值函数 V π ( s ) V_\pi(s) Vπ(s) 或动作值函数 Q π ( s , a ) Q_\pi(s, a) Qπ(s,a))的优化目标。它的目的是最小化价值函数的估计值与真实值之间的差异。常见的价值损失函数包括均方误差(Mean Squared Error, MSE)和二元交叉熵损失(Binary Cross-Entropy Loss)。

常见的价值损失形式

  1. 均方误差损失(MSE Loss)
    均方误差损失是最常用的价值损失函数之一,它计算价值函数的估计值与目标值之间的平方差的均值。对于状态值函数 V π ( s ) V_\pi(s) Vπ(s),其损失函数可以表示为:
    L V ( θ V ) = E s [ ( V π ( s ) − V θ ( s ) ) 2 ] L_V(\theta_V) = \mathbb{E}_s\left[(V_\pi(s) - V_\theta(s))^2\right] LV(θV)=Es[(Vπ(s)Vθ(s))2]
    其中 V θ ( s ) V_\theta(s) Vθ(s) 是价值函数的估计值, V π ( s ) V_\pi(s) Vπ(s) 是目标值(通常是通过贝尔曼方程计算得到的)。

  2. 二元交叉熵损失(Binary Cross-Entropy Loss)
    二元交叉熵损失在某些情况下也被用于价值函数的优化,尤其是在处理概率分布或分类问题时。它能够提供更稳定的梯度,尤其是在目标值为0或1的情况下。

价值损失的作用

价值损失在强化学习中具有以下重要作用:

  • 优化价值函数:通过最小化价值损失,可以优化价值函数的参数,使其能够更准确地预测累积奖励的期望值。
  • 指导策略优化:准确的价值函数可以为策略优化提供更好的指导,帮助策略模型更有效地选择动作。

价值损失的优化

优化价值损失通常涉及以下步骤:

  1. 采样数据:从环境中采样状态或状态-动作对及其对应的奖励和下一个状态。
  2. 计算目标值:根据贝尔曼方程计算目标值,例如对于状态值函数:
    V π ( s ) = R t + 1 + γ V π ( S t + 1 ) V_\pi(s) = R_{t+1} + \gamma V_\pi(S_{t+1}) Vπ(s)=Rt+1+γVπ(St+1)
  3. 计算损失:根据选择的价值损失函数(如MSE或二元交叉熵损失)计算当前估计值与目标值之间的损失。
  4. 更新参数:通过反向传播计算损失函数的梯度,并更新价值函数的参数。

总结

价值损失是强化学习中用于优化价值函数的关键工具。通过最小化价值损失,可以提高价值函数的准确性,从而为策略优化提供更好的指导。常见的价值损失函数包括均方误差损失和二元交叉熵损失,它们各有优缺点,适用于不同的场景。

七、基于策略的强化学习优化目标

1. 基于策略的强化学习的优化目标

基于策略的强化学习的优化目标是最大化累积奖励的期望值。具体来说,优化目标可以表示为:
max ⁡ π E π [ ∑ t = 0 ∞ γ t R t + 1 ] \max_\pi \mathbb{E}_\pi\left[\sum_{t=0}^{\infty} \gamma^t R_{t+1}\right] πmaxEπ[t=0γtRt+1]
公式解释:

  • π \pi π 是策略函数,表示在给定状态下选择动作的概率分布。
  • R t + 1 R_{t+1} Rt+1 是在时间步 t + 1 t+1 t+1 获得的奖励。
  • γ \gamma γ 是折扣因子,用于衡量未来奖励的当前价值,取值范围为 0 ≤ γ < 1 0 \leq \gamma < 1 0γ<1
  • E π \mathbb{E}_\pi Eπ 表示在策略 π \pi π 下的期望,即考虑所有可能的轨迹及其概率。

具体含义:
这个公式表示我们希望找到一个策略 π \pi π,使得从初始状态开始,按照该策略行动所获得的累积奖励的期望值最大化。累积奖励是所有未来奖励的折扣和,折扣因子 γ \gamma γ 用于减少未来奖励的权重,使得近期奖励比远期奖励更重要。

2. 策略梯度定理

为了实现上述优化目标,基于策略的方法通常使用策略梯度定理(Policy Gradient Theorem)。策略梯度定理提供了策略性能的梯度的解析表达式,使得可以通过梯度上升方法优化策略参数。

策略梯度定理表明,策略性能的梯度可以表示为:
∇ θ J ( θ ) = E π [ ∑ t = 0 ∞ γ t ∇ θ log ⁡ π θ ( a t ∣ s t ) ⋅ G t ] \nabla_\theta J(\theta) = \mathbb{E}_\pi\left[\sum_{t=0}^{\infty} \gamma^t \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot G_t\right] θJ(θ)=Eπ[t=0γtθlogπθ(atst)Gt]
公式解释:

  • J ( θ ) J(\theta) J(θ) 是策略性能,即累积奖励的期望值。
  • π θ ( a t ∣ s t ) \pi_\theta(a_t|s_t) πθ(atst) 是在策略 π \pi π 下,状态 s t s_t st 下选择动作 a t a_t at 的概率。
  • G t G_t Gt 是从时间步 t t t 开始的累积奖励:

G t = ∑ k = t ∞ γ k − t R k + 1 G_t = \sum_{k=t}^{\infty} \gamma^{k-t} R_{k+1} Gt=k=tγktRk+1

  • ∇ θ log ⁡ π θ ( a t ∣ s t ) \nabla_\theta \log \pi_\theta(a_t|s_t) θlogπθ(atst) 是策略函数的对数概率关于参数 θ \theta θ 的梯度。

具体含义:
这个公式表示策略性能的梯度可以通过采样轨迹来估计。对于每条采样的轨迹 τ = ( s 0 , a 0 , r 1 , s 1 , a 1 , r 2 , … ) \tau = (s_0, a_0, r_1, s_1, a_1, r_2, \ldots) τ=(s0,a0,r1,s1,a1,r2,),可以计算每个时间步 t t t 的梯度:
∇ θ J ( θ ) ≈ ∑ t = 0 T γ t ∇ θ log ⁡ π θ ( a t ∣ s t ) ⋅ G t \nabla_\theta J(\theta) \approx \sum_{t=0}^{T} \gamma^t \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot G_t θJ(θ)t=0Tγtθlogπθ(atst)Gt
其中 T T T 是轨迹的长度。通过这个梯度,我们可以使用梯度上升方法更新策略参数 θ \theta θ,从而逐步改进策略。

3. 策略损失函数

在实际实现中,策略梯度方法通常会定义一个策略损失函数(Policy Loss Function),并通过最小化这个损失函数来优化策略。策略损失函数通常定义为:
L ( θ ) = − E π [ ∑ t = 0 ∞ γ t log ⁡ π θ ( a t ∣ s t ) ⋅ G t ] L(\theta) = -\mathbb{E}_\pi\left[\sum_{t=0}^{\infty} \gamma^t \log \pi_\theta(a_t|s_t) \cdot G_t\right] L(θ)=Eπ[t=0γtlogπθ(atst)Gt]
公式解释:

  • log ⁡ π θ ( a t ∣ s t ) \log \pi_\theta(a_t|s_t) logπθ(atst) 是策略函数的对数概率。
  • G t G_t Gt 是从时间步 t t t 开始的累积奖励。
  • E π \mathbb{E}_\pi Eπ 表示在策略 π \pi π 下的期望。

具体含义:
这个损失函数是策略梯度的负值。通过最小化这个损失函数,可以最大化策略性能 J ( θ ) J(\theta) J(θ)。在实际操作中,我们通常使用采样轨迹来近似计算这个期望值。

4. 策略优化方法

基于策略的强化学习方法通过优化策略损失函数来改进策略。以下是一些常见的策略优化方法:

(1)REINFORCE算法

REINFORCE算法是最简单的策略梯度方法之一,它直接使用采样轨迹来估计策略梯度。REINFORCE算法的更新规则为:
θ ← θ + α ∑ t = 0 T ∇ θ log ⁡ π θ ( a t ∣ s t ) ⋅ G t \theta \leftarrow \theta + \alpha \sum_{t=0}^{T} \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot G_t θθ+αt=0Tθlogπθ(atst)Gt
公式解释:

  • α \alpha α 是学习率,控制参数更新的步长。
  • T T T 是轨迹的长度,表示采样轨迹的结束时间步。

具体含义:
REINFORCE算法通过采样一条完整的轨迹,计算每个时间步的梯度 ∇ θ log ⁡ π θ ( a t ∣ s t ) ⋅ G t \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot G_t θlogπθ(atst)Gt,并累加这些梯度来更新策略参数 θ \theta θ。这种方法简单易实现,但其方差较高,可能导致训练不稳定。

(2)PPO(Proximal Policy Optimization)

PPO是一种改进的策略梯度方法,通过引入剪切机制(Clipping Mechanism)来限制策略更新的幅度,从而提高训练的稳定性。PPO的策略损失函数定义为:
L C L I P ( θ ) = E t [ min ⁡ ( r t ( θ ) A t , clip ( r t ( θ ) , 1 − ϵ , 1 + ϵ ) A t ) ] 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] LCLIP(θ)=Et[min(rt(θ)At,clip(rt(θ),1ϵ,1+ϵ)At)]
公式解释:

  • r t ( θ ) = π θ ( a t ∣ s t ) π θ o l d ( a t ∣ s t ) r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)} rt(θ)=πθold(atst)πθ(atst) 是新策略与旧策略的概率比率。
  • A t A_t At 是优势函数,表示在状态 s t s_t st 下采取动作 a t a_t at 的优势。
  • ϵ \epsilon ϵ 是一个超参数,通常取值为0.1或0.2。
  • clip ( r t ( θ ) , 1 − ϵ , 1 + ϵ ) \text{clip}(r_t(\theta), 1 - \epsilon, 1 + \epsilon) clip(rt(θ),1ϵ,1+ϵ) 是对概率比率 r t ( θ ) r_t(\theta) rt(θ) 的剪切操作,限制其在 [ 1 − ϵ , 1 + ϵ ] [1 - \epsilon, 1 + \epsilon] [1ϵ,1+ϵ] 范围内。

具体含义:
PPO通过剪切机制,限制新策略与旧策略之间的概率比率,防止策略更新过大。这样可以提高训练的稳定性和收敛速度。PPO的目标函数结合了未剪切和剪切后的概率比率,取两者的最小值,从而在优化过程中保持策略更新的稳定性。

(3)Actor-Critic方法

Actor-Critic方法结合了策略梯度方法和价值函数方法的优点。其中,Actor负责优化策略,Critic负责估计价值函数。通过Critic提供的价值估计,可以降低策略梯度的方差,从而提高训练的稳定性。

5. 总结

基于策略的强化学习的优化目标是最大化累积奖励的期望值。通过策略梯度定理,可以计算策略性能的梯度,并使用梯度上升方法优化策略参数。常见的策略优化方法包括REINFORCE算法、PPO算法和Actor-Critic方法。这些方法通过不同的策略损失函数和优化机制,逐步改进策略,使其能够获得更高的累积奖励。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux课程学习二——缓存

一.文件io与标准io的一个区别 遇到死循环可以ctrl c结束进程 使用printf输出&#xff0c;输出没有问题 用wirte输出&#xff0c;参数1&#xff0c;可以理解为上面介绍的linux标准文件描述符的1&#xff08;STDOUT&#xff09;标准输出&#xff0c;我们加上一个死循环while&…

【区块链安全 | 第九篇】基于Heimdall设计的智能合约反编译项目

文章目录 背景目的安装1、安装 Rust2、克隆 heimdall-dec3、编译 heimdall-dec4、运行 heimdall-dec 使用说明1、访问 Web 界面2、输入合约信息3、查看反编译结果 实战演示1、解析普通合约2、解析代理合约 背景 在区块链安全研究中&#xff0c;智能合约的审计和分析至关重要。…

CANoe入门——CANoe的诊断模块,调用CAPL进行uds诊断

目录 一、诊断窗口介绍 二、诊断数据库文件管理 三、添加基础诊断描述文件&#xff08;若没有CDD/ODX/PDX文件&#xff09;并使用对应的诊断功能进行UDS诊断 3.1、添加基础诊断描述文件 3.2、基于基础诊断&#xff0c;使用诊断控制台进行UDS诊断 3.2.1、生成基础诊断 3.…

关于embedding向量模型的知识

环境&#xff1a; embedding 问题描述&#xff1a; 关于embedding向量模型的知识 解决方案&#xff1a; 向量模型基础 定义与本质&#xff1a;embedding向量模型是一种将离散数据&#xff08;如文本、图像、用户行为等&#xff09;映射到连续向量空间的技术。其核心思想是…

Docker远程访问与加密配置指南

实验目的 基础功能验证&#xff1a; 验证Docker远程访问的基础配置方法 测试未加密(2375端口)和TLS加密(2376端口)两种连接方式的可用性安全性对比&#xff1a; 对比防火墙开启/关闭状态下系统的暴露风险 分析未加密通信的数据传输安全性 验证TLS证书认证机制的有效性操作实践…

基于 Python 深度学习 lstm 算法的电影评论情感分析可视化系统(2.0 系统全新升级,已获高分通过)

大家好&#xff0c;欢迎来到我的技术专栏&#xff01;今天我将和大家聊聊如何利用 Python 的深度学习技术&#xff0c;打造一个集电影评论情感分析与可视化展示于一体的系统。这个系统不仅能自动采集和解析海量影评&#xff0c;还能实时生成直观的情感趋势图表&#xff0c;对于…

pytorch中dataloader自定义数据集

前言 在深度学习中我们需要使用自己的数据集做训练&#xff0c;因此需要将自定义的数据和标签加载到pytorch里面的dataloader里&#xff0c;也就是自实现一个dataloader。 数据集处理 以花卉识别项目为例&#xff0c;我们分别做出图片的训练集和测试集&#xff0c;训练集的标…

业之峰与宏图智能战略携手,开启家装数字化新篇章

3月8日&#xff0c;业之峰装饰集团董事长张钧携高管团队与宏图智能董事长庭治宏及核心团队&#xff0c;在业之峰总部隆重举行了战略合作签约仪式&#xff0c;标志着双方将携手探索业之峰的数字化转型之路&#xff0c;共同推动家装行业的变革与发展。 近年来&#xff0c;家装行业…

区块链赋能,为木材货场 “智” 造未来

区块链赋能&#xff0c;为木材货场 “智” 造未来 在当今数字化浪潮席卷的时代&#xff0c;软件开发公司不断探索创新&#xff0c;为各行业带来高效、智能的解决方案。今天&#xff0c;让我们聚焦于一家软件开发公司的杰出成果 —— 区块链木材货场服务平台&#xff0c;深入了…

Suricata 检测日志中的时间戳不正确

参考连接 Incorrect Timestamp in Suricata Detection Logs - Help - Suricata 问题现象&#xff1a; 使用 Suricata 时遇到一个问题&#xff0c;即检测日志 &#xff08;eve.json&#xff09; 中的 and 字段间歇性地显示 2106 年。这似乎偶尔发生&#xff0c;并影响其中一个…

【第34节】windows原理:PE文件的导出表和导入表

目录 一、导出表 1.1 导出表概述 1.2 说明与使用 二、导入表 2.1 导入表概述 2.2 说明与使用 一、导出表 1.1 导出表概述 &#xff08;1&#xff09;导出行为和导出表用途&#xff1a;PE文件能把自身的函数、变量或者类&#xff0c;提供给其他PE文件使用&#xff0c;这…

【计算机网络】深入解析TCP/IP参考模型:从四层架构到数据封装,全面对比OSI

TCP/IP参考模型 导读一、历史背景二、分层结构2.1 网络接口层&#xff08;Network Interface Layer&#xff09;2.2 网络层&#xff08;Internet Layer&#xff09;2.3 传输层&#xff08;Transport Layer&#xff09;2.4 应用层&#xff08;Application Layer&#xff09; 三、…

项目实战-角色列表

抄上一次写过的代码&#xff1a; import React, { useState, useEffect } from "react"; import axios from axios; import { Button, Table, Modal } from antd; import { BarsOutlined, DeleteOutlined, ExclamationCircleOutlined } from ant-design/icons;const…

LeetCode1两数之和

**思路&#xff1a;**懒得写了&#xff0c;如代码所示 /*** Note: The returned array must be malloced, assume caller calls free().*/ struct hashTable {int key;//存值int val;//存索引UT_hash_handle hh; }; int* twoSum(int* nums, int numsSize, int target, int* re…

去噪算法大比拼

目录 效果图: 实现代码: 密集抖动 pip install pykalman 效果图: 实现代码: import numpy as np import cv2 import matplotlib.pyplot as plt from scipy.ndimage import gaussian_filter1d from scipy.signal import butter, filtfilt, savgol_filter from pykalma…

STM32_HAL开发环境搭建【Keil(MDK-ARM)、STM32F1xx_DFP、 ST-Link、STM32CubeMX】

安装Keil(MDK-ARM)【集成开发环境IDE】 我们会在Keil(MDK-ARM)上去编写代码、编译代码、烧写代码、调试代码。 Keil(MDK-ARM)的安装方法&#xff1a; 教学视频的第02分03秒开始看。 安装过程中请修改一下下面两个路径&#xff0c;避免占用C盘空间。 Core就是Keil(MDK-ARM)的…

深入理解MySQL聚集索引与非聚集索引

在数据库管理系统中&#xff0c;索引是提升查询性能的关键。MySQL支持多种类型的索引&#xff0c;其中最基础也是最重要的两种是聚集索引和非聚集索引。本文将深入探讨这两种索引的区别&#xff0c;并通过实例、UML图以及Java代码示例来帮助您更好地理解和应用它们。 一、概念…

【leetcode】拆解与整合:分治并归的算法逻辑

前言 &#x1f31f;&#x1f31f;本期讲解关于力扣的几篇题解的详细介绍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么废话不…

wx162基于springboot+vue+uniapp的在线办公小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

陈宛汮签约2025火凤凰风赏大典全球形象大使

原标题&#xff1a;陈宛汮签约2025火凤凰风赏大典全球形象大使 共工新闻社香港3月29日电 陈宛汮&#xff0c;华语原创女歌手。“星宝在闪耀”公益活动联合发起人&#xff0c;自闭症儿童康复推广大使。代表作:《荣耀火凤凰》《爱在醉千年》。 从2025年1月1日至2025年12月31日&a…