LLMs基础学习(八)强化学习专题(4)

LLMs基础学习(八)强化学习专题(4)

文章目录

视频链接:https://www.bilibili.com/video/BV1MQo4YGEmq/?spm_id_from=333.1387.upload.video_card.click\&vd_source=57e4865932ea6c6918a09b65d319a99a

策略随机探索的实现逻辑


强化学习算法可抽象为 "数据收集 → 学习优化" 闭环:

  • 数据收集:智能体通过 "探索策略" 与环境交互,获取状态(state)、动作(action)、奖励(reward)。
  • 学习优化:利用采集的数据更新策略,逐步逼近最优决策。

核心矛盾 :训练阶段,当前策略并非最优,需主动尝试 "非最优动作" 探索更优解 → 策略需具备随机探索能力

策略随机探索的实现

RL 策略分为 确定性策略随机性策略 ,探索机制差异显著:

1. 确定性策略(Deterministic Policy)

  • 数学表达 : π : S → A \pi: S \to A π:S→A ,输入状态 s ,直接输出固定动作 a(同一状态始终执行相同动作 )。

  • 探索引入方式 : 因自身无随机性,需外部手段补充探索

    • ϵ − g r e e d y \boldsymbol{\epsilon - greedy} ϵ−greedy:以概率 ϵ \epsilon ϵ 随机选择动作,剩余 1 − ϵ 1 - \epsilon 1−ϵ 概率执行确定性策略(如 90% 选当前最优,10% 随机尝试 )。
    • 动作噪声注入:在输出动作上叠加高斯噪声(如机器人控制中让动作微小随机波动 ),或直接扰动策略参数。

2. 随机性策略(Stochastic Policy)

  • 数学表达 : π ( a ∣ s ) \pi(a \mid s) π(a∣s) ,输入状态 s ,输出 "选择动作 a 的概率分布"(同一状态可采样不同动作 )。
  • 探索引入方式 : 因自身携带随机性,通过采样概率分布自然实现探索:如按概率分布直接采样动作(典型如 PPO 中的概率裁剪,让策略以一定概率尝试不同动作 )。

3. Q 函数构造的确定性策略

用 Q 函数(动作价值函数)构造策略时,常见形式: π ( s ) = arg ⁡ max ⁡ a Q ( s , a ) \pi(s) = \arg\max_a Q(s, a) π(s)=argmaxaQ(s,a) (选择 Q 值最大的动作作为 "最优动作" )

纯确定性策略缺乏探索,结合 ϵ − g r e e d y \epsilon - greedy ϵ−greedy 改造: π ϵ ( s ) = { arg ⁡ max ⁡ a Q ( s , a ) 概率 1 − ϵ 随机动作 概率 ϵ \pi_\epsilon(s) = \begin{cases} \arg\max_a Q(s, a) & \text{概率 } 1 - \epsilon \\ \text{随机动作} & \text{概率 } \epsilon \end{cases} πϵ(s)={argmaxaQ(s,a)随机动作概率 1−ϵ概率 ϵ (以 ϵ \epsilon ϵ 概率探索随机动作, 1 − ϵ 1 - \epsilon 1−ϵ 概率执行最优动作 )

小结
  • 确定性策略 :自身无随机性,需通过 ϵ − g r e e d y \epsilon - greedy ϵ−greedy、动作噪声等外部方法引入探索
  • 随机性策略 :自身携带概率分布,通过采样分布天然实现探索
时序差分(SARSA) 算法全解析

SARSA(State - Action - Reward - State - Action)是基于时序差分(TD) 的强化学习算法,核心逻辑是迭代更新 Q 值(动作价值函数) ,逐步优化策略以适应环境。

Q 值更新公式

1. 核心公式

基于 "五元组 ( S t , A t , R t + 1 , S t + 1 , A t + 1 ) (S_t, A_t, R_{t+1}, S_{t+1}, A_{t+1}) (St,At,Rt+1,St+1,At+1)" 更新 Q 值: Q ( S t , A t ) ← Q ( S t , A t ) + α [ R t + 1 + γ Q ( S t + 1 , A t + 1 ) − Q ( S t , A t ) ] Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha \left[ R_{t+1} + \gamma Q(S_{t+1}, A_{t+1}) - Q(S_t, A_t) \right] Q(St,At)←Q(St,At)+α[Rt+1+γQ(St+1,At+1)−Q(St,At)]

2. 参数说明

  • α \boldsymbol{\alpha} α:学习率( 0 < α ≤ 1 0 < \alpha \leq 1 0<α≤1 ),控制 Q 值更新步长(如 α = 0.1 \alpha = 0.1 α=0.1 表示每次更新 10% 幅度 )。
  • γ \boldsymbol{\gamma} γ:折扣因子( 0 ≤ γ ≤ 1 0 \leq \gamma \leq 1 0≤γ≤1 ),衡量 "未来奖励" 的重要性(如 γ = 0.9 \gamma = 0.9 γ=0.9 表示未来奖励保留 90% 权重 )。
  • R t + 1 + γ Q ( S t + 1 , A t + 1 ) \boldsymbol{R_{t+1} + \gamma Q(S_{t+1}, A_{t+1})} Rt+1+γQ(St+1,At+1):TD 目标,代表 "当前动作的长期价值估计"(当前奖励 + 下一个状态 - 动作对的 Q 值加权和 )。
算法流程

1. 流程拆解(结合交互图)

  • 选动作 :在状态 S t S_t St ,通过策略(如 ϵ − g r e e d y \epsilon - greedy ϵ−greedy )选择动作 A t A_t At(例:90% 概率选当前 Q 值最大动作,10% 概率随机探索 )。
  • 执行动作 :执行 A t A_t At ,获取奖励 R t + 1 R_{t+1} Rt+1 ,转移至新状态 S t + 1 S_{t+1} St+1 。
  • 选下一动作 :在 S t + 1 S_{t+1} St+1 ,用同一策略 选择动作 A t + 1 A_{t+1} At+1 。
  • 更新 Q 值 :将五元组 ( S t , A t , R t + 1 , S t + 1 , A t + 1 ) (S_t, A_t, R_{t+1}, S_{t+1}, A_{t+1}) (St,At,Rt+1,St+1,At+1) 代入公式,更新 Q ( S t , A t ) Q(S_t, A_t) Q(St,At) 。
On - Policy 判定

SARSA 属于 On - Policy(同策略) 算法,核心原因:

  • 行为策略 ≡ 目标策略 :更新 Q 值时,下一动作 A t + 1 A_{t+1} At+1 必须由当前策略(如 ϵ − g r e e d y \epsilon - greedy ϵ−greedy ) 生成(而非预设最优动作 )。
  • 探索(如随机动作)与利用(如选最大 Q 值动作)受同一策略控制,数据生成与策略更新强绑定。
算法特点

优点

  • 适应随机环境:更新依赖实际执行的动作,对环境随机性(如游戏中动作效果随机 )更鲁棒。
  • 在线学习:每一步交互后立即更新,无需完整轨迹,支持实时优化。
  • 安全性:探索与利用平衡较好,在路径规划等任务中更 "保守可靠"(降低因过度探索陷入风险的概率 )。

缺点

  • 收敛速度慢:需兼顾策略随机性,学习过程比 Q - learning 保守(探索与利用的平衡导致更新更谨慎 )。
  • 高维瓶颈:依赖 Q 表存储状态 - 动作对,面对高维状态(如图像输入 )时,存储与计算成本剧增,难以处理。
小结

SARSA 是时序差分算法,通过五元组迭代更新 Q 值,属于 On - Policy(行为与目标策略一致 )。适用于需平衡探索利用、在线学习的场景,但在高维状态处理与收敛速度上存在局限。

蒙特卡洛(MC)与时序差分(TD)的无偏性 & 方差对比

一、无偏性分析

1. 蒙特卡洛(MC):无偏估计

  • 逻辑 :MC 通过完整回合采样 计算回报均值,估计值函数。 (例:"开车回家" 需跑完完整轨迹,累加所有奖励得到回报 G t G_t Gt 。)
  • 结论 :回报 G t G_t Gt 的期望等于真实价值 V π ( s t ) V^\pi(s_t) Vπ(st) ,因此 MC 是无偏估计(采样足够多完整轨迹可覆盖随机性 )。

2. 时序差分(TD):有偏估计

  • 逻辑 :TD 通过单步奖励 + 后续状态的估计值(自举) 更新当前值。 (例:TD (0) 用 r t + 1 + γ V ( s t + 1 ) r_{t+1} + \gamma V(s_{t+1}) rt+1+γV(st+1) 作为目标,而 V ( s t + 1 ) V(s_{t+1}) V(st+1) 本身是估计值,可能包含误差。 )
  • 结论 :因依赖 "估计值" 更新,会引入偏差;即使收敛后,也可能因函数近似、环境非马尔可夫性存在偏差 → TD 是有偏估计

二、方差比较

1. 蒙特卡洛:方差更大

  • 原因 :MC 的回报 G t G_t Gt 依赖整个回合的随机奖励序列(每一步奖励的随机性会累积 )。 方差为 "各步奖励方差的总和",随步数增加呈指数增长 → 高方差。

2. 时序差分:方差更小

  • 原因 :TD 的更新目标仅涉及单步奖励 r t + 1 r_{t+1} rt+1 + 下一状态的估计 V ( s t + 1 ) V(s_{t+1}) V(st+1) 。 方差仅来自 "单步奖励的随机性" 和 "状态转移的随机性",避免了多步累积的波动 → 方差显著小于 MC。

三、总结

  • 无偏性:MC 无偏,TD 有偏(因自举引入估计误差 )。

  • 方差:MC 方差大(多步随机奖励累积 ),TD 方差小(仅依赖单步 )。

  • 权衡

    • MC 靠无偏性保证 "渐近正确",但高方差导致学习速度慢。
    • TD 用低方差实现 "高效学习",但偏差可能影响最终精度。

核心差异:MC 依赖完整轨迹、无偏但方差大;TD 依赖单步自举、有偏但方差小,本质是 "无偏性 - 方差" 的典型权衡 。

强化学习:策略梯度方法全解析(应用、理解、推导)

一、策略梯度的应用

核心需求

强化学习中,需通过最大化 "期望奖励" 优化策略时,采用 梯度上升法

实现逻辑

  • 核心公式 : θ ∗ = θ + α ∇ θ J ( θ ) \theta^* = \theta + \alpha \nabla_\theta J(\theta) θ∗=θ+α∇θJ(θ) 说明:

    • θ \theta θ:策略参数(如神经网络权重 )。
    • α \alpha α:学习率(控制更新步长 )。
    • ∇ θ J ( θ ) \nabla_\theta J(\theta) ∇θJ(θ):期望奖励对 θ \theta θ 的梯度(沿梯度方向更新,提升期望奖励 )。
  • 梯度估计 : 直接计算 ∇ θ J ( θ ) \nabla_\theta J(\theta) ∇θJ(θ) 困难,通过蒙特卡洛采样 估计(运行多条轨迹,用均值近似梯度 ),适用于连续动作空间、随机策略

二、策略梯度公式理解

核心公式拆解

策略梯度的期望形式: E τ ∼ p θ ( τ ) [ R ( τ ) ∇ θ log ⁡ p θ ( τ ) ] \mathbb{E}{\tau \sim p\theta(\tau)} \left[ R(\tau) \nabla_\theta \log p_\theta(\tau) \right] Eτ∼pθ(τ)[R(τ)∇θlogpθ(τ)]

实际计算(采样近似)

因期望难以直接计算,采样 N 条轨迹 τ n \tau^n τn ,用均值近似期望: ≈ 1 N ∑ n = 1 N R ( τ n ) ∇ θ log ⁡ p θ ( τ n ) \approx \frac{1}{N} \sum_{n=1}^N R(\tau^n) \nabla_\theta \log p_\theta(\tau^n) ≈N1∑n=1NR(τn)∇θlogpθ(τn)

轨迹概率的简化

轨迹 τ \tau τ 的概率 p θ ( τ ) p_\theta(\tau) pθ(τ) 由 "智能体动作概率 π θ ( a t ∣ s t ) \pi_\theta(a_t \mid s_t) πθ(at∣st)" 和 "环境转移概率 p ( s t + 1 ∣ s t , a t ) p(s_{t+1} \mid s_t, a_t) p(st+1∣st,at)" 组成。 由于环境转移概率 p ( s t + 1 ∣ s t , a t ) p(s_{t+1} \mid s_t, a_t) p(st+1∣st,at) 与策略参数 θ \theta θ 无关,其对数梯度为 0,因此: ∇ θ log ⁡ p θ ( τ ) = ∑ t = 0 T − 1 ∇ θ log ⁡ π θ ( a t ∣ s t ) \nabla_\theta \log p_\theta(\tau) = \sum_{t=0}^{T-1} \nabla_\theta \log \pi_\theta(a_t \mid s_t) ∇θlogpθ(τ)=∑t=0T−1∇θlogπθ(at∣st)

直观逻辑

  • 若轨迹 τ \tau τ 奖励 R ( τ ) R(\tau) R(τ) 为正:增大该轨迹中 "各步动作 a t a_t at 发生的概率"(鼓励重复 )。
  • 若轨迹 τ \tau τ 奖励 R ( τ ) R(\tau) R(τ) 为负:减小该轨迹中 "各步动作 a t a_t at 发生的概率"(避免重复 )。

三、策略梯度公式推导

步骤拆解

  1. 定义累积回报 : 智能体与环境交互的轨迹 τ = ( s 0 , a 0 , r 1 , s 1 , ... , s T ) \tau = (s_0, a_0, r_1, s_1, \dots, s_T) τ=(s0,a0,r1,s1,...,sT) ,累积回报为: R ( τ ) = ∑ t = 1 T r t R(\tau) = \sum_{t=1}^T r_t R(τ)=∑t=1Trt
  2. 轨迹出现的概率 : 轨迹概率 P θ ( τ ) P_\theta(\tau) Pθ(τ) 由 "初始状态概率 p ( s 0 ) p(s_0) p(s0)"、"智能体动作概率 π θ ( a t ∣ s t ) \pi_\theta(a_t \mid s_t) πθ(at∣st)"、"环境转移概率 p ( s t + 1 ∣ s t , a t ) p(s_{t+1} \mid s_t, a_t) p(st+1∣st,at)" 组成: P θ ( τ ) = p ( s 0 ) ∏ t = 0 T − 1 π θ ( a t ∣ s t ) p ( s t + 1 ∣ s t , a t ) P_\theta(\tau) = p(s_0) \prod_{t=0}^{T-1} \pi_\theta(a_t \mid s_t) p(s_{t+1} \mid s_t, a_t) Pθ(τ)=p(s0)∏t=0T−1πθ(at∣st)p(st+1∣st,at)
  3. 期望回报(目标函数) : 策略的期望回报 R ˉ θ \bar{R}\theta Rˉθ 是 "所有轨迹的累积回报 × 轨迹概率" 的期望: R ˉ θ = E τ ∼ P θ ( τ ) [ R ( τ ) ] = ∑ τ R ( τ ) P θ ( τ ) \bar{R}\theta = \mathbb{E}{\tau \sim P\theta(\tau)} \left[ R(\tau) \right] = \sum_\tau R(\tau) P_\theta(\tau) Rˉθ=Eτ∼Pθ(τ)[R(τ)]=∑τR(τ)Pθ(τ)
  4. 对目标函数求梯度 : 利用 "对数导数技巧"( ∇ θ P θ ( τ ) = P θ ( τ ) ∇ θ log ⁡ P θ ( τ ) \nabla_\theta P_\theta(\tau) = P_\theta(\tau) \nabla_\theta \log P_\theta(\tau) ∇θPθ(τ)=Pθ(τ)∇θlogPθ(τ) ),对 R ˉ θ \bar{R}\theta Rˉθ 关于 θ \theta θ 求梯度: ∇ θ R ˉ θ = ∑ τ R ( τ ) ∇ θ P θ ( τ ) = ∑ τ R ( τ ) P θ ( τ ) ∇ θ log ⁡ P θ ( τ ) \nabla\theta \bar{R}\theta = \sum\tau R(\tau) \nabla_\theta P_\theta(\tau) = \sum_\tau R(\tau) P_\theta(\tau) \nabla_\theta \log P_\theta(\tau) ∇θRˉθ=∑τR(τ)∇θPθ(τ)=∑τR(τ)Pθ(τ)∇θlogPθ(τ)
  5. 简化梯度(消去环境转移) : 环境转移概率 p ( s t + 1 ∣ s t , a t ) p(s_{t+1} \mid s_t, a_t) p(st+1∣st,at) 与 θ \theta θ 无关,其对数梯度为 0,因此: ∇ θ log ⁡ P θ ( τ ) = ∑ t = 0 T − 1 ∇ θ log ⁡ π θ ( a t ∣ s t ) \nabla_\theta \log P_\theta(\tau) = \sum_{t=0}^{T-1} \nabla_\theta \log \pi_\theta(a_t \mid s_t) ∇θlogPθ(τ)=∑t=0T−1∇θlogπθ(at∣st)
  6. 采样近似期望 : 实际无法枚举所有轨迹,采样 N 条轨迹 τ n \tau^n τn ,用均值近似梯度: ∇ θ R ˉ θ ≈ 1 N ∑ n = 1 N R ( τ n ) ∑ t = 0 T − 1 ∇ θ log ⁡ π θ ( a t n ∣ s t n ) \nabla_\theta \bar{R}\theta \approx \frac{1}{N} \sum{n=1}^N R(\tau^n) \sum_{t=0}^{T-1} \nabla_\theta \log \pi_\theta(a_t^n \mid s_t^n) ∇θRˉθ≈N1∑n=1NR(τn)∑t=0T−1∇θlogπθ(atn∣stn)

四、总结

  • 应用方法 :用梯度上升法最大化期望奖励,核心是计算策略梯度 ∇ θ J ( θ ) \nabla_\theta J(\theta) ∇θJ(θ) ,依赖蒙特卡洛采样估计。
  • 公式含义:奖励为正的轨迹,增大其动作概率;奖励为负的轨迹,减小其动作概率。
  • 推导逻辑:从轨迹概率、期望回报出发,通过对数导数技巧简化梯度,最终用采样近似计算。

核心本质 :策略梯度通过 "梯度上升优化参数,让高奖励轨迹更易出现、低奖励轨迹更难出现",推导关键是分离环境与智能体的概率影响,消去环境转移的梯度

策略梯度优化进阶与 REINFORCE 算法

一、奖励全正的问题

核心矛盾

策略梯度中,若所有动作奖励均为正(仅大小不同),会导致 所有动作概率持续上升(梯度更新仅依据奖励正负,正奖励统一 "鼓励" )。

解决方法:引入基线(Baseline)

  • 思路:给奖励减去基线 b,使奖励 "有正有负":

    • R ( τ n ) > b R(\tau^n) > b R(τn)>b:奖励为正,增大动作概率。
    • R ( τ n ) < b R(\tau^n) < b R(τn)<b:奖励为负(即使原始奖励为正),减小动作概率。
  • 公式变化 : ∇ R ˉ θ = 1 N ∑ n = 1 N ∑ t = 0 T − 1 [ R ( τ n ) − b ] ∇ log ⁡ π θ ( a t n ∣ s t n ) \nabla \bar{R}\theta = \frac{1}{N} \sum{n=1}^N \sum_{t=0}^{T-1} \left[ R(\tau^n) - b \right] \nabla \log \pi_\theta(a_t^n \mid s_t^n) ∇Rˉθ=N1∑n=1N∑t=0T−1[R(τn)−b]∇logπθ(atn∣stn)

二、轨迹奖励分配问题

原始问题

用 "整个轨迹总奖励" 加权所有 ( s , a ) (s, a) (s,a) 对,存在公平性缺陷:

  • 游戏赢时,中间失误操作因总奖励高被误判为 "好动作"。
  • 游戏输时,中间正确操作因总奖励低被误判为 "坏动作"。

解决方法 1:reward - to - go(未来总回报)

  • 思路 :仅计算 "执行动作 a t a_t at 之后" 的奖励总和,作为该动作的 "贡献"。
  • 公式 : ∇ R ˉ θ ≈ 1 N ∑ n = 1 N ∑ t = 0 T − 1 ( ∑ t ′ = t T − 1 r t ′ n − b ) ∇ log ⁡ π θ ( a t n ∣ s t n ) \nabla \bar{R}\theta \approx \frac{1}{N} \sum{n=1}^N \sum_{t=0}^{T-1} \left( \sum_{t'=t}^{T-1} r_{t'}^n - b \right) \nabla \log \pi_\theta(a_t^n \mid s_t^n) ∇Rˉθ≈N1∑n=1N∑t=0T−1(∑t′=tT−1rt′n−b)∇logπθ(atn∣stn)
  • 逻辑:动作的 "功劳" 仅与执行后的奖励相关,与之前无关(符合直觉 )。

解决方法 2:引入折扣因子(Discount)

  • 思路:对 "未来奖励" 按时间衰减(越晚的奖励权重越低 )。
  • 公式 : ∇ R ˉ θ ≈ 1 N ∑ n = 1 N ∑ t = 0 T − 1 ( ∑ t ′ = t T − 1 γ t ′ − t r t ′ n − b ) ∇ log ⁡ π θ ( a t n ∣ s t n ) \nabla \bar{R}\theta \approx \frac{1}{N} \sum{n=1}^N \sum_{t=0}^{T-1} \left( \sum_{t'=t}^{T-1} \gamma^{t' - t} r_{t'}^n - b \right) \nabla \log \pi_\theta(a_t^n \mid s_t^n) ∇Rˉθ≈N1∑n=1N∑t=0T−1(∑t′=tT−1γt′−trt′n−b)∇logπθ(atn∣stn)
  • 逻辑:动作的影响随时间减弱(远期奖励对当前动作的 "功劳" 权重降低 )。

延伸:优势函数(Advantage Function)

  • 作用:量化 "状态 s 下选动作 a 的相对价值",是 PPO、Actor - Critic 等算法的核心。
  • 意义:降低方差、精准指导策略优化,适配复杂环境。

三、REINFORCE 算法

理论基础

基于策略梯度定理,梯度公式: ∇ R ˉ θ = 1 N ∑ n = 1 N R ( τ n ) ∑ t = 0 T − 1 ∇ log ⁡ π θ ( a t n ∣ s t n ) \nabla \bar{R}\theta = \frac{1}{N} \sum{n=1}^N R(\tau^n) \sum_{t=0}^{T-1} \nabla \log \pi_\theta(a_t^n \mid s_t^n) ∇Rˉθ=N1∑n=1NR(τn)∑t=0T−1∇logπθ(atn∣stn)

执行流程

  1. 策略模型输出动作概率:用模型(如神经网络)计算动作概率。
  2. 采样动作并交互:采样动作,与环境交互,收集完整回合数据(状态、动作、奖励 )。
  3. 更新策略:用回合数据构造损失函数,通过优化器更新策略模型(沿梯度上升方向,提升高奖励轨迹的动作概率 )。

优缺点

  • 优点

    • 简单易实现,无需环境模型,支持离散 / 连续动作空间。
    • 蒙特卡洛采样保证无偏梯度估计
  • 缺点

    • 高方差:依赖完整轨迹总奖励,梯度波动大,收敛慢。
    • 样本效率低:每次更新需重新采样数据(On - Policy 特性 )。

四、总结

  • 奖励全正问题:通过基线 b 让奖励有正有负,避免无差别鼓励动作概率。
  • 轨迹奖励分配:用 reward - to - go**(动作后奖励) + 折扣因子(衰减远期奖励)** 实现更公平的权重分配。
  • REINFORCE 算法:基于策略梯度的经典实现,简单但高方差、样本效率低,奠定策略梯度实践基础。

核心逻辑:策略梯度优化需解决 "奖励全正" 和 "轨迹公平性" 问题,REINFORCE 是基础落地算法,体现 "无偏性 - 方差 - 样本效率" 的权衡 。

相关推荐
西岸行者5 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意5 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码5 天前
嵌入式学习路线
学习
毛小茛5 天前
计算机系统概论——校验码
学习
babe小鑫5 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms5 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下5 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。5 天前
2026.2.25监控学习
学习
im_AMBER5 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J5 天前
从“Hello World“ 开始 C++
c语言·c++·学习