1. 项目概述当机器学习遇见物理定律与安全红线在机器人、自动驾驶汽车和智能电网等安全至上的领域我们设计的控制器不仅要“聪明”更要“可靠”。传统的控制理论为我们提供了坚实的基石比如李雅普诺夫稳定性理论它通过寻找一个系统的“能量函数”来证明系统会稳定在平衡点。然而面对现代工程中日益复杂的非线性、高维系统手工设计这样的函数变得异常困难甚至不可能。与此同时以神经网络为代表的机器学习方法展现出强大的函数拟合与模式识别能力但其“黑箱”特性又让我们对其内部行为和安全边界心存疑虑。这就引出了一个核心矛盾我们能否让数据驱动的、灵活的机器学习模型同时遵守严谨的物理定律和硬性的安全约束这正是“物理信息机器学习”与“安全验证”交叉领域所要回答的问题。简单来说我们的目标不再是训练一个仅仅在训练集上表现好的模型而是训练一个从原理上就被证明是稳定或安全的模型。这就像教一个AI飞行员开飞机不仅要看它大多数时候飞得稳还要从空气动力学和控制系统原理上证明在任何可能的扰动下它都不会失速。本次分享我将结合自己在这个领域多年的研究和工程实践深入剖析两个核心工具基于神经网络的李雅普诺夫函数学习和可达性分析。前者是主动“设计”稳定性后者是严格“验证”安全性。我会带你走过从理论动机、架构设计、具体实现到避坑经验的完整路径并探讨如何用混合整数线性规划这类优化工具来为神经网络的决策提供可验证的安全边界。无论你是控制领域的研究者还是希望在产品中嵌入可靠学习算法的工程师这些内容都将为你提供可直接落地的思路和方案。2. 核心思路用神经网络“学习”稳定性与安全边界传统的控制设计流程往往是“先设计控制器再分析稳定性”。而在PIML框架下我们试图将稳定性与安全性作为先验知识或约束直接嵌入到机器学习模型的训练过程中实现“边学习边保证”的设计范式。其核心思路可以分解为两个层面。2.1 从李雅普诺夫函数到神经李雅普诺夫函数李雅普诺夫第二法的思想非常直观对于一个系统如果我能找到一个状态函数 V(x)它像系统的“能量”一样在平衡点处为零在其他地方为正并且沿着系统轨迹的“变化率”为负那么系统就是渐近稳定的。数学上对于离散系统这要求 V(x_{k1}) - V(x_k) 0。传统方法中V(x) 需要凭经验手工构造如二次型这对于复杂非线性系统是巨大挑战。神经网络的用武之地就在这里我们能否用一个神经网络 V_θ(x) 来参数化这个李雅普诺夫函数候选者并通过训练让它的输出自动满足上述稳定性条件这里的关键在于网络结构的设计。一个朴素的全连接网络可能无法保证 V(x) 的正定性或凸性。因此文献中广泛采用了输入凸神经网络。ICNN 通过约束其权重矩阵非负并使用凸的、非递减的激活函数如 ReLU保证了其输出关于输入是凸函数。这为寻找无局部极小值的李雅普诺夫函数候选者提供了有利结构。随后通过一个正定层例如V_θ(x) σ(g_θ(x) - g_θ(0)) ε||x||²强制满足 V(0)0 且正定的边界条件。实操心得ICNN 并非银弹虽然 ICNN 在理论上很优雅但在实际训练中我遇到过不少问题。首先非负权重约束可能导致梯度消失或爆炸需要仔细的初始化如 He 初始化和学习率调整。其次ICNN 的凸性保证是全局的但我们的稳定性条件只需要在系统可能运行的区域一个紧集内满足。有时一个设计良好的普通全连接网络配合适当的正则化如权重衰减、Lipschitz 约束在感兴趣的区域内的表现可能比 ICNN 更好且训练更稳定。我的建议是将 ICNN 作为一个强有力的基准和起点但如果遇到训练困难不要排斥尝试带有物理信息正则化的标准架构。2.2 可达性分析从计算所有可能到验证安全边界如果说李雅普诺夫方法是主动设计一个“安全罩”吸引域那么可达性分析就是被动地、穷尽地检查这个“罩子”是否完好以及系统会不会跑到“罩子”外的危险区域。可达性分析的核心问题是给定一个动态系统和一个初始状态集合 X₀系统在未来一段时间内所有可能到达的状态集合 X_k 是什么如果这个“可达集”与代表故障或不安全的状态集合没有交集那么安全性就得到了保证。精确计算可达集对于非线性系统通常是不可解的。因此实践中我们计算其过近似。也就是说我们计算一个稍大一些的集合 X̄_k确保真实的可达集 X_k 被包含在内即 X_k ⊆ X̄_k。如果这个更大的过近似集都不与不安全集相交那么安全性的结论就是可靠的。为什么用过近似这是为了获得可处理的数学形式如凸多面体、椭球和可计算的算法。代价是可能引入保守性我们可能因为过近似太大而错误地宣称系统“不安全”即使真实轨迹是安全的。因此可达性分析领域的许多工作都致力于在计算复杂度和保守性之间取得平衡。3. 神经李雅普诺夫函数架构、训练与实战细节理解了核心思路后我们深入到具体实现层面。如何构建并训练一个能用的神经李雅普诺夫函数这远不止是搭一个网络那么简单。3.1 网络架构设计与物理约束编码一个典型的神经李雅普诺夫函数架构包含两部分特征提取与变换层如 ICNN负责从高维状态空间 x 中提取特征。ICNN 确保中间表示具有良好的几何性质。正定输出层将网络的原始输出 g_θ(x) 转换为合格的李雅普诺夫函数。常用形式是V_θ(x) h(g_θ(x) - g_θ(0)) ε * ||x||²其中 h(·) 是一个凸的、单调递增且满足 h(0)0 的函数例如 softplus 函数。g_θ(x) - g_θ(0)这一项直接保证了 V_θ(0) 0。附加的 ε||x||² 项ε 0 是一个小常数是一个径向无界的正则项它确保当 ||x|| 趋向无穷时V_θ(x) 也趋向无穷这对于证明全局稳定性有时是必要的。关键细节梯度计算与自动微分训练过程需要计算 V_θ(x) 关于参数 θ 的梯度以及 V_θ(x) 关于状态 x 的梯度即 ∇V_θ(x)后者用于计算李雅普诺夫函数的导数或差分。得益于现代深度学习框架如 PyTorch、JAX这些梯度可以通过自动微分轻松获得。这是物理信息机器学习得以实现的基础——将物理定律微分方程、不等式约束转化为可微的损失函数项。3.2 损失函数设计从软约束到硬保证最直接的训练方法是“物理信息神经网络”范式构建一个损失函数惩罚李雅普诺夫条件的不满足。对于离散系统一个基础的损失函数是L_data(θ) Σ_i Σ_k max(0, V_θ(x_{k1}^i) - V_θ(x_k^i))²这个损失函数会鼓励网络参数 θ 使得沿着每条轨迹V 值都是递减的。然而这是一个软约束。即使损失函数值降到很低也不能数学上严格保证对于所有未见过状态李雅普诺夫条件都成立。它只保证了在训练数覆盖的区域上条件近似满足。为了得到更可靠的保证近年来出现了几种强化方案投影层/修正层在训练过程中或训练后对网络输出或系统动态进行投影使其严格满足李雅普诺夫不等式。这相当于在优化问题中加入了硬约束。对抗性样本训练不仅仅在给定的轨迹数据上训练还主动寻找那些可能违反李雅普诺夫条件的“最坏情况”状态点并将其加入训练集。这类似于在经验风险最小化中加入了鲁棒性正则化。基于 Zubov 方程的方法Zubov 方程提供了一个 PDE其解直接刻画了真实吸引域的边界。将 PDE 残差作为损失的一部分可以引导学习的李雅普诺夫函数其水平集与真实吸引域边界对齐从而更准确地估计稳定区域。避坑指南训练数据的质量与分布神经李雅普诺夫函数的质量极度依赖于训练数据。如果你的轨迹数据只覆盖了状态空间的一小部分那么学到的 V_θ(x) 在该区域外可能毫无意义甚至行为怪异。因此数据采集或生成需要策略广泛激励使用噪声注入、随机初始状态或主动探索策略如强化学习中的探索尽可能覆盖更大的状态空间区域。关注边界在估计的稳定区域边界附近密集采样因为这里是最可能违反李雅普诺夫条件的地方。合成数据如果系统模型已知即使是近似模型可以利用模型仿真生成大量数据作为学习的起点。3.3 联合学习控制器与李雅普诺夫函数更强大的范式是同时学习控制策略 π_γ(x) 和其对应的李雅普诺夫函数 V_θ(x)。这通常通过一个 minimax 式的优化问题进行min_{θ,γ} E_{x~ρ} [ V_θ(0)² ( -V_θ(x) )_ ( ∇V_θ(x)·f(x, π_γ(x)) )_ ]其中 ρ 是状态空间上的一个分布(·)_ 表示取正部ReLU。第一项锚定零点第二项强制正定性第三项强制导数负定。这里存在一个平凡解陷阱网络可能简单地学会输出 V_θ(x) ≡ 0这个函数满足所有条件但毫无用处。为了防止这种情况需要引入正则化项例如鼓励 V_θ(x) 的值与状态范数成正比(||x||² - αV_θ(x))²从而扩大稳定区域的估计。实战经验训练技巧与调参联合训练是一个复杂的平衡过程。控制网络和李雅普诺夫网络会相互影响。我的经验是预热训练先固定一个简单的控制器如 LQR单独训练李雅普诺夫网络得到一个较好的初始 V_θ。然后再放开控制器进行联合训练。交替训练不是同时更新两个网络而是进行交替优化固定控制器更新李雅普诺夫函数几步再固定李雅普诺夫函数更新控制器几步。这有助于训练稳定。学习率策略通常李雅普诺夫网络需要更小的学习率因为它要学习一个满足严格不等式条件的“证书”控制器网络可以相对大一些以快速优化性能。监控指标不要只看损失函数下降。一定要在独立的验证集甚至是通过仿真随机采样的新状态上监控李雅普诺夫条件的满足率即 V(x_{k1}) V(x_k) 的比例以及控制性能如累计成本。4. 可达性分析的三类方法原理、实现与取舍学习了一个带有“稳定性证书”的控制器后我们还需要用可达性分析来验证其安全边界。根据系统复杂度和对保证强度的要求主要有三类方法。4.1 基于集合传播的技术这类方法适用于动态模型已知且相对简单的系统如线性、分段仿射系统。核心思想是用一个简单的几何形状模板如多面体、椭球、zonotope带形集合来表征状态集合并推导出这个形状在系统动态映射下的传播公式。例如对于线性系统 x_{k1} Ax_k如果初始状态在一个椭球 E₀ {x | xᵀP₀x ≤ 1} 内那么一步后的状态也在一个椭球 E₁ {x | xᵀAᵀP₀A x ≤ 1} 内。通过迭代计算可以得到一系列过近似集合 {E₀, E₁, ..., E_N}。挑战与解决方案包裹效应在多次迭代后过近似误差会累积导致集合被过分放大。缓解方法包括使用更紧的凸松弛、在每一步对集合进行“重化简”用一个新的、更紧凑的模板形状来包裹传播后的形状或者将初始集合分割成更小的子集分别进行传播。非线性动态对于非线性系统 f(x)需要利用其泰勒展开或 Lipschitz 常数等性质得到线性或仿射的微分包含从而进行保守的集合传播。例如利用雅可比矩阵的区间界。工具推荐对于学术研究和原型验证MATLAB 的 CORA 工具箱和 Python 的 JuliaReach通过 Julia 调用是功能强大的集合运算库。对于工业级应用可能需要基于 C 开发定制的高性能实现。4.2 哈密顿-雅可比可达性分析HJ 可达性被认为是可达性分析的“黄金标准”因为它能处理非线性动态和对抗性扰动并提供最精确的可达集边界即水平集。它将可达性问题转化为求解一个 Hamilton-Jacobi-Isaacs 偏微分方程HJI-PDE。该 PDE 的解 V(x, t) 的零水平集就精确表示了 t 时刻的可达集边界。其强大之处在于它本质上是在求解一个最优控制问题或微分博弈问题找到了从初始点出发“最坏情况”下所能到达的边界。其致命弱点在于维数灾难。求解 PDE 的计算复杂度随状态空间维度指数增长通常只能处理维度 ≤ 6 的问题。这对于机器人≥12维或自动驾驶≥10维等问题直接应用是不现实的。前沿进展为了突破维数限制当前研究集中在神经网络近似用深度神经网络来近似 HJI-PDE 的解函数 V(x, t)。通过将 PDE 残差作为损失函数进行训练可以处理更高维的问题但牺牲了严格的数学保证变为概率保证或经验性能。分解方法将高维系统分解为多个耦合较弱的低维子系统分别进行 HJ 分析再通过某种方式组合结果。这适用于具有特定结构如车-车交互的系统。4.3 基于优化与采样的可扩展方法对于高维、黑箱或学习得到的系统前两种方法可能都不适用。此时基于优化和采样的方法提供了可扩展的替代方案。4.3.1 混合整数线性规划验证MILP 的核心思想是将神经网络控制器和分段仿射系统动态的验证问题精确地编码为一个混合整数线性规划问题。以验证一个 ReLU 神经网络控制器 ϕ(x) 的最大输出为例ReLU 的 MILP 编码一个 ReLU 单元 y max(0, wᵀx b) 可以通过引入一个二元变量 β 和一个大 M 常数用一组线性不等式等价表示y ≤ wᵀx b M(1-β)y ≥ wᵀx by ≤ Mβy ≥ 0β ∈ {0, 1} 当 β1 时强制 y wᵀx b 且 y ≥ 0当 β0 时强制 y0 且 wᵀx b ≤ 0。构造验证问题将整个网络和系统约束如状态输入范围 X 是一个多面体用上述方式编码后验证问题“是否存在一个 x ∈ X使得某个安全条件被违反”就可以转化为一个 MILP 的可行性问题。如果想找最坏情况可以转化为优化问题如最大化某个不安全指标。求解与保证使用成熟的 MILP 求解器如 Gurobi, CPLEX进行求解。如果问题不可行则安全性质得证如果可行求解器会给出一个反例即一个违反安全性的具体状态 x*。MILP 方法的优势与局限优势提供严格的、数学上的保证在建模精确的前提下。它能处理复杂的神经网络和分段线性动态。局限计算复杂度高。整数变量的数量随网络神经元数量线性增长对于大型网络求解可能非常耗时。它主要适用于分段仿射系统和ReLU网络。对于光滑非线性动态需要先进行分段线性近似这会引入近似误差。4.3.2 基于采样的概率验证当系统维度太高或者我们愿意接受概率性的安全保证时采样方法非常有效。其思路简单直接从初始状态集合 X₀ 中按照某种分布如均匀分布采样大量点 {x₀¹, x₀², ...}。对每个采样点进行前向仿真得到其对应的轨迹末端状态 {x_N¹, x_N², ...}。用这些末端状态点来构造一个对真实可达集 X_N 的估计 Ĉ_N例如计算这些点的凸包再向外膨胀一个边界 ϵ。基于统计学习理论如 Probably Approximately Correct, PAC我们可以说以高概率1-δ真实的可达集 X_N 被包含在估计集 Ĉ_N 中。如果 Ĉ_N 与不安全集不相交则以高概率保证系统安全。关键参数与设计选择采样分布均匀采样简单但可能效率低。自适应采样如主动学习可以在可能违反安全的边界区域采集更多样本。集合估计器凸包、区间盒、基于支持向量机的分类边界、水平集函数如另一个神经网络等。选择取决于可达集的预期形状。边界 ϵ反映了估计的保守程度。ϵ 越大保证越强但保守性也越高。样本数 N根据所需的置信度 δ 和精度 ϵ可以通过理论公式估算所需的最小样本数。经验之谈如何选择方法在实际项目中我通常会采用一个分层验证策略快速筛查采样法首先用大量采样进行快速仿真。如果成千上万的随机仿真中都没有出现安全违规那么系统很可能以高概率是安全的。这能快速建立信心。局部精炼优化法如果采样法发现了一些“接近违规”的边界案例或者需要对特定高风险区域进行严格保证就在该区域使用 MILP 或其他优化方法进行精确验证。低维核心分析HJ 法对于整个系统的关键低维子系统如质心动力学使用 HJ 可达性进行精确分析以获得最坚实的理论保证。 没有一种方法能通吃所有场景组合使用才是工程实践中的王道。5. 工程实践中的挑战与解决方案将上述理论应用到实际系统中会遇到许多在论文中鲜少提及的挑战。这里分享几个我踩过的“坑”以及应对策略。5.1 缩放与数值问题李雅普诺夫函数 V(x) 的值可能跨越多个数量级尤其是在状态远离平衡点时。直接使用均方误差损失可能导致训练被大数值区域主导而平衡点附近的关键行为学不好。解决方案在损失函数中对 V(x) 的变化率进行归一化或使用对数尺度。例如最小化(V(x_{k1}) - V(x_k)) / (|V(x_k)| δ)其中 δ 是一个小常数防止除零。同时对状态输入 x 进行标准化如减去均值、除以标准差也是标准操作。5.2 验证结果的解释与置信度基于采样的验证给出的是概率保证例如“有 95% 的置信度系统失败的概率低于 10^-4”。这个“10^-4”是失效概率的上界估计并非精确值。客户或系统架构师可能不理解这一点他们想要的是“绝对安全”。解决方案清晰的沟通至关重要。需要解释“概率保证”的含义并将其与行业安全标准如 ISO 26262 中的 ASIL 等级联系起来。同时结合形式化方法对于由采样验证找出的关键路径或组件尝试用 MILP 等严格方法进行小范围的、补充性的形式化验证以增强整体论据的说服力。5.3 在线部署与计算实时性学习到的神经李雅普诺夫函数和基于优化的验证器如 MILP计算成本可能很高难以满足控制循环的实时性要求通常是毫秒级。解决方案控制器简化使用“蒸馏”技术用一个更小、更快的网络或甚至一个查找表来近似学习到的复杂控制器和证书函数。在离线阶段用大网络生成大量状态控制律数据对然后训练一个小网络来拟合它。离线预计算对于可达性分析可以离线计算出一个安全不变集或安全控制律的查找表。在线运行时只需进行简单的集合包含检查或查表操作。HJ 可达性就常被用于离线计算“备份控制器”的安全域。触发式验证不是每个控制周期都进行完整的验证。可以设计一个“监视器”当系统状态接近安全边界时再触发耗时的精确验证或启用更保守的备用控制器。5.4 模型失配与分布外泛化我们学习或验证所基于的模型与真实物理系统之间必然存在差距。在模型“盲区”中所有的保证都可能失效。解决方案不确定性量化在学习和验证过程中显式地考虑模型不确定性。例如使用贝叶斯神经网络来得到预测的不确定性区间或者在可达性分析中使用不确定性的区间模型。鲁棒性训练在训练神经李雅普诺夫函数或控制器时向数据中注入噪声或对抗性扰动以提高其在模型误差下的鲁棒性。在线自适应与安全层部署一个轻量级的“安全过滤器”。这个过滤器不改变学习控制器的主要性能但会实时监控状态并在预测到可能违反安全约束时施加一个最小的修正干预如通过控制屏障函数 CBFs将系统拉回安全区域。6. 未来展望开放问题与实用建议这个领域仍在快速发展结合我个人的观察以下几个方向既有挑战也充满机遇可解释性与可信赖性神经网络的内部表示仍然是个黑箱。我们如何解释一个神经李雅普诺夫函数为什么在某个区域值很小如何让安全审核人员信任一个由采样和优化混合验证的结果发展可视化工具和可解释的证书形式是一个重要方向。统一框架目前学习、验证和控制常常是分离的模块。未来的趋势是开发端到端可微的安全学习框架将安全验证的约束如可达集不交也作为损失项加入到训练中让模型从一开始就在安全的“车道”内学习。从验证到修复当验证工具发现一个潜在的安全漏洞时下一步不应只是报警而是能自动提出修复建议。例如反例引导的抽象精化循环用 MILP 找到一个反例将其加入训练数据重新训练控制器再次验证直到通过。对从业者的建议从简单系统开始不要一开始就在高维人形机器人上尝试。从一个 2D 倒立摆或小车系统开始完整走通数据收集、网络训练、稳定性验证和简单可达性分析的流程。这会帮你建立对问题难度和工具链的直觉。充分利用开源库不要重复造轮子。NeuroMANCER、OSQP于二次规划安全过滤器、CORA、Drake 等开源工具包提供了优秀的起点。仿真仿真再仿真在将任何学习控制器部署到实体系统之前进行海量的、包含各种扰动和噪声的仿真测试。仿真是最廉价、最快速的“第一道”验证关卡。物理信息机器学习与安全验证的结合正在为自主系统打开一扇新的大门既拥有数据驱动的适应能力又具备模型驱动的可靠保证。这条路依然漫长但每一步进展都让我们离更智能、更安全的机器更近一步。希望这些从理论到实战的分享能为你在这条道路上的探索提供一些切实的参考。
神经李雅普诺夫函数与可达性分析:保障机器学习控制系统安全
1. 项目概述当机器学习遇见物理定律与安全红线在机器人、自动驾驶汽车和智能电网等安全至上的领域我们设计的控制器不仅要“聪明”更要“可靠”。传统的控制理论为我们提供了坚实的基石比如李雅普诺夫稳定性理论它通过寻找一个系统的“能量函数”来证明系统会稳定在平衡点。然而面对现代工程中日益复杂的非线性、高维系统手工设计这样的函数变得异常困难甚至不可能。与此同时以神经网络为代表的机器学习方法展现出强大的函数拟合与模式识别能力但其“黑箱”特性又让我们对其内部行为和安全边界心存疑虑。这就引出了一个核心矛盾我们能否让数据驱动的、灵活的机器学习模型同时遵守严谨的物理定律和硬性的安全约束这正是“物理信息机器学习”与“安全验证”交叉领域所要回答的问题。简单来说我们的目标不再是训练一个仅仅在训练集上表现好的模型而是训练一个从原理上就被证明是稳定或安全的模型。这就像教一个AI飞行员开飞机不仅要看它大多数时候飞得稳还要从空气动力学和控制系统原理上证明在任何可能的扰动下它都不会失速。本次分享我将结合自己在这个领域多年的研究和工程实践深入剖析两个核心工具基于神经网络的李雅普诺夫函数学习和可达性分析。前者是主动“设计”稳定性后者是严格“验证”安全性。我会带你走过从理论动机、架构设计、具体实现到避坑经验的完整路径并探讨如何用混合整数线性规划这类优化工具来为神经网络的决策提供可验证的安全边界。无论你是控制领域的研究者还是希望在产品中嵌入可靠学习算法的工程师这些内容都将为你提供可直接落地的思路和方案。2. 核心思路用神经网络“学习”稳定性与安全边界传统的控制设计流程往往是“先设计控制器再分析稳定性”。而在PIML框架下我们试图将稳定性与安全性作为先验知识或约束直接嵌入到机器学习模型的训练过程中实现“边学习边保证”的设计范式。其核心思路可以分解为两个层面。2.1 从李雅普诺夫函数到神经李雅普诺夫函数李雅普诺夫第二法的思想非常直观对于一个系统如果我能找到一个状态函数 V(x)它像系统的“能量”一样在平衡点处为零在其他地方为正并且沿着系统轨迹的“变化率”为负那么系统就是渐近稳定的。数学上对于离散系统这要求 V(x_{k1}) - V(x_k) 0。传统方法中V(x) 需要凭经验手工构造如二次型这对于复杂非线性系统是巨大挑战。神经网络的用武之地就在这里我们能否用一个神经网络 V_θ(x) 来参数化这个李雅普诺夫函数候选者并通过训练让它的输出自动满足上述稳定性条件这里的关键在于网络结构的设计。一个朴素的全连接网络可能无法保证 V(x) 的正定性或凸性。因此文献中广泛采用了输入凸神经网络。ICNN 通过约束其权重矩阵非负并使用凸的、非递减的激活函数如 ReLU保证了其输出关于输入是凸函数。这为寻找无局部极小值的李雅普诺夫函数候选者提供了有利结构。随后通过一个正定层例如V_θ(x) σ(g_θ(x) - g_θ(0)) ε||x||²强制满足 V(0)0 且正定的边界条件。实操心得ICNN 并非银弹虽然 ICNN 在理论上很优雅但在实际训练中我遇到过不少问题。首先非负权重约束可能导致梯度消失或爆炸需要仔细的初始化如 He 初始化和学习率调整。其次ICNN 的凸性保证是全局的但我们的稳定性条件只需要在系统可能运行的区域一个紧集内满足。有时一个设计良好的普通全连接网络配合适当的正则化如权重衰减、Lipschitz 约束在感兴趣的区域内的表现可能比 ICNN 更好且训练更稳定。我的建议是将 ICNN 作为一个强有力的基准和起点但如果遇到训练困难不要排斥尝试带有物理信息正则化的标准架构。2.2 可达性分析从计算所有可能到验证安全边界如果说李雅普诺夫方法是主动设计一个“安全罩”吸引域那么可达性分析就是被动地、穷尽地检查这个“罩子”是否完好以及系统会不会跑到“罩子”外的危险区域。可达性分析的核心问题是给定一个动态系统和一个初始状态集合 X₀系统在未来一段时间内所有可能到达的状态集合 X_k 是什么如果这个“可达集”与代表故障或不安全的状态集合没有交集那么安全性就得到了保证。精确计算可达集对于非线性系统通常是不可解的。因此实践中我们计算其过近似。也就是说我们计算一个稍大一些的集合 X̄_k确保真实的可达集 X_k 被包含在内即 X_k ⊆ X̄_k。如果这个更大的过近似集都不与不安全集相交那么安全性的结论就是可靠的。为什么用过近似这是为了获得可处理的数学形式如凸多面体、椭球和可计算的算法。代价是可能引入保守性我们可能因为过近似太大而错误地宣称系统“不安全”即使真实轨迹是安全的。因此可达性分析领域的许多工作都致力于在计算复杂度和保守性之间取得平衡。3. 神经李雅普诺夫函数架构、训练与实战细节理解了核心思路后我们深入到具体实现层面。如何构建并训练一个能用的神经李雅普诺夫函数这远不止是搭一个网络那么简单。3.1 网络架构设计与物理约束编码一个典型的神经李雅普诺夫函数架构包含两部分特征提取与变换层如 ICNN负责从高维状态空间 x 中提取特征。ICNN 确保中间表示具有良好的几何性质。正定输出层将网络的原始输出 g_θ(x) 转换为合格的李雅普诺夫函数。常用形式是V_θ(x) h(g_θ(x) - g_θ(0)) ε * ||x||²其中 h(·) 是一个凸的、单调递增且满足 h(0)0 的函数例如 softplus 函数。g_θ(x) - g_θ(0)这一项直接保证了 V_θ(0) 0。附加的 ε||x||² 项ε 0 是一个小常数是一个径向无界的正则项它确保当 ||x|| 趋向无穷时V_θ(x) 也趋向无穷这对于证明全局稳定性有时是必要的。关键细节梯度计算与自动微分训练过程需要计算 V_θ(x) 关于参数 θ 的梯度以及 V_θ(x) 关于状态 x 的梯度即 ∇V_θ(x)后者用于计算李雅普诺夫函数的导数或差分。得益于现代深度学习框架如 PyTorch、JAX这些梯度可以通过自动微分轻松获得。这是物理信息机器学习得以实现的基础——将物理定律微分方程、不等式约束转化为可微的损失函数项。3.2 损失函数设计从软约束到硬保证最直接的训练方法是“物理信息神经网络”范式构建一个损失函数惩罚李雅普诺夫条件的不满足。对于离散系统一个基础的损失函数是L_data(θ) Σ_i Σ_k max(0, V_θ(x_{k1}^i) - V_θ(x_k^i))²这个损失函数会鼓励网络参数 θ 使得沿着每条轨迹V 值都是递减的。然而这是一个软约束。即使损失函数值降到很低也不能数学上严格保证对于所有未见过状态李雅普诺夫条件都成立。它只保证了在训练数覆盖的区域上条件近似满足。为了得到更可靠的保证近年来出现了几种强化方案投影层/修正层在训练过程中或训练后对网络输出或系统动态进行投影使其严格满足李雅普诺夫不等式。这相当于在优化问题中加入了硬约束。对抗性样本训练不仅仅在给定的轨迹数据上训练还主动寻找那些可能违反李雅普诺夫条件的“最坏情况”状态点并将其加入训练集。这类似于在经验风险最小化中加入了鲁棒性正则化。基于 Zubov 方程的方法Zubov 方程提供了一个 PDE其解直接刻画了真实吸引域的边界。将 PDE 残差作为损失的一部分可以引导学习的李雅普诺夫函数其水平集与真实吸引域边界对齐从而更准确地估计稳定区域。避坑指南训练数据的质量与分布神经李雅普诺夫函数的质量极度依赖于训练数据。如果你的轨迹数据只覆盖了状态空间的一小部分那么学到的 V_θ(x) 在该区域外可能毫无意义甚至行为怪异。因此数据采集或生成需要策略广泛激励使用噪声注入、随机初始状态或主动探索策略如强化学习中的探索尽可能覆盖更大的状态空间区域。关注边界在估计的稳定区域边界附近密集采样因为这里是最可能违反李雅普诺夫条件的地方。合成数据如果系统模型已知即使是近似模型可以利用模型仿真生成大量数据作为学习的起点。3.3 联合学习控制器与李雅普诺夫函数更强大的范式是同时学习控制策略 π_γ(x) 和其对应的李雅普诺夫函数 V_θ(x)。这通常通过一个 minimax 式的优化问题进行min_{θ,γ} E_{x~ρ} [ V_θ(0)² ( -V_θ(x) )_ ( ∇V_θ(x)·f(x, π_γ(x)) )_ ]其中 ρ 是状态空间上的一个分布(·)_ 表示取正部ReLU。第一项锚定零点第二项强制正定性第三项强制导数负定。这里存在一个平凡解陷阱网络可能简单地学会输出 V_θ(x) ≡ 0这个函数满足所有条件但毫无用处。为了防止这种情况需要引入正则化项例如鼓励 V_θ(x) 的值与状态范数成正比(||x||² - αV_θ(x))²从而扩大稳定区域的估计。实战经验训练技巧与调参联合训练是一个复杂的平衡过程。控制网络和李雅普诺夫网络会相互影响。我的经验是预热训练先固定一个简单的控制器如 LQR单独训练李雅普诺夫网络得到一个较好的初始 V_θ。然后再放开控制器进行联合训练。交替训练不是同时更新两个网络而是进行交替优化固定控制器更新李雅普诺夫函数几步再固定李雅普诺夫函数更新控制器几步。这有助于训练稳定。学习率策略通常李雅普诺夫网络需要更小的学习率因为它要学习一个满足严格不等式条件的“证书”控制器网络可以相对大一些以快速优化性能。监控指标不要只看损失函数下降。一定要在独立的验证集甚至是通过仿真随机采样的新状态上监控李雅普诺夫条件的满足率即 V(x_{k1}) V(x_k) 的比例以及控制性能如累计成本。4. 可达性分析的三类方法原理、实现与取舍学习了一个带有“稳定性证书”的控制器后我们还需要用可达性分析来验证其安全边界。根据系统复杂度和对保证强度的要求主要有三类方法。4.1 基于集合传播的技术这类方法适用于动态模型已知且相对简单的系统如线性、分段仿射系统。核心思想是用一个简单的几何形状模板如多面体、椭球、zonotope带形集合来表征状态集合并推导出这个形状在系统动态映射下的传播公式。例如对于线性系统 x_{k1} Ax_k如果初始状态在一个椭球 E₀ {x | xᵀP₀x ≤ 1} 内那么一步后的状态也在一个椭球 E₁ {x | xᵀAᵀP₀A x ≤ 1} 内。通过迭代计算可以得到一系列过近似集合 {E₀, E₁, ..., E_N}。挑战与解决方案包裹效应在多次迭代后过近似误差会累积导致集合被过分放大。缓解方法包括使用更紧的凸松弛、在每一步对集合进行“重化简”用一个新的、更紧凑的模板形状来包裹传播后的形状或者将初始集合分割成更小的子集分别进行传播。非线性动态对于非线性系统 f(x)需要利用其泰勒展开或 Lipschitz 常数等性质得到线性或仿射的微分包含从而进行保守的集合传播。例如利用雅可比矩阵的区间界。工具推荐对于学术研究和原型验证MATLAB 的 CORA 工具箱和 Python 的 JuliaReach通过 Julia 调用是功能强大的集合运算库。对于工业级应用可能需要基于 C 开发定制的高性能实现。4.2 哈密顿-雅可比可达性分析HJ 可达性被认为是可达性分析的“黄金标准”因为它能处理非线性动态和对抗性扰动并提供最精确的可达集边界即水平集。它将可达性问题转化为求解一个 Hamilton-Jacobi-Isaacs 偏微分方程HJI-PDE。该 PDE 的解 V(x, t) 的零水平集就精确表示了 t 时刻的可达集边界。其强大之处在于它本质上是在求解一个最优控制问题或微分博弈问题找到了从初始点出发“最坏情况”下所能到达的边界。其致命弱点在于维数灾难。求解 PDE 的计算复杂度随状态空间维度指数增长通常只能处理维度 ≤ 6 的问题。这对于机器人≥12维或自动驾驶≥10维等问题直接应用是不现实的。前沿进展为了突破维数限制当前研究集中在神经网络近似用深度神经网络来近似 HJI-PDE 的解函数 V(x, t)。通过将 PDE 残差作为损失函数进行训练可以处理更高维的问题但牺牲了严格的数学保证变为概率保证或经验性能。分解方法将高维系统分解为多个耦合较弱的低维子系统分别进行 HJ 分析再通过某种方式组合结果。这适用于具有特定结构如车-车交互的系统。4.3 基于优化与采样的可扩展方法对于高维、黑箱或学习得到的系统前两种方法可能都不适用。此时基于优化和采样的方法提供了可扩展的替代方案。4.3.1 混合整数线性规划验证MILP 的核心思想是将神经网络控制器和分段仿射系统动态的验证问题精确地编码为一个混合整数线性规划问题。以验证一个 ReLU 神经网络控制器 ϕ(x) 的最大输出为例ReLU 的 MILP 编码一个 ReLU 单元 y max(0, wᵀx b) 可以通过引入一个二元变量 β 和一个大 M 常数用一组线性不等式等价表示y ≤ wᵀx b M(1-β)y ≥ wᵀx by ≤ Mβy ≥ 0β ∈ {0, 1} 当 β1 时强制 y wᵀx b 且 y ≥ 0当 β0 时强制 y0 且 wᵀx b ≤ 0。构造验证问题将整个网络和系统约束如状态输入范围 X 是一个多面体用上述方式编码后验证问题“是否存在一个 x ∈ X使得某个安全条件被违反”就可以转化为一个 MILP 的可行性问题。如果想找最坏情况可以转化为优化问题如最大化某个不安全指标。求解与保证使用成熟的 MILP 求解器如 Gurobi, CPLEX进行求解。如果问题不可行则安全性质得证如果可行求解器会给出一个反例即一个违反安全性的具体状态 x*。MILP 方法的优势与局限优势提供严格的、数学上的保证在建模精确的前提下。它能处理复杂的神经网络和分段线性动态。局限计算复杂度高。整数变量的数量随网络神经元数量线性增长对于大型网络求解可能非常耗时。它主要适用于分段仿射系统和ReLU网络。对于光滑非线性动态需要先进行分段线性近似这会引入近似误差。4.3.2 基于采样的概率验证当系统维度太高或者我们愿意接受概率性的安全保证时采样方法非常有效。其思路简单直接从初始状态集合 X₀ 中按照某种分布如均匀分布采样大量点 {x₀¹, x₀², ...}。对每个采样点进行前向仿真得到其对应的轨迹末端状态 {x_N¹, x_N², ...}。用这些末端状态点来构造一个对真实可达集 X_N 的估计 Ĉ_N例如计算这些点的凸包再向外膨胀一个边界 ϵ。基于统计学习理论如 Probably Approximately Correct, PAC我们可以说以高概率1-δ真实的可达集 X_N 被包含在估计集 Ĉ_N 中。如果 Ĉ_N 与不安全集不相交则以高概率保证系统安全。关键参数与设计选择采样分布均匀采样简单但可能效率低。自适应采样如主动学习可以在可能违反安全的边界区域采集更多样本。集合估计器凸包、区间盒、基于支持向量机的分类边界、水平集函数如另一个神经网络等。选择取决于可达集的预期形状。边界 ϵ反映了估计的保守程度。ϵ 越大保证越强但保守性也越高。样本数 N根据所需的置信度 δ 和精度 ϵ可以通过理论公式估算所需的最小样本数。经验之谈如何选择方法在实际项目中我通常会采用一个分层验证策略快速筛查采样法首先用大量采样进行快速仿真。如果成千上万的随机仿真中都没有出现安全违规那么系统很可能以高概率是安全的。这能快速建立信心。局部精炼优化法如果采样法发现了一些“接近违规”的边界案例或者需要对特定高风险区域进行严格保证就在该区域使用 MILP 或其他优化方法进行精确验证。低维核心分析HJ 法对于整个系统的关键低维子系统如质心动力学使用 HJ 可达性进行精确分析以获得最坚实的理论保证。 没有一种方法能通吃所有场景组合使用才是工程实践中的王道。5. 工程实践中的挑战与解决方案将上述理论应用到实际系统中会遇到许多在论文中鲜少提及的挑战。这里分享几个我踩过的“坑”以及应对策略。5.1 缩放与数值问题李雅普诺夫函数 V(x) 的值可能跨越多个数量级尤其是在状态远离平衡点时。直接使用均方误差损失可能导致训练被大数值区域主导而平衡点附近的关键行为学不好。解决方案在损失函数中对 V(x) 的变化率进行归一化或使用对数尺度。例如最小化(V(x_{k1}) - V(x_k)) / (|V(x_k)| δ)其中 δ 是一个小常数防止除零。同时对状态输入 x 进行标准化如减去均值、除以标准差也是标准操作。5.2 验证结果的解释与置信度基于采样的验证给出的是概率保证例如“有 95% 的置信度系统失败的概率低于 10^-4”。这个“10^-4”是失效概率的上界估计并非精确值。客户或系统架构师可能不理解这一点他们想要的是“绝对安全”。解决方案清晰的沟通至关重要。需要解释“概率保证”的含义并将其与行业安全标准如 ISO 26262 中的 ASIL 等级联系起来。同时结合形式化方法对于由采样验证找出的关键路径或组件尝试用 MILP 等严格方法进行小范围的、补充性的形式化验证以增强整体论据的说服力。5.3 在线部署与计算实时性学习到的神经李雅普诺夫函数和基于优化的验证器如 MILP计算成本可能很高难以满足控制循环的实时性要求通常是毫秒级。解决方案控制器简化使用“蒸馏”技术用一个更小、更快的网络或甚至一个查找表来近似学习到的复杂控制器和证书函数。在离线阶段用大网络生成大量状态控制律数据对然后训练一个小网络来拟合它。离线预计算对于可达性分析可以离线计算出一个安全不变集或安全控制律的查找表。在线运行时只需进行简单的集合包含检查或查表操作。HJ 可达性就常被用于离线计算“备份控制器”的安全域。触发式验证不是每个控制周期都进行完整的验证。可以设计一个“监视器”当系统状态接近安全边界时再触发耗时的精确验证或启用更保守的备用控制器。5.4 模型失配与分布外泛化我们学习或验证所基于的模型与真实物理系统之间必然存在差距。在模型“盲区”中所有的保证都可能失效。解决方案不确定性量化在学习和验证过程中显式地考虑模型不确定性。例如使用贝叶斯神经网络来得到预测的不确定性区间或者在可达性分析中使用不确定性的区间模型。鲁棒性训练在训练神经李雅普诺夫函数或控制器时向数据中注入噪声或对抗性扰动以提高其在模型误差下的鲁棒性。在线自适应与安全层部署一个轻量级的“安全过滤器”。这个过滤器不改变学习控制器的主要性能但会实时监控状态并在预测到可能违反安全约束时施加一个最小的修正干预如通过控制屏障函数 CBFs将系统拉回安全区域。6. 未来展望开放问题与实用建议这个领域仍在快速发展结合我个人的观察以下几个方向既有挑战也充满机遇可解释性与可信赖性神经网络的内部表示仍然是个黑箱。我们如何解释一个神经李雅普诺夫函数为什么在某个区域值很小如何让安全审核人员信任一个由采样和优化混合验证的结果发展可视化工具和可解释的证书形式是一个重要方向。统一框架目前学习、验证和控制常常是分离的模块。未来的趋势是开发端到端可微的安全学习框架将安全验证的约束如可达集不交也作为损失项加入到训练中让模型从一开始就在安全的“车道”内学习。从验证到修复当验证工具发现一个潜在的安全漏洞时下一步不应只是报警而是能自动提出修复建议。例如反例引导的抽象精化循环用 MILP 找到一个反例将其加入训练数据重新训练控制器再次验证直到通过。对从业者的建议从简单系统开始不要一开始就在高维人形机器人上尝试。从一个 2D 倒立摆或小车系统开始完整走通数据收集、网络训练、稳定性验证和简单可达性分析的流程。这会帮你建立对问题难度和工具链的直觉。充分利用开源库不要重复造轮子。NeuroMANCER、OSQP于二次规划安全过滤器、CORA、Drake 等开源工具包提供了优秀的起点。仿真仿真再仿真在将任何学习控制器部署到实体系统之前进行海量的、包含各种扰动和噪声的仿真测试。仿真是最廉价、最快速的“第一道”验证关卡。物理信息机器学习与安全验证的结合正在为自主系统打开一扇新的大门既拥有数据驱动的适应能力又具备模型驱动的可靠保证。这条路依然漫长但每一步进展都让我们离更智能、更安全的机器更近一步。希望这些从理论到实战的分享能为你在这条道路上的探索提供一些切实的参考。