引言: 电池瓶颈
想象一下,你买了一台最先进的四足机器人。它敏捷、智能,能够穿越崎岖的地形。你将其部署用于搜救任务或常规巡检,然而 60 分钟后,它关机了。电池没电了。
这就是当今许多无线机器人的现状。例如,宇树 (Unitree) Go2 机器人一次充电通常只能运行 1 到 4 小时。如果我们希望机器人在现实世界中真正发挥作用,我们不能只关注它们做什么 (任务表现) ,还必须关注它们如何做 (能源效率) 。
在强化学习 (RL) 中,教机器人节能的标准方法是惩罚其能量消耗。你给机器人一个前进的奖励,但根据它使用的扭矩扣分。这听起来很简单,但在实践中,这创造了一个令人沮丧的平衡游戏。如果惩罚太小,机器人会忽略它并耗尽电池。如果惩罚太高,机器人就会变得“懒惰”——它可能会为了节省能量而站着不动或爬行,完全导致任务失败。
在这篇文章中,我们将深入探讨一篇提出该问题巧妙解决方案的研究论文: PEGrad (Projecting Energy Gradients,投影能量梯度) 。 PEGrad 不再强迫工程师手动调整性能和能量之间的权衡,而是从数学上确保能量最小化永远不会与主要任务发生冲突。
奖励塑造 (Reward Shaping) 的问题
要理解为什么 PEGrad 是必要的,我们要先看看目前 RL 中是如何处理能源效率的。
通常,我们使用奖励函数 \(r\) 来训练机器人。如果我们想要能源效率,我们会创建一个复合奖励:
\[ r = r_{task} + \lambda r_{energy} \]在这里,\(r_{task}\) 是完成工作的奖励 (例如,以 1 米/秒的速度奔跑) ,而 \(r_{energy}\) 是能量使用的惩罚 (通常是负值) 。符号 \(\lambda\) (lambda) 是一个权重因子,控制我们对能量的关注程度。
问题在于找到合适的 \(\lambda\)。

如上方的 图 1 所示,\(\lambda\) 的选择非常敏感。
- 左图 (机器狗奔跑) : 注意 \(\lambda=0.01\) 和 \(\lambda=0.1\) 之间的区别。在 0.01 时,机器人跑得很好。在 0.1 时,惩罚太高,机器人可能会通过爬行或几乎不移动来避免“花费”扭矩,导致低回报。
- 右图 (人形机器人坐) : 在这里,两个 \(\lambda\) 值都工作得很好。
这种不一致是核心问题。适用于行走的 \(\lambda\) 可能不适用于奔跑。适用于四足机器人的 \(\lambda\) 可能不适用于人形机器人。这迫使研究人员进行昂贵的网格搜索,一遍又一遍地重新训练策略,只为找到一个既能通过节省能量又不会破坏性能的“最佳”值。
理想情况下,我们要的不是平衡这些目标;我们要对它们进行排序 。 我们想告诉机器人: “优先考虑任务,高于一切。但是,在确保任务成功的前提下,尽可能使用最少的能量。”
背景: 多目标强化学习
在深入解决方案之前,让我们简要建立一下数学背景。作者是在标准的 Actor-Critic 算法 (如 Soft Actor Critic (SAC) 或 PPO) 之上构建他们的方法的。
在标准的 Actor-Critic 设置中,我们有:
- Actor (\(\pi\)): 决定采取什么行动的策略。
- Critic (\(Q\)): 估计该行动有多好 (预期回报) 的网络。
Critic 试图最小化预测误差 (贝尔曼误差) :

Actor 试图最大化 Critic 预测的值 (加上用于探索的熵项) :

在多目标设置中,我们不只有一个 Critic。我们使用两个:
- \(Q^r\): 估计未来的任务奖励。
- \(Q^e\): 估计未来的能量消耗。
标准方法本质上是使用我们要讨论的那个麻烦参数 \(\lambda\) 将这些估计线性组合起来:

这个等式在数学上编码了冲突。如果 \(Q^r\) 的梯度指向“北” (改善任务) ,而 \(Q^e\) 的梯度指向“南” (节省能量) ,优化器会根据 \(\lambda\) 对它们进行平均。如果 \(\lambda\) 很大,“南”方胜出,机器人就会停止执行任务。
PEGrad 方法: 正交投影
研究人员提出了 PEGrad 来消除对 \(\lambda\) 的需求。其核心见解是几何学上的。
把神经网络的参数想象成地图上的坐标。这里有一座我们想爬上去以获得高奖励的“任务山”。还有一个我们想下潜进去的“能量谷”。
如果我们只是试图走下坡进入能量谷,我们可能会不小心从任务山上走下来,从而损失性能。我们希望向低能量方向移动, 前提是这种移动不会降低我们在任务山上的高度。用数学术语来说,我们要沿着任务表现的等高线 (level set) 移动。
第一步: 分离梯度
首先,作者将策略损失分为两个独立的部分: \(L_R\) (奖励损失) 和 \(L_E\) (能量损失) 。

我们可以分别计算它们的梯度:
- \(g_R\): 改善任务的方向。
- \(g_E\): 减少能量使用的方向。
第二步: 泰勒展开逻辑
为什么沿着“等高线”移动有效?我们可以看看奖励损失的一阶泰勒近似。如果我们通过一个小步长 \(d\) 改变策略参数 \(\theta\),新的损失大约是:

如果我们的步长 \(d\) 与任务梯度 \(g_R\) 正交 (垂直) ,那么点积 \(g_R^T d\) 为零。这意味着 \(L_R(\theta + d) \approx L_R(\theta)\)。
用通俗的话说: 如果我们沿着垂直于任务梯度的方向移动权重,任务表现在 (局部) 保持不变。
第三步: 投影能量梯度
这引出了 PEGrad 的主要公式。我们要沿能量梯度 \(g_E\) 下降,但我们必须剥离掉该梯度中与任务梯度 \(g_R\) 冲突的任何部分。
我们使用正交投影 (施密特正交化) 来做到这一点。我们计算 \(g_E\) 中平行于 \(g_R\) 的分量并将其减去。剩下的就是 \(g_{E_{\perp R}}\)——即投影到任务梯度零空间上的能量梯度。
最终的更新方向 \(d\) 结合了标准任务更新和这个“安全”的能量更新:

这个等式中发生的事情如下:
- \(-\alpha g_R\): 这是标准的学习步骤。改善任务。
- 括号中的项是投影。它获取能量梯度并强制其与任务梯度成 90 度角。
- \(-\beta g_{E_{\perp R}}\): 这一步在不影响任务的情况下最小化能量。
第四步: 自适应缩放 (\(\beta\))
你可能注意到上面的等式中有一个新参数 \(\beta\)。这难道是另一个我们需要调整的超参数,用来替代 \(\lambda\) 吗?
不。作者自适应地定义了 \(\beta\)。
其逻辑是,“修正” (能量调整) 永远不应大于主要的学习信号 (任务更新) 。如果能量梯度巨大,我们要限制它,以免破坏训练的稳定性。

这个公式确保能量最小化的步长相对于任务学习率 \(\alpha\) 进行有效缩放,但会被裁剪,使其永远不会占主导地位。这使得 PEGrad 无超参数 (hyperparameter-free) 。 你不需要选择 \(\beta\);数学会在每个时间步为你选择它。
实现简单性
该方法的优势之一是它在像 PyTorch 这样的现代深度强化学习框架中非常容易实现。
算法 1 (PEGrad) 总结:
- 计算任务奖励的反向传播 \(\rightarrow\) 得到 \(g_R\)。
- 计算能量的反向传播 \(\rightarrow\) 得到 \(g_E\)。
- 计算投影: \(g_{E_{\perp R}} = g_E - \frac{g_R^T g_E}{g_R^T g_R} g_R\)。
- 如果 \(g_{E_{\perp R}}\) 太大,重新缩放它 (自适应 \(\beta\)) 。
- 将组合梯度 (\(g_R + g_{E_{\perp R}}\)) 传递给优化器。
这需要两次反向传播 (每个目标一次) ,这增加了一点计算成本,但它省去了人工调整 \(\lambda\) 数天的人力成本。
实验结果
作者在两个主要基准上测试了 PEGrad: DM-Control (四足机器人,狗) 和 HumanoidBench (H1 人形机器人) 。他们将 PEGrad 与以下方法进行了比较:
- Base: 没有任何能量约束的标准 RL (\(\lambda=0\)) 。
- Fixed \(\lambda\): 具有各种手动权重的标准 RL。
- PCGrad: 一种通常用于多任务学习的竞争方法 (梯度手术) 。
仿真结果: DM-Control
这里的目标很简单: 高回报 (Y 轴) 和低扭矩 (X 轴) 。

看看 图 2 中的散点图。
- 三角形 (\(\lambda=0\)) 具有高回报,但能量使用巨大 (最右边) 。
- 六边形 (高 \(\lambda\)) 位于最左边 (低能量) ,但回报通常会下降 (位置较低) 。
- PEGrad (星星): 始终位于左上角。这是帕累托最优 (Pareto optimal) 区域。它实现了与无约束基准相当的回报,但扭矩显著降低。
对于 Dog-Run 任务 (图 2 左下角) ,注意固定 \(\lambda\) 基准是多么挣扎。它们要么效率高但任务失败,要么成功但代价昂贵。PEGrad 找到了一种既成功又高效的策略。
仿真结果: HumanoidBench
众所周知,人形机器人比四足机器人更难控制。

在 图 3 中,我们看到了类似的成功。
- 样本效率: 看看“平均回报 (Avg. Return) ”折线图 (面板的右上角) 。PEGrad (橙色/红线) 通常比基准学得更快。
- 为什么? 在高维控制 (如人形机器人) 中,“胡乱挥舞”肢体是一种糟糕的探索策略。通过限制策略以提高能源效率,PEGrad 隐式地引导机器人进行更平滑、更自然的动作,这有助于它更早学会行走和奔跑。
- PCGrad 的失败: 代表 PCGrad 的紫色点/线经常完全失败 (接近零回报) 。作者推测这是因为 PCGrad 缺乏优先级排序——它将能量和任务视为平等的,导致相互抵消,阻止了机器人学习任务。
Sim2Real: 迁移到物理机器人
仿真很好,但在硬件上有效吗?作者将他们的策略部署在了 Unitree Go2 四足机器人上。

他们使用 PPO + PEGrad 训练机器人站立和行走,并将其与手动调整的基准和工厂控制器进行了比较。他们测量了从电池抽取的实际电流。

表 1 显示了结果:
- 行走任务: 与最佳手动调整基准 (\(\lambda=0.0002\)) 相比,PEGrad 减少了大约 19.7% 的电流消耗。
- 工厂对比: 与工厂控制器 (6.46 A) 相比,PEGrad 使用的电流显著减少 (5.65 A) 。
- 安全性: \(\lambda=0\) (无能量惩罚) 的基准非常激进,甚至无法安全地运行完整的行走测试——它会进行危险的跳跃。PEGrad 保持了稳定和高效。
结论与启示
这篇关于“非冲突能量最小化”的论文提出了一个令人信服的论点,反对传统的奖励塑造方法。通过将能量最小化视为梯度投影问题而不是奖励加权问题,PEGrad 提供了几个优势:
- 无超参数: 不再需要对 \(\lambda\) 进行网格搜索。
- 安全性: 它固有地优先考虑任务成功,防止了“懒惰机器人”的故障模式。
- 效率: 在仿真中,与无约束策略相比,它实现了高达 64% 的能量减少 。
- 可迁移性: 它在真实硬件上有效,将理论上的扭矩减少转化为实际的电池寿命收益。
为什么这很重要
随着机器人从实验室走向现实世界——配送机器人、巡检无人机、家庭助手——能源效率成为经济可行性的关键驱动力。一台能持续运行 6 小时的配送机器人比一台只能运行 3 小时的价值高出一倍。
PEGrad 提供了一种原则性的方法,可以从电池中挤出额外的运行时间,而无需工程师为每个新任务或环境花费数周时间微调奖励函数。它允许机器人动态地、自动地学习最有效的成功方式。
局限性
作者指出,PEGrad 有时会与“风格奖励 (Style Rewards) ” (用于使机器人看起来自然的奖励,如“不要摆动脚”) 发生冲突。如果最小化能量与“看起来自然”相冲突,机器人可能会为了省电而选择看起来不自然的动作。未来的工作可能会研究如何使用递归投影将多个目标 (任务 > 风格 > 能量) 链接起来。
然而,就目前而言,PEGrad 代表了使 RL 控制的机器人实用、耐用和具有能源意识的重要一步。
](https://deep-paper.org/en/paper/2509.01765/images/cover.png)