简介

想象一下训练一个机器人端一杯水。在仿真环境中,你的强化学习 (RL) 智能体表现完美,步履轻盈,滴水不漏。但当你将同样的策略部署到物理机器人上时,电机开始抽动,手臂开始颤抖,水洒得到处都是。

这种现象被称为动作波动 (action fluctuation) 。 它是阻碍深度强化学习广泛应用于自动驾驶和机器人技术等现实世界工程任务的主要障碍之一。抖动的控制信号不仅看起来糟糕,还会磨损执行器,消耗过多能量,并产生真正的安全隐患。

多年来,研究人员一直将其视为一个调参问题,试图通过惩罚不稳定的运动或以特定的方式平滑数据来解决。然而,一篇题为 “LipsNet++: Unifying Filter and Controller into a Policy Network” (LipsNet++: 将滤波器和控制器统一到策略网络中) 的新论文采取了一种更有理论依据的方法。作者确定了这种波动的根本原因,并提出了一种新颖的神经网络架构,通过借鉴经典控制理论中的一个概念来解决这些问题: 将“滤波器”与“控制器”分离。

在这篇文章中,我们将拆解 LipsNet++ 的架构,以了解它如何在不牺牲性能的情况下实现最先进的平滑度和鲁棒性。

波动动作与平滑动作的对比。

问题所在: 为什么策略会抖动?

要解决动作波动,我们首先需要了解它的来源。在标准的 RL 中,智能体 (“Actor”) 观察一个状态 \(s_t\) 并输出一个动作 \(a_t\)。理想情况下,如果状态变化平滑,动作也应该平滑变化。

然而,研究人员推导了动作随时间变化的速率,并确定了一个数学不等式,揭示了两个根本的罪魁祸首:

描述动作变化率界限的方程。

这个不等式告诉我们,动作的波动 (\(\frac{da_t}{dt}\)) 受到策略灵敏度 (动作随观测变化而变化的程度) 和输入变化率 (观测变化的速度) 乘积的限制。

这导致了两个截然不同的根本原因的确定:

  1. 观测噪声 (Observation Noise) : 现实世界的传感器充满噪声。即使机器人静止不动,传感器读数 (\(\sigma_t\)) 也会闪烁跳动。如果策略对每一个微小的闪烁都做出反应,电机就会抽动。
  2. 策略非平滑性 (Policy Non-Smoothness) : 神经网络是通用函数拟合器,这意味着它们可以学习非常“锯齿状”的函数。如果没有受到约束,输入状态的微小变化可能会触发输出动作的巨大跳跃。

以前的大多数解决方案试图只解决其中一个问题,或者效率低下地将它们混合在一起。 LipsNet++ 提出了一种解耦的解决方案: 使用傅里叶滤波层 (Fourier Filter Layer) 来处理噪声,并使用利普希茨控制器层 (Lipschitz Controller Layer) 来处理策略平滑度。

平滑与非平滑策略景观的可视化。

如上图 14 所示,非平滑策略 (d) 导致锯齿状轨迹,而平滑策略 (b) 产生连续、稳定的控制。

解决方案: LipsNet++ 架构

LipsNet++ 的天才之处在于它的结构,它反映了经典的控制回路。在经典工程中,你永远不会将原始的、嘈杂的传感器数据直接输入控制器。你会先让它通过一个滤波器。

LipsNet++ 将此工作流程集成到一个单一的、端到端可微的策略网络中。

LipsNet++ 的整体架构。

模块 1: 傅里叶滤波层

防止抖动的第一道防线是傅里叶滤波层。它的工作是查看历史观测数据,剥离高频噪声,同时保留重要信号。

标准的神经网络通常处理当前状态或一堆帧。LipsNet++ 获取最后 \(N\) 个观测值,并使用快速傅里叶变换 (FFT) 对其进行处理。

工作原理

  1. 输入堆叠: 该层获取一系列历史观测值 \(o_t, o_{t-1}, \dots, o_{t-N+1}\)。
  2. FFT: 它将此时域序列转换为频域。这揭示了信号中存在哪些频率。噪声通常存在于高频中,而机器人的物理运动存在于较低频率中。
  3. 可学习的滤波: 这是聪明的部分。网络不是由人类工程师手动设计低通滤波器 (决定截止频率) ,而是学习一个滤波器矩阵 \(H\) 。 这个矩阵与频率特征相乘,有效地学会了“调低”代表噪声的频率音量,并“调高”携带有用状态信息的频率。
  4. IFFT: 最后,快速傅里叶逆变换将干净的频率数据转换回时域信号 (\(\tilde{o}_t\)) ,以供控制器使用。

傅里叶滤波层的工作流程。

为了确保该层实际上是在过滤噪声 (而不仅仅是让所有东西通过) ,作者在损失函数中添加了一个惩罚项,鼓励滤波器矩阵 \(H\) 变得稀疏 (值很小) 。这迫使网络只保留那些对最大化奖励绝对必要的频率。

模块 2: 利普希茨控制器层

现在我们有了一个干净的信号 \(\tilde{o}_t\),我们需要将其映射到一个动作。然而,即使有干净的输入,标准的多层感知机 (MLP) 仍然可能学习到一个混乱、锯齿状的函数。

为了防止这种情况,策略需要是利普希茨连续 (Lipschitz continuous) 的。简单来说,如果一个函数的变化率是有界的,那么它就是利普希茨连续的。如果输入变化很小,输出的变化不能超过该量的 \(K\) 倍,其中 \(K\) 是利普希茨常数。

以前的尝试,如最初的 LipsNet 或 MLP-SN (谱归一化) ,有明显的缺点。它们要么在推理 (部署) 期间计算昂贵 (速度慢) ,要么限制性过强,损害了机器人的性能。

雅可比正则化

LipsNet++ 引入了一种更灵活的方法,称为雅可比正则化 (Jacobian Regularization)

函数的局部利普希茨常数与其梯度的范数 (雅可比矩阵) 密切相关。如果梯度很大,函数就陡峭且不稳定。如果梯度很小,函数就很平滑。

LipsNet++ 不是强制网络架构变得平滑 (这限制了它可以学习的内容) ,而是在训练损失中添加了一个“软”约束:

带有雅可比正则化的损失函数。

在这里,\(\| \nabla f \|\) 是雅可比矩阵的范数。通过在训练期间最小化这一项,网络被鼓励自然地学习平滑映射。这允许控制器成为任何可微的网络结构 (不限于特定的激活函数) ,并消除了在推理 (部署) 期间进行复杂计算的需要,使其速度非常快。

实验与结果

研究人员在仿真和现实场景中,将 LipsNet++ 与标准 MLP 和以前最先进的平滑方法 (如 LipsNet v1 和 MLP-SN) 进行了测试。

仿真: 双积分器

在一个名为“双积分器”的受控物理环境中,不同程度的噪声被注入到观测中,以对策略进行压力测试。

双积分器中波形的对比。

图 6 中的结果令人震惊。

  • 顶部 (a): LipsNet++ (绿色) 的动作波动幅度明显低于标准 MLP (蓝色) 。
  • 中间 (b): LipsNet++ 的轨迹平滑且连续,而 MLP 剧烈抖动。
  • 底部 (c): 频谱证实 LipsNet++ 主要在低频范围内运行,成功抑制了高频噪声。

当在雷达图中总结时,LipsNet++ 展示了全面的优越性能,比任何竞争对手都更好地平衡了控制精度、平滑度和计算速度。

比较性能指标的雷达图。

学习到的滤波器的可视化

最有趣的结果之一是可视化傅里叶滤波层实际学到了什么。它真的学会过滤噪声了吗?

观测频率和滤波器矩阵的热力图。

图 24 证实了这一假设。

  • (a) 无噪声输入: 真实信号集中在特定的低频中。
  • (b) 噪声输入: 噪声污染了整个频谱。
  • (c) 滤波器矩阵: 学习到的矩阵 \(H\) 自动聚焦于真实信号存在的频率,并抑制其余频率。它本质上完全通过强化学习学会了成为一个带通滤波器,而无需人工干预。

现实世界验证: 微型车辆驾驶

仿真是宽容的;现实世界则不然。团队将 LipsNet++ 部署在负责跟踪轨迹和避障的物理微型机器人上。他们向传感器注入人工噪声,以模拟困难的感知条件。

现实世界车辆的轨迹。

在图 8 中,我们看到机器人试图避开障碍物 (红色的 ‘x’) 。

  • MLP (蓝色) : 轨迹是颤抖的。看子图 (d) 和 (e),加速度命令剧烈振荡。这就是破坏电机的“抽搐”。
  • LipsNet++ (橙色) : 轨迹干净,控制输入平滑。

当观察随噪声增加的汇总数据时,差异变得更加明显。

显示性能随噪声增加趋势的图表。

如上图 50 所示,随着噪声水平 (x 轴) 上升:

  1. TAR (总平均回报) : LipsNet++ (橙色) 保持高性能,而 MLP (蓝色) 性能崩溃。
  2. AFR (动作波动率) : MLP 变得极其不稳定 (高 AFR) ,而 LipsNet++ 保持镇定。

在一个特定的高噪声场景中,MLP 驱动的机器人实际上撞车了,因为它不稳定的运动导致失控,而 LipsNet++ 机器人成功完成了任务。

结论

LipsNet++ 代表了实用强化学习向前迈出的重要一步。它弥合了物理硬件的混乱、嘈杂现实与神经网络数学精度之间的鸿沟。

通过显式地将问题解耦为滤波 (处理噪声) 和控制 (处理策略平滑度) ,作者创建了一个具有以下特点的系统:

  1. 鲁棒性: 通过傅里叶滤波层有效处理传感器噪声。
  2. 平滑性: 通过雅可比正则化的利普希茨控制器生成流畅的动作。
  3. 快速: 它避免了以前方法的计算瓶颈,使其适用于实时控制。

对于机器人学和人工智能领域的学生和从业者来说,这篇论文是一个完美的例子,展示了如何将领域知识 (控制理论) 与现代深度学习相结合,来解决暴力训练无法解决的根本问题。随着我们迈向更多的具身智能 (Embodied AI) ,像 LipsNet++ 这样的架构对于创造像生物系统一样优雅且稳定移动的机器人将至关重要。