新闻详情

新闻详情

首页 / 资讯中心 / 详情

强化学习稀疏奖励太难?HER后见经验回放实战详解

发布时间:2026/9/30 19:35:37来源:尧图网络
强化学习稀疏奖励太难?HER后见经验回放实战详解
强化学习领域最劝退新手的一句话不是那些复杂公式而是轻飘飘的一句“奖励是稀疏的”。如果你真的在训练过一个操作机械臂或者控制四足机器人的智能体你就会明白这四个字的杀伤力有多大——智能体像个无头苍蝇一样在环境里乱撞几十万步跑完累积奖励是零策略纹丝不动日志里一片惨淡。后来我接触到 Hindsight Experience Replay后见经验回放简称 HER才意识到稀疏奖励并不是绝路。它的核心思路极其反直觉既然拿不到想要的那就换个目标把失败轨迹重新解释成成功轨迹。这个思路直接解决了稀疏奖励下“完全没有学习信号”的死局也让机器人抓取、操纵这类长期困扰我的任务第一次跑出了像样的收敛曲线。这篇分享我会从为什么稀疏奖励难、HER 背后的目标重标记原理、到一套可以照抄的机械臂实操流程再到我在各个场景里踩过的坑尽量一次讲透。无论你是在折腾自己搭的仿真环境还是往真实机器人上迁移希望都能少走我走过的弯路。1. 稀疏奖励为什么是强化学习的老大难1.1 奖励稀疏的本质不是难是没信号先明确一个概念强化学习整个训练过程靠的就是奖励信号的梯度。或者说奖励函数是智能体学习“什么动作是好的”的唯一依据。密集奖励环境下智能体每走一步都能得到反馈哪怕反馈很粗糙比如靠近目标一点给 0.1 分优化器也能顺着这个连续信号一点点把策略推向正确的方向。但稀疏奖励不是“奖励难拿”而是“绝大多数时间里根本没有奖励信号”。拿机器人抓取来说目标是把桌上的蓝色方块抓起来放到目标位置。如果我在每步只检查“方块是否在目标区”那么直到智能体真的成功那次所有步的奖励都是 0。中间没有 0.1、-0.3 这样的区分度只有“0 和 1”两个极端这个 1 可能永远等不到。更致命的是稀疏奖励带来误差传播问题。在没有奖励信号的时候值函数网络拿到的目标值都是计算出来的递推值也就是自举bootstrap的结果。初始阶段这些值几乎都是瞎猜的于是整个网络就在一大片错误估计中互相“传染”策略根本学不到可信的动作。这就是为什么我在刚开始接触这个领域时跑普通 DDPG 做抓取任务一晚上训练下来曲线完全是条直线偶尔动一下也是噪声造成的假象。1.2 从概率视角看成功到底有多难用概率算一笔账你就能体会为什么随机探索在稀疏奖励面前很无力。假设一个操作序列需要连续执行 5 个关键动作每个动作只有做对和做错两个选项那么纯随机策略一次成功的概率是 1/32。看着不高但也还行问题是机器人任务通常不是 5 步而是上百步每一步动作空间还是连续的、高维的。假设每一步随机命中正确区间的概率是 10%连续做 30 步才有一个完整轨迹那么一次成功的概率是 10 的负 30 次方。此刻智能体在物理环境里跑了 100 万步也几乎不可能碰到一次成功。这还不是最糟的——就算碰巧成功了一次绝大多数强化学习算法靠历史经验中极其渺茫的成功样本来更新策略稀疏的成功样本早就稀释在庞大的失败样本里对策略更新的影响微乎其微。所以面对稀疏奖励单纯增加探索噪声或者换个调参技巧本质上都是在和概率作斗争。必须从训练样本的来源上改变思路让智能体不用真的成功也能获得有效学习信号这正是 HER 要解决的问题。2. HER 的破局思路把失败轨迹重写为成功轨迹2.1 核心思想换一个 goal经验就能复用先记住 HER 的金句成功的反面不是失败而是“实现了另一个目标”。以抓取任务为例智能体本来的目标是“把方块放在 A 点”结果它把方块放在了 B 点。用传统眼光看这是一次失败轨迹没有任何学习价值。但 HER 的视角是——把这次轨迹的 goal 临时改成“把方块放在 B 点”那这条轨迹就是一次完美的成功演示它确实移动了方块并且最终让方块停在一个位置上只是那个位置恰好不是 A 点而已。这个思想改变的不是物理动作而是记忆里的目标标签。有了“成功”的标签这条轨迹中的所有状态动作对都被赋予非零奖励值函数网络就能从中学到在什么样的状态下执行什么样的动作能接近什么样的终态。当未来类似的状态再次出现时智能体会更倾向去执行这些动作最终提高实现真正目标 A 点所需要的能力。这就是用“事后视角”原谅智能体的失败用物理上已经发生的轨迹去重写学习目标。因为这个目标不是凭空捏造的而是实际达到过的状态所以它比给失败轨迹强行打个正奖励更合理、更稳定也更容易被值函数网络理解。2.2 hindsight label 的数学化实现细节HER 要落地得有一整套具体的实现逻辑。它是通过目标重标记goal relabeling来完成的。想象一次 episode 收集到了过渡数据(s_t, a_t, r_t, s_{t1}, g)g是智能体本来要完成的目标。HER 会从这条轨迹中选一个实际到达过的状态把它的某个特征作为新的目标g然后重新计算奖励r_t最后把这条新数据一起存入经验池。新数据变成了(s_t, a_t, r_t, s_{t1}, g)。在 DDPG 这类 off-policy 算法中后面的策略价值更新会把这个新目标当成采样时已有的目标来处理。因为未来采样时智能体的初始目标可能是 A 点也可能就是 B 点所以所有数据都可以融入策略更新。一个对新手非常关键的点是HER 必须配合 off-policy 算法才能用。因为 on-policy 算法要求数据必须来自当前策略而 HER 重标记后的数据相当于修改了过去的策略行为严格来说不再属于 on-policy 分布。这也是为什么 HER 在实际落地中几乎都跟 DDPG、TD3、SAC 等 off-policy 方法绑定。它的计算成本非常低只需要多一次过渡数据的复制和 goal 的替换、重新计算奖励不需要额外的环境交互也不会让样本效率变慢。2.3 不少人都低估了 HER 的有效性我最早接触 HER 时觉得它只是一个数据增强技巧多复制几个样本而已。但实际训练过之后我的认知被彻底刷新了它弥补的不仅是稀疏奖励更是把目标条件式策略学习这个整体问题简化了。在一个多目标强化学习设定下HER 其实可以看作是在训练一个目标条件值函数Q(s, a, g)。这个网络需要对不同的目标泛化。如果没有 HER那网络只见过目标 A 的样本对目标 B、C 的 Q 值估计完全空白。但 HER 把一条轨迹复制出多个不同目标的版本相当于通过一组物理动作告诉网络“这些目标也值得被学习和估计”。这种填充式的学习让 Q 函数对不同目标的泛化能力大幅提升也顺带提升了主目标的策略质量。用一句话概括我的感受HER 不是在帮智能体“记住成功路径”而是在帮它“学会比较不同的结束状态”。一旦理解了这一层你会对调参和设计算法有更加清晰的把握。3. 用 HER 训练机械臂抓取任务的实操流程3.1 环境与工具链选择最省心的入手途径是 OpenAI Gym 经典机器人套件里的 Fetch 系列环境包括 FetchReach、FetchPush、FetchSlide 和 FetchPickAndPlace。这四个环境复杂度递增而且原始实现默认用的就是稀疏奖励形态还附带了一套多目标格式天然适配 HER 的训练范式。工具链方面稳定的实现我推荐用 Stable-Baselines3SB3配合它的 HER 模块。虽然 SB3 的抽象度很高但 HER 的处理逻辑没有被过度黑盒化代码结构足够清晰。如果你想更直白地看算法细节OpenAI 官方开源的 baselines 里也有 HER 的参考实现缺点是代码老一点环境接口需要小改。我个人的建议是先别上 SAC、PPO 这些复杂变体直接用 TD3 或 DDPG 和 HER 组合。它们对超参数稍微敏感但收敛轨迹更直观便于理解发生在每一步的机制。等跑通之后再换 SAC 加 HER通常能获得更多稳定性。3.2 网络结构与输入输出设计HER 的一个核心特点是状态输入里必须包含 goal 信息。以 FetchReach 为例观测空间包含机器人手臂各个关节的位置、速度、末端执行器的位姿以及目标位置的完整信息。其中desired_goal是当时 episode 的目标achieved_goal是当前步实际末端位置。设计 Q 网络和策略网络时我会直接把observation不含 goal 的部分和desired_goal拼成一个大的输入向量这个向量同时输入 Q 网络和 Actor 网络。目标信息必须连续表示如果目标是一组离散类别需要先嵌入成连续向量如果目标是图像那就要考虑用视觉编码器提取特征这是后话。一个容易踩的坑是当你从环境中取到 transition 后原始的obs和new_obs里各自包含一个desired_goal但重标记后这两个字段里的desired_goal都必须同步替换成新的 goal否则 Q 网络当前步看的是新目标但下一步观测里还带着旧目标语义错位训练直接乱套。3.3 关键超参数与训练配置HER 在原始论文里提供了四种目标采样策略final、future、episode 和 random。其中future我个人最推荐也是实测下来效果最稳的。它的逻辑是在一条轨迹里随机选当前时间步之后的一个状态作为新 goal。因为目标来自未来的真实状态和当前时间步动作因果连续相关性强学习效率更高。可以按下面这张表来理解四种策略的核心差异策略采样方式学习信号强度训练稳定度final始终取轨迹最后一步的状态强但目标远离前半段中等容易受到终点噪声干扰future取当前时间步之后的随机状态强且因果相关良好最稳定episode从整条轨迹中随机取中等可能取到过去的样本容易出现目标时间错位random从经验池随机状态中取弱相关性差波动较大实际训练中我不会只用future一种而是设置一个混合比例。比如重标记时90% 的样本用future10% 保留原始目标。这个比例给了网络一部分“真实目标压力”避免它过于依赖事后修改目标而忘记原本任务。除此之外还有几个关键参数我通常这么设经验池容量 100 万步Actor 网络学习率 1e-3Critic 网络学习率 1e-3batch size 256gamma 0.98探索噪声标准差初始 0.2每 50 步更新一次策略。如果你发现训练太不稳定优先缩小 Critic 学习率到 3e-4再考虑加大噪声。网络结构不用特意加深两层 256 个神经元的全连接网络足够应付相当一部分机器人操纵任务。3.4 训练曲线解读从乱象到收敛以 FetchReach 为例跑通一次完整训练的历程大致如下。前 5 万步基本是随机探索阶段累计奖励很低但经验池里开始积累各种形态的轨迹。因为 HER 的重标记经验池中实质上已经存在非零奖励样本所以值函数不会完全停在零附近曲线有一点微小上升的苗头。10 万步左右你会看到成功率开始从接近 0 爬到 20% 到 40%。这个阶段不要着急调参耐心观察总奖励的方差是否收窄如果方差和均值同时在涨说明训练方向是对的。40 万到 60 万步时大部分任务的成功率已经能到 90% 以上。此时可以逐步降低探索噪声的幅度策略会更稳定地输出执行动作。再从 60 万步往后主要还是靠减小噪声来微调动作精度。真正的工程难点不是训练不上去而是训练到 70% 成功率时曲线像卡住一样长期不动。这时候多半不是算法问题而是探索噪声过大或过小导致策略在高维动作空间里找不到更优解我一般会把噪声从 0.2 降到 0.1同时给 Critic 网络增加一层 BatchNorm大多数情况能继续往 90% 推。4. HER 在不同场景下的应用拓展与边界4.1 从低维状态到视觉输入的挑战上述流程在状态向量比较低维、goal 可直接通过坐标表达时很顺。但如果任务是从摄像头图像输入中进行抓取HER 就面临一个新问题goal 该怎么表示。你不能把一个高维图像每步都塞进状态里和低维向量拼接这会引入大量与任务无关的视觉特征、光照和背景噪声。常见做法是用一个视觉编码器把图像映射到语义特征空间在这个空间里比较距离和计算奖励。这里有一个更具实操性的陷阱HER 重标记必须定义“什么是实际到达的 goal”。如果 goal 是一张视觉图像那“实际到达”就是当前时刻观测到的画面。但是如果相机固定画面背景基本不变只有物体位置变了那么 goal 特征的核心实际上是编码器能否专注于物体位置。如果编码器不加任何监督地去训练它可能把背景中的静态特征也编进去导致两个视觉上相似但目标位置不同的图像的 goal 特征距离很小HER 重标记就变得几乎无效。所以带视觉的 HER 往往需要配合一个表征学习。比如用对比学习预训练一个编码器让图像中物体位置的差异放大到特征空间然后用这个特征空间来定义 goal重标记才有意义。也可以用领域随机化让背景不断变化迫使编码器忽略背景。我在做视觉抓取时发现如果直接拿一个在 ImageNet 上预训练的 ResNet 提取特征效果非常差因为这个模型不知道“位置差异”才是任务的主要语义。4.2 多目标与分层任务的变体结合HER 不但用于单任务多目标也可在分层强化学习里作为子目标生成器。比如移动机器人要从房间的一头走到另一头直接用手臂等效的连续控制策略去学动作空间太大且探索效率低。这时可以设定一系列中间子目标先在某个较低层级上用 HER 学好规划器专门负责“如何从一个点到另一个点”然后上层再用一个策略来生成子目标序列。这种做法的本质是让 HER 在不同粒度上帮忙填充学习信号因为它可以随时将“没到达上层给定的终点”重写为“到达了某个中间点”。这样上下层策略都能获得有效训练样本而不会因为上层目标太远导致整个梯度消失在探索的深渊里。在我实验过的机器人避障导航中这样分层后训练效率比平地起高楼式的一体化策略高出不少。但分层也带来一个新的问题如果子目标生成器本身学会了走捷径即生成了一些当前技术无法实现的子目标那么下层会因为根本无法完成而浪费训练时间。对策是让上层生成子目标时也参考下层当前的能力形成一个闭环。4.3 必须承认的边界HER 不是万能的听完这么多好处你也得清醒看到 HER 的适用边界。它违反直觉但也有不可跨越的原理约束。第一个边界如果奖励不是基于“是否达到某个 goal”来定义的那么 HER 完全使不上劲。比如你的奖励是“尽量远离障碍”或“与另一个智能体保持固定距离”最终状态不能对应一个明确可重标记的目标HER 就无从下手。第二个边界如果环境是非静态的也就是说同样的状态动作不再导致同样的结果那“实际到达”本身都不可靠。比如一个充满随机障碍且障碍每帧都在刷新位置的环境里“到达某个位置”只是一个瞬时状态无法形成稳定的成功类别HER 的重标记就会给网络传递混乱信息。第三个边界目标空间必须是可以被“事后观察”的。像“把门锁上并且拉拽测试仍然锁着”这类目标你很难仅从当前状态确定它是否达成必须进行一次物理测试才能验证。HER 需要事后可知的 goal这类隐藏式达成条件会让重标记直接失效。我时间长了之后觉得HER 更接近一个“奖励工程”工具而不是“任务拓展”工具。用它最重要的一步不是调参而是把你手头任务里的 goal 结构提炼清楚确保它可以被事后观测和验证。5. 常见问题与排查技巧实录5.1 问题速查表我在几个项目里来回折腾 HER遇到过不少令人头秃的情况整理成一个速查表供你参考现象可能原因排查方法训练几十万步成功率一直为 0奖励重标记后没有同步替换 new_obs 里的 goal检查 transition 里 desired_goal 是否一致前段涨到 50%后面停滞探索噪声太大策略动作陈旧逐步降低噪声设置噪声退火表曲线震荡幅度很大HER 比例过高原始目标被淹没提高原始目标比例比如 20%收敛到 100% 后在真实环境失败sim-to-real 的 domain gap 太大做随机化、增加视觉域适应重标记样本对 Q 更新无效achieved_goal 与 desired_goal 维度不一致或语义不同检查 goal 的表示和预处理器训练速度极慢batch size 太小经验池容量太小增大到 2048 或 4096机械臂总停在同一个错误位置策略陷入局部最优加入探索噪声或随机重设初始状态这个表格直接粘贴到你的实验记录里做模板即可不必等到出问题才翻出来对每两三天顺手核一遍能节省很多调试时间。5.2 三个亲测有效的调参心得我练过多次之后有三个比较个人的经验也是很多文档里不会细写的部分。第一个心得是先用最简单环境验证 HER 实现不直接上真实机械臂。我吃过一次亏把机器人仿真里的难度调到“中等”结果以为是 HER 代码写错了排查了三四个小时最后才发现只是环境初始位置分布太极端采样区域太小。之后我拉了一个专门 repository只保留 FetchReach 的最小物理场景先验证代码正确性再逐步加到高难度任务。第二个心得是HER 的重标记比例不宜一开始就设成默认的 100%。在稀疏奖励任务里折腾 HER 的初期我追求正样本最大化把每个样本都重标记结果是正样本太多策略彻底失去了“目标感”因为网络根本不需要努力反正都能找到一个事后目标。后来把比例调回 70% 到 90%反而收敛更快。这个比例不同任务差别很大但“稍微留点空白”这个原则是不变的。第三个心得是所谓稀疏奖励不是真的“零奖励”而是你应该在所有非成功时间步都保持同一稀疏奖励值比如 0 或者 -0.1。有段时间我为了增加信息量给每步加了线性距离惩罚结果和 HER 冲突反而把训练搞得一团糟。HER 之所以好用就是因为它能把稀疏奖励中的稀疏性这个核心特点保留下来但在回放时重写。如果你又额外加距离惩罚等于创造了一堆与目标无关的密集信号HER 的优势就被彻底稀释掉了。5.3 从仿真到实物的迁移要点最后聊一下 sim-to-real。仿真里能在 100 万步内跑到接近满分真实机械臂上却连续多次失败这是很多人的最终瓶颈。HER 的目标重标记本身不提供任何域自适应能力它能帮你训练一个优秀的仿真策略但无法弥补仿真物理引擎与真实世界之间的差异。实际的迁移思路分三类第一域随机化。随机化仿真里物体的摩擦系数、质量、尺寸、相机噪声让策略见多识广。第二扰动注入。在训练过程中给机械臂关节加随机扰动或延迟让策略学会纠错而不是走完美轨迹这在真实环境里极其重要。第三视觉特征对齐。用 sim-to-real 的风格迁移让仿真图像尽可能接近真实相机画面使得视觉编码器提取到的特征分布类似。这三者组合使用效果远胜单独做一个。我个人的体会是HER 让策略学到的是“在不同目标条件下都能完成任务”的泛化能力这种泛化能力本身对迁移就是一大优势。一个只见过单一目标位置轨迹的策略到了真实场景几乎没有任何容错度而 HER 训练的模型见过各种位置的任务表达迁移后成功率高很多。这个特性在选型时很有参考价值。如果你正被稀疏奖励困住先从最小任务开始吧搭一个 FetchReach装好 TD3 加 HER目标就定为“末端执行器快速靠近目标点”。跑通一次你会彻底理解事后经验回放的威力以后遇到更复杂的任务也有了底气。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

我整理了GPT-Image 2.5的12种玩法,希望能掌控你整个假期的朋友圈。 2026/9/30 20:30:36

我整理了GPT-Image 2.5的12种玩法,希望能掌控你整个假期的朋友圈。

中秋刚过,接着再干两天就是国庆假期了。 相信很多朋友现在已经在五湖四海各个地方躺着了吧(狗头保命)。。。 那每年的国庆假期呢,我们都会有个保留节目,就是用最新的AI绘图模型,给大家做一期AI绘图玩法合集…

阅读更多 →
无人值守工程团队:Automotive Skills Suite自主每日Standup(PLAN/POLISH/DOCS/RELEASE)运行机制全解析 2026/9/30 20:30:36

无人值守工程团队:Automotive Skills Suite自主每日Standup(PLAN/POLISH/DOCS/RELEASE)运行机制全解析

无人值守工程团队:Automotive Skills Suite自主每日Standup(PLAN/POLISH/DOCS/RELEASE)运行机制全解析 【免费下载链接】automotive-skills-suite 100 installable Claude skills covering Engineering areas such as, ISO 26262 functional …

阅读更多 →
智诺方AI|论文修改避坑指南:降重与降AIGC的实操科普 2026/9/30 20:30:29

智诺方AI|论文修改避坑指南:降重与降AIGC的实操科普

微信公众号搜一搜 智诺方ai 临近毕业季,很多本科生、研究生都卡在论文修改环节。不少同学以为只要把重复率降到学校要求,论文就万事大吉,却忽略了高校新增的AIGC检测。很多案例显示,重复率合格的论文,AIGC疑似率超标&a…

阅读更多 →
面向逻辑思维的程序设计方法——类脑大模型大脑小脑对肢体层联合控制设计 2026/9/30 20:29:53

面向逻辑思维的程序设计方法——类脑大模型大脑小脑对肢体层联合控制设计

面向逻辑思维的程序设计方法——类脑大模型大脑小脑对肢体层联合控制设计 冯胤清 (河南 三门峡 472000) 摘要:感知解决"看得到、听得见、摸得着",控制解决"做得到、做得顺、做得准"。类脑大模型的运动控制若只靠单一控制回路,难以同时满足认知决策的…

阅读更多 →
vscode中设置文件头和函数头:用koroFileHeader把TaoToken接入注释模板 2026/9/30 20:29:10

vscode中设置文件头和函数头:用koroFileHeader把TaoToken接入注释模板

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
超自动化巡检中的异常检测与根因分析 2026/9/30 20:29:10

超自动化巡检中的异常检测与根因分析

“监控系统一直在报警,但没人知道哪个告警才是真正的‘病因’。”这句话,是运维团队最常见也最无奈的叹息。传统巡检模式下,监控工具能告诉你“CPU高了”“内存满了”“磁盘慢了”,但无法告诉你这些现象背后的根因是什么。运维人员…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉