Home / 机器人学习 / Eureka:用程序生成与反馈改进奖励

069|Eureka:用程序生成与反馈改进奖励

系列首页 · 上一篇 · 下一篇

原论文:Eureka: Human-Level Reward Design via Coding Large Language Models,Yecheng Jason Ma 等,首次公开于 2023,本文对应 2024 年 arXiv v2。论文。

先接住前作的问题

学徒学习从专家行为约束奖励,而有些任务更容易给出环境代码与成功判据。Eureka从这些信息搜索奖励程序,再用真正的策略训练反馈筛选;它更换奖励信息来源,不是在识别同一专家的偏好。

五个前置概念

五个前置概念:

  1. 奖励塑形:加入更密集的学习信号帮助达到最终目标。
  2. 双层优化:外层选择训练目标,内层训练策略。
  3. 程序合成:从描述与约束生成可执行代码。
  4. 适应度:跨候选统一比较最终行为的评分。
  5. 选择偏差:从很多带噪声尝试中挑最大值会偏乐观。

一、问题设定:怎样搜索能帮助训练但不扭曲任务的奖励

强化学习中的难点常常不是“怎样更新参数”,而是“到底给什么奖励”。只在任务完成时给分,机器人可能永远碰不到成功;奖励设计得太细,又可能学会钻空子。

假设目标是打开抽屉。用于训练的奖励可能包含接近把手、夹爪对齐和抽屉位移;最终评价只关心抽屉是否打开。前者提供学习路线,后者决定路线是否值得。

论文把训练奖励 RR 与适应度函数 FF 分开。若 RL 算法记为 A\mathcal A,则外层问题是:

R⋆=arg⁡max⁡RF(A(R)).R^\star=\arg\max_R F(\mathcal A(R)).

A(R)\mathcal A(R) 表示在奖励 RR 下训练出来的策略。因此奖励“看起来合理”不够,必须经过训练后才能知道它是否有效。

这个问题同时依赖环境、策略算法、超参数和训练预算。同一个奖励在长预算下有效,在短预算下可能无法引导探索;同一个距离项对某种状态归一化合适,换量纲后可能压倒其他项。

原文主要是仿真中的机器人强化学习,包括运动与灵巧操作。较后版本提到初步真实迁移,但主基准与转笔结果不应被写成全面真实验证。

二、外层改写奖励程序,内层训练并独立评分

Eureka 让语言模型读取环境状态与动作代码,生成可执行奖励函数;随后真正训练强化学习策略,观察任务成绩和各奖励项变化,再让语言模型修改奖励。它是一个围绕 RL 训练的外层搜索系统。

关键区别是:语言模型没有直接输出机器人动作,也没有因为收到反馈就更新自己的权重。策略网络通过 RL 学动作,语言模型通过上下文改写奖励程序。

环境代码提供可用变量

语言描述“把物体转到目标姿态”没有说明姿态变量叫什么、形状是什么。环境代码提供对象旋转、手指位置和动作等变量定义,语言模型据此编写张量运算。

输入会移除已有奖励并提取有关代码片段。它不是完全没有任务信息:自然语言任务、状态定义、训练环境和评价标准仍由系统提供。所谓无需任务专用奖励模板,是不要求人工预先规定每个奖励项。

输出还需要暴露各组成项。例如总奖励由距离、姿态和能耗构成,日志应该分别记录三者。只看到总和升高,无法判断策略究竟改善了哪件事。

为什么一次生成不够

候选可能语法错误、张量维度错误、数值爆炸,也可能正常运行却诱导错误行为。Eureka 每轮生成一批候选,训练并评价,保留更好的奖励,再根据反馈继续变异。

这是一种无梯度的程序搜索:不对“奖励代码字符”反向传播,而利用语言模型提出新程序。代码表达能力高于固定几个奖励项的权重调节,因此也更需要运行验证。

奖励反思提供什么信息

反馈包含任务成绩和各奖励项在训练过程中的数值变化。若距离项快速饱和而成功始终为零,可能说明该项太容易取得、缺少后续操作激励;若某项量级压倒其余项,可以调整函数形状或缩放。

这些解释属于机制直觉。日志关联不等于因果诊断,所以修改后仍需重新训练。语言模型写出一段可信的理由并不能替代实验。

为简洁起见,伪代码没有展开所有失败处理。这里每次“评价一个奖励”通常意味着一次完整或规定预算的 RL 训练,而不是执行一次函数调用。

数学上优化的是两件事

内层策略近似最大化:

JR(π)=Eπ∑tγtR(st,at).J_R(\pi)=\mathbb E_\pi\sum_t\gamma^tR(s_t,a_t).

外层则最大化 F(π)F(\pi)。两者不相等是设计的核心。如果仅按生成奖励自己的累计值选候选,语言模型可以把奖励乘一万而毫无行为改善。

这也解释了为何“奖励更大”不能跨候选比较。必须使用统一的外部任务指标,或者明确的人类偏好评价。

外层择优还会放大训练噪声。教学设定:十个奖励程序真实能力相同,仅随机种子造成不同得分,选最高者仍会得到一个表面赢家。候选越多,最大观测噪声通常越大;因此搜索中最高分不能直接当成最终可复现能力,应固定奖励后用未参与搜索的种子重训。

奖励反思的分项日志有助于提出下一候选,却不消除这个选择效应。原文明确奖励好坏依赖RL算法与超参数,所以“人类级奖励”应限定训练器、任务评分和搜索预算。程序更短、总回报更大、解释更像道理,都不能替代共同外部指标 FF,这里 FF 指任务评价函数。原文Reward Design Problem与reflection

一个教学例子与前置概念

以下例子为自构,未运行。让机械手把物体放入盒子,初始奖励只有 −∥phand−pobject∥-\|p_{\rm hand}-p_{\rm object}\|。策略很快学会靠近物体,但从不抬起它。日志显示距离项改善,而任务成功始终为零。

一个候选修改是在接近后奖励物体高度,另一个是奖励物体接近盒子。两者都可能产生副作用:前者一直举着物体,后者把物体推到盒边。只有通过外部“物体确实进入盒子”的指标评价,才能知道塑形有没有帮助。

三、生成候选奖励并用独立任务评分筛选

内层策略优化各自的候选奖励,外层却必须使用共同任务指标比较。奖励项轨迹提供反思线索,语言模型在上下文中改代码,不等于模型权重接受强化学习。

输入:任务描述、可用状态动作代码、RL 训练器、任务评分 F
最佳奖励 = 空
重复若干搜索轮:
    由语言模型生成一批奖励程序
    对每个候选:
        检查能否编译和在批量状态上运行
        用该奖励从规定初始化训练 RL 策略
        记录任务评分和每个奖励项的学习轨迹
    选择本轮最佳候选
    将其代码、成绩、分项变化整理成下一轮上下文
    更新全程最佳候选
对最终奖励:
    使用多个独立 RL 种子重新训练和评价
输出:奖励程序、对应策略表现与搜索成本

四、区分累计最佳与反思反馈的实际收益

原图怎么读: 图5,原论文图注与图像。沿迭代轮数看奖励搜索的改进,再对照相同候选预算的无反思方案。累积最好值天然不会下降,曲线上升本身并不能单独证明反思机制有效。

Eureka: Human-Level Reward Design via Coding Large Language Models,图5:沿迭代轮数看奖励搜索的改进,再对照相同候选预算的无反思方案。累积最好值天然不会下降,曲线上升本身并不能单独证明反思机制有效。
实验图原图摘引:Yecheng Jason Ma 等,首次公开于 2023,HTML S4.F5,图5。核对原文。原版权保留。
项目 原文设定及解释
主基准 Isaac Gym 与双手灵巧操作任务,合计二十九项、十类机器人形态
内层算法 使用对应任务已有 PPO 实现与超参数
对照 官方人工塑形奖励、任务评分作为奖励、模板化语言奖励方法
搜索 多轮、多候选和独立重启;不能视为单次提示结果
中间评价 每个候选使用一次 PPO 训练,可能受训练噪声影响
最终评价 每个最终奖励用五次独立 PPO 训练
检查点口径 取固定十个检查点中任务指标最大值,再对训练重复汇总
算力 附录 D.4 报告八张 A100 工作站;每个搜索运行不到一天
人类反馈 另行修改反馈方式,并用视频偏好测试;不是主自动基准

最终奖励用相同 PPO 配置比较,有助于检验奖励质量;但外层搜索使用了更多训练尝试,不能说与一套现成人工奖励具有相同设计预算。人类此前投入的调参成本也没有精确对应到 GPU 时间。

多次搜索后挑选最好结果与对所有搜索平均,是不同统计口径。论文在部分反思消融中采用平均以观察整体行为,阅读时要留意指标转换。

五组证据该怎样解读

定位见原文 v2 方法、实验和附录。

图4:总体奖励质量。 作者报告在大部分任务上超过人工奖励。这里比较的是奖励训练所得策略的任务指标,不是人工评审“代码质量”。灵巧任务仍有未超过人工的例外,不能将总体结论写成全任务胜出。

Eureka: Human-Level Reward Design via Coding Large Language Models,图4:总体奖励质量。 作者报告在大部分任务上超过人工奖励。这里比较的是奖励训练所得策略的任务指标,不是人工评审“代码质量”。灵巧任务仍有未超过人工的例外,不能将总体结论写成全任务胜出。
原图摘引:Yecheng Jason Ma 等,首次公开于 2023,本文对应 2024 年 arXiv v2,HTML S4.F4,图4。核对原文。总体奖励质量。 作者报告在大部分任务上超过人工奖励。这里比较的是奖励训练所得策略的任务指标,不是人工评审“代码质量”。灵巧任务仍有未超过人工的例外,不能将总体结论写成全任务胜出。

图5:迭代是否比多采样更有用。 固定候选数量的比较支持利用先前结果进行修改,而非只增加首次采样。累积最优曲线按定义不会下降,所以“曲线逐轮提高”本身不是充分证据,匹配候选预算的对照才关键。

图6:与人工奖励的相关性。 某些有效奖励与人工奖励相关较弱甚至为负。它说明沿采样状态轨迹的打分方式不同;不能单凭相关性证明发现了新的理论原理,也不能证明没有共享基本距离或姿态概念。

Eureka: Human-Level Reward Design via Coding Large Language Models,图6:与人工奖励的相关性。 某些有效奖励与人工奖励相关较弱甚至为负。它说明沿采样状态轨迹的打分方式不同;不能单凭相关性证明发现了新的理论原理,也不能证明没有共享基本距离或姿态概念。
原图摘引:Yecheng Jason Ma 等,首次公开于 2023,本文对应 2024 年 arXiv v2,HTML S4.F6,图6。核对原文。与人工奖励的相关性。 某些有效奖励与人工奖励相关较弱甚至为负。它说明沿采样状态轨迹的打分方式不同;不能单凭相关性证明发现了新的理论原理,也不能证明没有共享基本距离或姿态概念。

附录 F:训练重复和聚合指标。 最终策略的多种聚合统计补充了可靠性。不过最佳检查点性能不能替代最后检查点表现,实际部署仍需明确如何选择模型,避免用测试表现反复挑选。

附录 D.1:转笔课程。 随机姿态预训练后,目标姿态按规定序列切换以形成转笔模式。这是奖励生成结合课程的系统成果,不是语言模型从一句“转笔”中自动创造全部任务结构。

最容易误读的是摘要中的“平均归一化提高”。原文使用:

S=Method−Sparse∣Human−Sparse∣.S=\frac{\text{Method}-\text{Sparse}} {|\text{Human}-\text{Sparse}|}.

而附录说明摘要汇总前对每任务分数做范围截断。因此 52% 不是原始成功率增加 52 个百分点,也不是每项任务都相对人工提高 52%。分母很小时,归一化分数对微小原始差异非常敏感。

五、外部评价和候选训练仍需人类定义

限制首先来自评价函数:如果 FF 本身只奖励速度,却不关心姿态自然或碰撞,外层搜索仍可能选出不符合实际目标的行为。它没有消除目标指定问题,而是把塑形和评价分开,使问题更容易管理。

其次,仿真状态提供了真实环境未必能直接测量的变量。把奖励代码搬到现实,需要对应状态估计或先在仿真训练后迁移。代码可运行也不保证量纲、符号和四元数处理正确。

本文的进一步分析是,单次内层训练的噪声可能让外层偏向“碰巧表现好”的候选。独立最终重训缓解这一问题,但更严格的搜索还可以设置重复评价、早停与不确定性驱动的预算分配。

追问:奖励程序编译并运行成功,为什么仍需要检查量纲和数值尺度?

参考答案:可执行只排除了部分语法问题,距离、速度和能耗项仍可能因单位不同支配总奖励。应记录各项实际分布与策略行为,并用独立任务指标选择候选。一个数值很大的奖励项可能改变学习却不改善任务,代码检查不能替代语义和尺度检查。

六、沿机制关系继续读

与逆强化学习是平行奖励获取方式:Eureka依据任务代码和评价搜索奖励程序,不从专家行为识别奖励;它组合大规模足式RL一类并行训练能力来支付候选测试成本。

七、自测三题与参考答案

问题1:为什么不能用候选奖励的累计回报来选最好奖励?

答案:不同奖励的尺度和定义不同,乘常数就能改变数值而不改善行为。应使用统一任务评分 FF,判断该奖励训练出来的策略是否真正达到目标。

问题2:累积最佳成绩逐轮上升,能否证明“反思”有效?

答案:不能单独证明,因为累积最大值天然不下降。需要与相同候选和训练预算的无反思或独立采样方法比较,并对最终奖励独立重训,排除更多尝试和随机幸运的影响。

问题3:为什么 Eureka 不等于消除了人类奖励设计?

答案:它仍需要人类定义任务、可用状态、外部评价及训练条件。它自动化了塑形程序的搜索,但实际目标是否完整、评价是否能防止投机,仍然需要明确设计与检验。