正交Procrustes对齐要不要允许镜像:零误差答案,也可能翻转了方向

28分钟前 3阅读

两个模型的向量坐标系不同,或者两组对应点只差整体方向时,可以寻找一个正交矩阵把它们对齐。正交变换保持长度和内积,却既包含旋转,也包含镜像反射。如果任务只允许物体转动,直接接受一个零误差的正交解,可能已经越过了允许的动作范围。

正交Procrustes对齐要不要允许镜像:零误差答案,也可能翻转了方向

AI生成的概念示意图,以转环与镜面区分旋转和反射;不是实际三维产品、测量装置或正文坐标的准确绘图。

先固定矩阵朝向,避免公式转置一遍

本文每行是一条向量,要求最小化平方误差||AR−B||F²,约束RᵀR=I。这里F表示把所有元素平方相加再开方的Frobenius范数。原点固定,不允许平移,也不允许整体缩放。

取A为对角矩阵diag(2,1),B=diag(2,−1)。两行向量分别从(2,0)、(0,1)变为(2,0)、(0,−1)。矩阵R=diag(1,−1)直接满足AR=B,误差为零,同时RᵀR=I。但det(R)=−1,所以它是反射,不是二维中的纯旋转。

如果只凭误差为零就验收,便无法发现这一点。允许反射的正交Procrustes和要求det(R)=+1的旋转对齐,是两个不同优化问题;后者通常也被称为特殊正交约束。接口名称里出现“orthogonal”时,不应自动理解为“只会旋转”。

只允许旋转时,最低误差为什么变成四

二维旋转可写成Rθ的两行(cosθ,−sinθ)、(sinθ,cosθ)。代入本例,ARθ的两行为(2cosθ,−2sinθ)、(sinθ,cosθ)。与B逐元素比较,平方误差为4(cosθ−1)²+4sin²θ+sin²θ+(cosθ+1)²。

整理后得到10−6cosθ,最低值在cosθ=1时达到4,也就是选择R=I,根本不旋转。第一行完整匹配,第二行留下从1到−1的差2,平方为4。零误差的反射答案无法被某个“转得更巧”的二维旋转代替。

这个小例还说明平方误差与范数不可混报。最小平方误差是4,对应Frobenius范数是2。不同库返回残差、残差平方或别的标量时,必须查明含义,而不是看到2和4就断定实现不一致。

SVD修正为什么放在最小奇异值方向

令C=AᵀB,做奇异值分解C=UΣVᵀ。在本文右乘约定下,允许反射的最优解为R=UVᵀ。如果文献使用列向量、左乘映射,公式外观可能转置;应该回到目标AR−B验证,而不是照抄字母顺序。

本例C=diag(4,−1),奇异值为4与1。为强制det(R)=+1,可以使用R=UDVᵀ,其中D除最后一个对角元素外均为1,最后一项取det(UVᵀ),且奇异值按从大到小排列。若原解是反射,这相当于翻转最小奇异值所对应方向。

原因是目标可写成||A||F²+||B||F²−2tr(RᵀC),约束修正应尽量少损失迹。本例牺牲奇异值1的方向,会使平方误差增加4×1=4;若反而牺牲奇异值4方向,代价会更大。直接把R任意一列乘−1虽然能改变行列式,却不保证仍是最优旋转。

返回值叫scale,也未必是缩放因子

SciPy的orthogonal_procrustes返回R和scale,其中scale是AᵀB的奇异值之和。本例为4+1=5。这个函数本身不拟合平移或尺度,因此不应再把AR乘5来“完成对齐”。名称相似的高层Procrustes分析可能包含中心化和标准化,不能把两套接口当作可互换实现。

如果任务允许平移,通常需要先按约定处理均值,再恢复相应平移量;如果允许尺度,也必须使用对应的目标与解法。对于跨模型表征对齐,维度中心化是否合理还取决于表征含义,不能因为几何点云常这样做,就默认所有嵌入都应一样处理。

退化输入与验证方法

当A的两行为(1,0)、(2,0),且B=A时,未观测到第二个方向。R=diag(1,1)与diag(1,−1)都能获得零误差。数据不足以决定那个轴的朝向,求解器返回其中一个,不意味着找到了唯一的物理或语义解释。

让AI写检查器时,分别验证RᵀR≈I、det(R)的允许符号、实际残差,以及已知例子的理论最优值。再用另一条穷举角度路线逼近二维旋转最优值,作为与SVD独立的参考。只能检查正交性会漏掉方向错误,只能检查残差会漏掉镜像限制。

实际应用还需要确认行对应关系正确。正交对齐不会自动解决“第七行究竟是哪一个对象”的匹配问题,也不会修复非线性变形。把对象对应、允许变换、退化维度和残差定义一起写清楚,才能判断一个漂亮的对齐结果是否回答了原任务。

资料核对日期:2026年10月3日。数值均为原创教学设定,使用本地独立程序复算;未进行真实模型训练或生产性能测试。

参考资料

SciPy官方:orthogonal_procrustes

NIST:A Purely Algebraic Justification of the Kabsch-Umeyama Algorithm


文章版权声明:除非注明,否则均为云鹊BLOG原创文章,转载或复制请以超链接形式并注明出处。