- 强化学习基础概念
- 一、策略模型
- 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) π(a∣s),其中 s s s 表示状态, a a a 表示动作, π ( a ∣ s ) \pi(a|s) π(a∣s) 表示在状态 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) π(a∣s),智能体根据这个概率分布随机选择动作。随机性策略在探索环境中非常有用,因为它允许智能体尝试不同的动作,从而发现更好的行为模式。
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+1∣St=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+1∣St=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)在优化过程中保持稳定,避免过度偏离初始的策略或生成不符合要求的结果。
参考模型的应用
在强化学习中,参考模型的应用场景主要包括以下几种:
- 约束策略更新:在RLHF(Reinforcement Learning from Human Feedback)和PPO(Proximal Policy Optimization)等算法中,参考模型通常是一个经过监督微调(SFT)的模型,用于计算KL散度(Kullback-Leibler Divergence),以约束策略模型的更新,防止其偏离初始策略。
- 对比学习:在DPO(Direct Preference Optimization)等算法中,参考模型用于对比策略模型的输出,帮助优化策略模型,使其生成的结果更符合人类偏好。
- 提供基线:在一些强化学习算法中,参考模型可以提供一个基线性能,用于评估策略模型的改进程度。
参考模型的作用
- 保持稳定性:通过约束策略模型的更新,参考模型可以帮助训练过程保持稳定,避免策略模型在优化过程中出现剧烈波动。
- 提高对齐性:参考模型可以作为人类偏好的代理,帮助策略模型生成更符合人类期望的结果。
- 简化训练流程:在某些算法中,参考模型可以替代复杂的奖励模型或价值函数,从而简化训练流程。
参考模型的总结
参考模型是用来限制策略模型在更新时不让其偏离基础模型太远,不参与参数更新,由策略模型进行初始化。
五、策略损失
在强化学习中,策略损失(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=0∑Tγ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(at∣st)πθ(at∣st)At,clip(πθold(at∣st)πθ(at∣st),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(πθ(a∣s)+πθ(a′∣s)πθ(a∣s))]
其中:
- s s s 是状态。
- a a a 和 a ′ a' a′ 是两个动作,其中 a a a 是更受人类偏好的动作。
- π θ ( a ∣ s ) \pi_\theta(a|s) πθ(a∣s) 是策略在状态 s s s 下选择动作 a a a 的概率。
DPO 损失通过优化策略,使其更倾向于选择人类偏好的动作,从而提高生成结果的质量。
3. 策略损失的作用
策略损失在强化学习中具有以下重要作用:
- 指导策略优化:通过最小化策略损失,可以逐步改进策略,使其能够获得更高的累积奖励。
- 衡量策略性能:策略损失可以作为衡量当前策略性能的一个指标,通过观察策略损失的变化,可以判断策略是否在逐步优化。
- 控制策略更新:在一些算法中,策略损失可以通过引入约束或截断机制,控制策略更新的幅度,防止策略在每次更新时发生过大的变化,从而提高训练的稳定性。
4. 策略损失的优化
优化策略损失是强化学习中的一个核心问题,常见的优化方法包括:
- 梯度上升:通过计算策略损失的梯度,并使用梯度上升方法更新策略参数 θ \theta θ,从而最大化累积奖励的期望值。
- 截断概率比:在 PPO 中,通过引入截断的概率比,限制策略更新的幅度,从而提高训练的稳定性。
- 对比学习:在 DPO 中,通过对比两个动作的概率,优化策略使其更倾向于选择人类偏好的动作。
策略梯度损失的计算
策略梯度损失的计算涉及以下步骤:
- 采样轨迹:从当前策略 π θ \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)。
- 计算累积奖励:对于每个时间步 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=t∑Tγk−tRk+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πθ(at∣st)⋅Gt
- 更新策略参数:沿着梯度的方向更新策略参数 θ \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)。
常见的价值损失形式
-
均方误差损失(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) 是目标值(通常是通过贝尔曼方程计算得到的)。 -
二元交叉熵损失(Binary Cross-Entropy Loss):
二元交叉熵损失在某些情况下也被用于价值函数的优化,尤其是在处理概率分布或分类问题时。它能够提供更稳定的梯度,尤其是在目标值为0或1的情况下。
价值损失的作用
价值损失在强化学习中具有以下重要作用:
- 优化价值函数:通过最小化价值损失,可以优化价值函数的参数,使其能够更准确地预测累积奖励的期望值。
- 指导策略优化:准确的价值函数可以为策略优化提供更好的指导,帮助策略模型更有效地选择动作。
价值损失的优化
优化价值损失通常涉及以下步骤:
- 采样数据:从环境中采样状态或状态-动作对及其对应的奖励和下一个状态。
- 计算目标值:根据贝尔曼方程计算目标值,例如对于状态值函数:
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) - 计算损失:根据选择的价值损失函数(如MSE或二元交叉熵损失)计算当前估计值与目标值之间的损失。
- 更新参数:通过反向传播计算损失函数的梯度,并更新价值函数的参数。
总结
价值损失是强化学习中用于优化价值函数的关键工具。通过最小化价值损失,可以提高价值函数的准确性,从而为策略优化提供更好的指导。常见的价值损失函数包括均方误差损失和二元交叉熵损失,它们各有优缺点,适用于不同的场景。
七、基于策略的强化学习优化目标
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πθ(at∣st)⋅Gt]
公式解释:
- J ( θ ) J(\theta) J(θ) 是策略性能,即累积奖励的期望值。
- π θ ( a t ∣ s t ) \pi_\theta(a_t|s_t) πθ(at∣st) 是在策略 π \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∑∞γk−tRk+1
- ∇ θ log π θ ( a t ∣ s t ) \nabla_\theta \log \pi_\theta(a_t|s_t) ∇θlogπθ(at∣st) 是策略函数的对数概率关于参数 θ \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=0∑Tγt∇θlogπθ(at∣st)⋅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πθ(at∣st)⋅Gt]
公式解释:
- log π θ ( a t ∣ s t ) \log \pi_\theta(a_t|s_t) logπθ(at∣st) 是策略函数的对数概率。
- 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=0∑T∇θlogπθ(at∣st)⋅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πθ(at∣st)⋅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(at∣st)πθ(at∣st) 是新策略与旧策略的概率比率。
- 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方法。这些方法通过不同的策略损失函数和优化机制,逐步改进策略,使其能够获得更高的累积奖励。