2026/5/21 10:01:11
网站建设
项目流程
如何去建设一个企业网站,营销型网站的分类,网站 网络推广,个人购物网站备案在强化学习#xff08;Reinforcement Learning, RL#xff09;的浩瀚兵器谱中#xff0c;REINFORCE#xff08;又名蒙特卡洛策略梯度#xff09;往往被安排在角落里。
大多数 RL 课程的讲师在介绍它时#xff0c;都会遵循一个固定的脚本#xff1a;先把它作为策略梯度Reinforcement Learning, RL的浩瀚兵器谱中REINFORCE又名蒙特卡洛策略梯度往往被安排在角落里。大多数 RL 课程的讲师在介绍它时都会遵循一个固定的脚本先把它作为策略梯度Policy Gradient的鼻祖请出来展示一下公式然后迅速开始“批判大会”——批判它方差大、收敛慢、样本效率极低。最后讲师会大手一挥“所以我们在实战中通常使用 Actor-Critic 或 PPO。”这种叙事方式给初学者留下了一个根深蒂固的印象REINFORCE 只是一个因为早期技术不成熟而诞生的“粗糙版本”是一个被时代淘汰的古董。但如果你深入研读过 Silver、Sutton 甚至 OpenAI 的核心论文你会发现 REINFORCE 的幽灵从未消失。事实上它是理解现代 RL 算法的第一性原理First Principle。在如今的大模型 RLHF基于人类反馈的强化学习微调中REINFORCE 的变体依然扮演着幕后英雄的角色。今天我们要剥开那些复杂的现代技巧重回 1992 年 Ronald Williams 提出它的那一刻看看这个所谓的“粗糙算法”究竟隐藏着怎样惊人的数学美感与顽强的生命力。第一章数学的优雅——“对数导数技巧”的魔法很多人觉得 REINFORCE “粗糙”是因为它的核心逻辑听起来太像“碰运气”试一试好就奖励坏就惩罚。但这种直觉背后支撑它的是一个极其漂亮且严格的数学推导。我们要解决的核心问题是如何对一个采样出来的、离散的动作序列求导在监督学习中目标函数yf(x)yf(x)yf(x)通常是平滑的链式法则Backpropagation随便用。但在 RL 中环境反馈的回报J(θ)J(\theta)J(θ)是基于一个概率分布采样的结果J(θ)Eτ∼πθ[R(τ)] J(\theta) \mathbb{E}_{\tau \sim \pi_\theta}[R(\tau)]J(θ)Eτ∼πθ[R(τ)]这里的τ\tauτ是轨迹πθ\pi_\thetaπθ是你的策略网络。因为“采样”这个操作是不可导的我们似乎碰到了死胡同。REINFORCE 使用了著名的Log-Derivative Trick对数导数技巧将不可能变成了可能∇θE[R]E[R(τ)∇θlogπθ(τ)] \nabla_\theta \mathbb{E}[R] \mathbb{E} [ R(\tau) \nabla_\theta \log \pi_\theta(\tau) ]∇θE[R]E[R(τ)∇θlogπθ(τ)]这个公式的优雅之处在于它把梯度的计算转化为了**“期望下的加权”**。它不需要知道环境是怎么运作的Model-Free不需要环境是可导的甚至不需要奖励函数是平滑的。只要你能算出一个概率π\piπ并且能拿到一个分数RRR你就能优化它。这种通用性是它最大的武器也是它被称为“粗糙”的源头——因为它太通用了以至于不依赖任何特定领域的先验知识。第二章被误解的“粗糙”——偏差与方差的永恒战争为什么 REINFORCE 饱受诟病为了理解这一点我们需要引入统计学习中最核心的一对概念偏差Bias与方差Variance。1. 蒙特卡洛的代价高方差的噩梦REINFORCE 是典型的蒙特卡洛Monte Carlo方法。这意味着它必须走完完整的一局游戏Episode拿到最终回报GtG_tGt才能回头更新参数。想象一下你在教一个机器人走迷宫。情况 A机器人胡乱走了一通碰巧走到了出口得 100 分。REINFORCE 会说“太棒了刚才走的所有几百步都是对的全部加强”情况 B机器人走了同样的几百步只是最后一步脚滑掉坑里了得 -100 分。REINFORCE 会说“太糟了刚才走的所有几百步都是错的全部抑制”明明中间 99% 的动作都是一样的却因为最后的结果不同导致梯度方向截然相反。这就是高方差。梯度的方向像醉汉一样摇摆不定导致训练过程极度震荡收敛极慢。2. “粗糙”的另一面零偏差的纯粹然而正是因为这种“必须走完一局”的死板赋予了 REINFORCE 一个 Actor-Critic 无法比拟的特性无偏估计Unbiased Estimator。Actor-Critic 引入了一个 Critic价值网络来打分。Critic 说“我觉得这一步值 10 分”。但 Critic 本身也是个神经网络它刚开始也是瞎猜的。如果 Critic 猜错了有偏差Actor 就会跟着学坏。这就像你请了个蹩脚的教练教练教错了你练得越勤奋离冠军越远。而 REINFORCE 没有教练。它只相信残酷的现实最终结果。虽然它单次更新可能很不准方差大但如果你给它无限的时间和采样它的期望值是绝对指向真实梯度的偏差为 0。在这个意义上REINFORCE 不是“粗糙”它是“纯粹”。它是对梯度的真实采样没有任何近似带来的污染。第三章信用分配——谁是真正的功臣REINFORCE 的另一个痛点是Credit Assignment信用分配难题。正如刚才的迷宫例子如果最后赢了REINFORCE 会倾向于奖励路径上的每一个动作。但在 100 步中可能只有第 50 步的关键转弯决定了胜利其他的 99 步都是在甚至可能是在“划水”或者“帮倒忙”。基础版的 REINFORCE 确实对此无能为力。但这一问题并非 REINFORCE 的“绝症”后续的进化版本极大地缓解了这个问题引入基线Baseline我们不再看“绝对分”而是看“相对分”。Gt−b(st)G_t - b(s_t)Gt−b(st)。如果平均分是 10 分你拿了 20 分只有这多出来的 10 分会贡献正向梯度。这一个简单的减法在不引入偏差的情况下极大地降低了方差。这就是Vanilla Policy Gradient。时间因果性CausalityREINFORCE 既然是针对序列的我们只需要让ttt时刻的动作对应ttt时刻之后的回报。未来的回报不应该影响过去的动作。这也是一种无需模型的优化手段。尽管如此REINFORCE 的“长序列遗忘”问题依然存在这也是为什么在长周期任务如星际争霸中一定要引入 Critic 来进行单步评估的原因。第四章REINFORCE 的重生——在大模型时代的逆袭如果到这里你还认为 REINFORCE 只是历史书上的名字那你就大错特错了。在 2023-2024 年的 AI 浪潮中REINFORCE 的变体正站在舞台中央。看看 ChatGPT 是怎么训练的RLHFReinforcement Learning from Human Feedback。在 RLHF 的 PPOProximal Policy Optimization阶段本质上我们在做什么我们在训练一个语言模型Actor让它生成的每一个 Token动作都能获得 Reward Model 的高分。虽然 PPO 加上了 Critic 和 Clipping截断机制但其核心的梯度更新公式依然源自策略梯度的基本逻辑。而在某些特定的文本生成场景或者在处理**离散动作空间Discrete Action Space**且无法微分的环境时纯粹的 REINFORCE 依然是首选。为什么因为在自然语言生成中Vocabulary 是离散的。你不能输出“半个单词”。这种离散性让基于微分的方法如重参数化技巧变得非常复杂而 REINFORCE不需要对环境词表选择微分的特性让它天然契合 NLP 任务。当你听到研究人员讨论“针对大模型的直接偏好优化DPO”或者“自我博弈Self-Play”时请记住这些高大上算法的血管里流淌着 REINFORCE 在 30 年前留下的血液。结语尊重那个“粗糙”的开创者REINFORCE 确实是“粗糙”的。它像一把没有瞄准镜的散弹枪全凭运气和大量的子弹样本来击中目标。但也正是因为它的“粗糙”它才拥有了最强的鲁棒性和普适性。它不需要 Critic 的辅助不需要环境的可微性不需要复杂的模型假设。它只是简单地执行一条朴素的真理“凡是让我们成功的就通过凡是让我们失败的就抑制。”现代算法PPO, TRPO, SAC就像是在这把散弹枪上装了瞄准镜、减震器和激光制导。它们确实更好用了但枪膛里的火药原理从未改变。所以下一次当你写下loss -log_prob * reward时请对这个看似简单的公式保持敬畏。它不是简陋它是大道至简。