可微性

要训练一个神经网络,你需要梯度从损失一直流回到参数。但经典SLAM中充满了会阻断梯度的操作:RANSAC进行离散的假设选择(argmax),特征点检测使用非极大值抑制和top-kk选择,而像光束法平差这样的优化求解器是迭代过程,而非闭式函数。可微性研究要问的是:我们如何让这些经典几何算法变得可微,从而使网络能够通过它们进行训练——优化的目标是最终的位姿或地图质量,而不是某个代理标签?

为何经典SLAM会阻断梯度

考虑标准的重定位流程:一个网络预测2D-3D对应关系,RANSAC采样最小集合,PnP求解每个假设,内点计数为它们打分,argmax选出获胜的假设。其中三个步骤是不可微的:

如果链条中的任何一环阻断了梯度,那么该环之前的所有部分都必须用代理损失(模仿真值深度、模仿手工标注的匹配)来训练,而这些代理损失可能与系统本应完成的目标并不一致。

主要技术

每种技术都对应一个标志性系统,便于你具体地研究它们:

收益:任务级训练

所有这些机制的意义在于任务级训练:不是教网络去模仿真值深度或手工标注的匹配,而是训练它使得在RANSAC/PnP/BA完成其工作之后,最终的相机位姿是准确的。训练目标和系统目标变成了同一件事。这种一致性正是为什么可微几何系统(从DSAC到ACE的重定位路线、DROID-SLAM)比像PoseNet那样朴素的端到端位姿回归泛化得更好——几何仍由一个精确的求解器强制保证;网络只学习那些真正能从学习中获益的部分。

第二个收益是自监督:有了可微的投影和求解器,通过已知相机位姿的重投影损失就可以完全取代3D真值——这正是DSAC++引入的技巧,也是ACE家族用于分钟级建图所依赖的方法。

常见陷阱

这一领域中的很多工程工作正是围绕着解决这些问题。

对SLAM的意义

可微性是Level 5两个半区之间的桥梁:它使得学习式前端能够与几何后端一起在闭环中训练,从而产生既保留经典优化的严谨性、又能学习其周围一切的混合系统。理解软选择、求解器展开和李群自动微分,能让你把从DSAC到DROID-SLAM的论文都读成同一个思想的变体。

相关条目