Safe Model-based Reinforcement Learning with Stability Guarantees
Felix Berkenkamp, Matteo Turchetta, Angela P. Schoellig, Andreas Krause
stat.ML, cs.AI, cs.LG, eess.SY
2017-05-24
从局部稳定策略出发,用 GP 动力学与 Lyapunov 下降证书在吸引域内采数并扩安全集;倒立摆仿真 50 个点全程不倒下。
强化学习在 Atari 上能刷到很高的分数,搬到倒立摆、无人机这类真系统上就不行。探索动作可能把硬件弄坏,中间策略也没有安全保证。NIPS 2017 这篇把「安全」定义成控制论里的渐近稳定性:系统必须能从当前状态收回去,并最终回到目标平衡点。能收回去的那块状态空间叫吸引域(region of attraction)。它由动力学和当前策略共同决定,事先并不知道边界在哪。
当时常见的安全 RL,要么只保证期望意义下的约束满足,要么要求任务能反复复位,要么先手准备一条全局备份策略。这篇要的是高概率、可逐步扩张的稳定性证书:从一条只在原点附近稳住的初始策略出发,边采数边改策略,估计吸引域只许变大,探索动作不许把系统带出当前吸引域。
动力学拆成已知先验模型 h 加未知误差 g。先验可以是线性化再离散化的物理模型;误差用统计模型拟合,实践里是高斯过程(GP)。GP 是函数上的贝叶斯先验,每点给出均值和方差,用来给未知动力学建置信区间。模型与策略都要求 Lipschitz 连续:输入变化一点,输出变化不超过固定倍数。神经网络只要 Lipschitz 常数可控就能进这个策略类。
安全检查靠 Lyapunov 函数 v,一种能量式标量:原点为 0,别处为正。走一步之后 v 必须严格下降,状态才会滑向原点。动力学有后验不确定,所以给 v(f(x,u)) 建置信区间,用上界 un 代替真实的下一步 v。连续域没法逐点验证,于是把状态空间切成网格,在网格上检查更严的下降条件,再用 Lipschitz 把结论推回连续域。这是 Theorem 2。
策略更新要在「网格上每个状态都满足下降」的约束下,挑选能撑起最大 Lyapunov 水平集的那条策略。理想算法把这件事写成约束优化。Theorem 3 保证:估计吸引域永远是真吸引域的内近似,概率至少 1-δ。
采数只允许发生在当前吸引域里,并且一步之后还回得去,这个集合记作 Sn。理论分析每次挑置信区间最宽的点。若未知误差的 RKHS 范数有界、测量噪声次高斯,采够有限步之后,安全集合能追上一个知道真下降量(精度 ε)的 oracle,同时不会把不安全点标成安全。这是 Theorem 4。探索策略一旦走到吸引域边界,就切回当前已证明安全的策略 πn 当备份。
落地算法叫 SafeLyapunovLearning。它不再求解「最大吸引域」那个理想优化,改成先用近似动态规划更新策略,再给固定策略算吸引域。目标是均值动力学上的折扣代价,加上 Lyapunov 下降约束的拉格朗日项,实验里 λ=1。代价处处非负时,价值函数本身就是 Lyapunov 候选,所以 v 直接取 J。如果优化把吸引域弄小了,退回上一条已证明安全的策略。安全保证还在,探索完备性没了。
实验只有仿真倒立摆。真实连续时间动力学带摩擦和正确质量;GP 均值模型用了偏小的质量、忽略摩擦,再线性化、离散化。控制力矩有上限,角度大到一定程度必然倒下。核是线性加 Matérn,用来吸收参数误差和积分误差。
策略网络两层、每层 32 个 ReLU,Lipschitz 常数按 Szegedy 等人的方法做保守估计。代价是二次型 xᵀQx + uᵀRu。价值函数用状态空间的分片线性三角剖分来近似,方便用图搜索检查 Lyapunov 假设。
理论 GP 置信区间太保守,实验把 βn 钉在 2,只保证每个状态各自高概率下降,不是全空间联合。Lyapunov 函数也改用局部 Lipschitz 常数。作者说这不影响保证,但联合高概率证书已经对不上 Theorem 2 的原文条件。
一维示意系统上,15 个数据点之后开始扩域,30 次评估收敛到该 Lyapunov 函数下能证的最大安全集。倒立摆上,初始策略是先验均值动力学的近似最优策略,只在原点附近一小块稳住。50 个数据点之后,估计吸引域明显变大,并且仍被包在优化后策略的真吸引域里面。图 2(b) 的角度轨迹显示,学完的策略比初始策略收敛更快、偏角更小。全程没有倒下。
论文没有给出与 CPO、SafeMDP 或可达性方法的定量对照,也没有报告代价数值或吸引域面积。能写进表的只有实验设定。
| 项目 | 设定或结果 |
| 倒立摆采样 | 50 点,从未倒下 |
| 一维示意 | 15 点后扩域,30 次评估收敛 |
| 策略网络 | 两层 × 32 ReLU |
| GP 缩放 βn | 实验取 2,理论公式更保守 |
这是把 Lyapunov 稳定性验证从「固定策略」推进到「边学边改策略」的早期完整框架。对做低维连续控制的人,它把安全从「约束满足的期望」换成「吸引域内高概率不逃逸」,并且给出可检验的证书。
能用的前提很窄:要有局部稳定的初始策略、一个说得过去的先验模型、状态全可观、维数低到网格验证跑得动。缺任何一条,证书发不出来。对今天做大模型 agent 安全的人,这篇的直接可用性接近零。它的位置是后续 Lyapunov、GP、可达性安全 RL 工作的起点,不是能搬上真车的系统。实验停在倒立摆仿真。
作者写得很清楚:在离散网格上验证吸引域会撞维数灾难;策略不必实时更新,但要上更高维必须改成自适应离散化。理想算法的探索完备性在实用版里被主动丢掉。动力学是确定性的,模型和策略都要 Lipschitz。
实验把 βn 改成 2、改用局部 Lipschitz,联合高概率声明已经松掉。倒立摆没有基线对照表,「性能大幅改善」只靠一条轨迹图,没有代价数字,也没有估计吸引域相对真吸引域的体积比。初始安全策略从错误先验的 ADP 得来,先验有多错、初始吸引域有多小,文中只有定性描述。
没有真机。倒立摆在力矩饱和后必然倒下,算法从未走到那条边界之外,所以「从不倒下」在这个任务上几乎就是安全约束本身,说服力有限。