凸松弛

SLAM 中大多数核心估计问题 —— 位姿图优化、旋转平均、点云配准 —— 都是非凸的:旋转约束 RSO(3)R \in SO(3) 刻画出一个弯曲的、非凸的可行集,其上的二次目标函数存在多个局部极小值。迭代求解器(高斯-牛顿法、Levenberg-Marquardt 法)只能收敛到最近的极小值,因此在初始化不佳的情况下,它们可能会悄无声息地返回一个错误的答案。**凸松弛(Convex relaxation)**通过将这个困难的问题替换为一个可以求解到全局最优的凸问题来解决这一困境 —— 并且在有利的条件下,能够可证明地恢复原问题的全局最优解,并附带一个证书(certificate)。

核心思想

给定一个非凸问题 minxCf(x)\min_{\mathbf{x} \in \mathcal{C}} f(\mathbf{x}),构造一个凸问题,使其可行集包含 C\mathcal{C}(且其目标函数是 ff 的下界)。由于松弛后的可行集更大,松弛问题的最优值 prelaxp^{\ast}_{\text{relax}} 是真实最优值 pp^{\ast}下界。这会带来两种结果:

Shor 对 QCQP 的 SDP 松弛

这是最基础的构造方法。许多几何问题都可以写成**二次约束二次规划(QCQP)**的形式:

minx xTQxs.t.xTAkx=bk\min_{\mathbf{x}} \ \mathbf{x}^T Q\, \mathbf{x} \qquad \text{s.t.} \quad \mathbf{x}^T A_k\, \mathbf{x} = b_k

(例如,旋转矩阵的正交性约束 RTR=IR^T R = I 以及四元数的单位范数约束都是二次的)。引入提升变量 X=xxTX = \mathbf{x}\, \mathbf{x}^T。则 xTQx=tr(QX)\mathbf{x}^T Q \mathbf{x} = \mathrm{tr}(Q X),问题就变成了关于 XX线性问题:

minX tr(QX)s.t.tr(AkX)=bk,X0,rank(X)=1\min_{X} \ \mathrm{tr}(Q X) \qquad \text{s.t.} \quad \mathrm{tr}(A_k X) = b_k, \quad X \succeq 0, \quad \mathrm{rank}(X) = 1

除了秩为 1 的约束之外,其余全部都是凸的。去掉这个秩约束后得到一个半定规划(SDP)——凸问题,可在多项式时间内求解。如果 SDP 的最优解 XX^{\ast} 恰好秩为 1,将其分解为 X=xxTX^{\ast} = \mathbf{x}^{\ast} \mathbf{x}^{\ast T},你就得到了原始 QCQP 问题的、经证书验证的全局最优解。

证书与对偶性

凸对偶性提供了一个实用的工具:任何对偶可行点都给出最优值的一个下界,而如果某个候选解的代价恰好与该下界相等,则该解被证书验证为全局最优(zero duality gap)。这催生了一种被*可证明正确(certifiably correct)*的 SLAM 算法所采用的、成本低廉的两步模式:先用快速的局部方法求解非凸问题,再通过检验一个对偶证书(例如某个证书矩阵是否半正定)来验证结果 —— 只要验证成功,就能以局部求解器的速度获得全局最优性保证。

在 SLAM 中出现的场景

一种相近的技术,渐进非凸化(graduated non-convexity,GNC),通过不同的机制追求同样的目标(逃离局部极小值、对外点具有鲁棒性):它从一个鲁棒代价函数的凸替代形式出发,逐步将其变形回非凸的原始形式,并沿途跟踪解的变化。它本身不提供证书,但可以很自然地与上述证书验证方法配合使用。

对SLAM的意义

SLAM 后端被安全关键系统所信赖,但局部优化并不能保证返回的地图哪怕接近最优 —— 一次糟糕的初始化,或一次错误的外点回环检测,就可能把求解器锁死在一条严重弯曲的轨迹上。凸松弛是*可证明 SLAM(certifiable SLAM)*的理论基石:它解释了全局最优何时以及为何可以达成(噪声适中、松弛是紧的),提供了低成本验证解的工具,并支撑起了那些完全不需要初始猜测就能成功的鲁棒全局求解器(SE-Sync、TEASER++)——这是高斯-牛顿法从根本上做不到的事。

相关条目