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 是基础落地算法,体现 "无偏性 - 方差 - 样本效率" 的权衡 。

相关推荐
大苏打seven30 分钟前
Docker学习笔记:数据卷
笔记·学习·docker
霖霖7142 小时前
linux系统驱动的原理
linux·笔记·学习
虾球xz2 小时前
CppCon 2016 学习:Parallelism in Modern C++
开发语言·c++·学习
无名小猴3 小时前
Charpter14-Business Logic Vulnerabilities
学习
紫青宝剑3 小时前
Pydantic 学习与使用
学习
小庞在加油4 小时前
从零到一:C语言基础入门学习路线与核心知识点全解析
c语言·开发语言·学习
..过云雨4 小时前
03.【C语言学习笔记】分支和循环
c语言·笔记·学习
寄思~4 小时前
Tkinter --按钮点击事件应用场景
开发语言·笔记·python·学习
用余生去守护6 小时前
vba学习系列(11)--批退率&通过率等数据分析
学习·数据分析