GTSAM 中的鲁棒噪声模型与 M-估计 (GTSAM Robust Noise Model and M-Estimator)

Title: GTSAM 中的鲁棒噪声模型与 M-估计 (GTSAM Robust Noise Model and M-Estimator)



关联博文

[1] 因子图、边缘化与消元算法的抽丝剥茧 —— Notes for “Factor Graphs for Robot Perception”

[2] 基于 GTSAM 的因子图简单实例

[3] GTSAM 中的鲁棒噪声模型与 M-估计 (GTSAM Robust Noise Model and M-Estimator) ⇐ \quad\Leftarrow\quad 本篇

[4] 贝叶斯树定义与构建的寻行数墨 —— Notes for “The Bayes Tree: An Algorithmic Foundation for Probabilistic Robot Mapping”

[5] 贝叶斯树增量式更新的细嚼慢咽 —— Notes for “The Bayes Tree: An Algorithmic Foundation for Probabilistic Robot Mapping”

[6] iSAM2 部分状态更新算法 (I-原理解读)

[7] iSAM2 部分状态更新算法 (II - 源码阅读 - GTSAM)


前言

查看 GTSAM 文档[1] (/gtsam/doc/robust.pdf) 过程中做了一些推导, 记录一下.

主要围绕对因子图优化计算中对离群点的抑制而展开.


I. 噪声模型

借用 gtsam4.2 中文档 /doc/html/a04892.html 对噪声模型因子的描述.

gtsam::NoiseModelFactor Class Reference

A nonlinear sum-of-squares factor with a zero-mean noise model implementing the density
P ( z ∣ x ) ∝ exp ⁡ ( − 0.5 ∣ z − h ( x ) ∣ C 2 ) P(z|x) \propto \exp(−0.5 |z−h(x)|^2_C) P(zx)exp(0.5∣zh(x)C2)
Templated on the parameter type X and the values structure Values.

There is no return type specified for h(x). Instead, we require the derived class implements
e r r o r _ v e c t o r ( x ) = h ( x ) − z ≈ A δ x − b error\_vector(x)= h(x)−z \approx A \delta x − b error_vector(x)=h(x)zAδxb
This allows a graph to have factors with measurements of mixed type.

The noise model is typically Gaussian, but robust and constrained error models are also supported.

由之前的博文 “因子图、边缘化与消元算法的抽丝剥茧” 中的定义, 构建因子图
Φ ( Θ ) = ∏ i ϕ i ( Θ i ) (I-1) \Phi(\Theta) = \prod_i \phi_i(\Theta_i) \tag{I-1} Φ(Θ)=iϕi(Θi)(I-1)
其中 Θ ≜ ( X , L ) \Theta \triangleq (X, L) Θ(X,L), Θ i ≜ N ( ϕ i ) \Theta_i \triangleq \mathcal{N}(\phi_i) ΘiN(ϕi), Θ i \Theta_i Θi 即为与因子 ϕ i \phi_i ϕi 有关的变量 (包括机器人状态变量与路标变量).

如果每个因子都具有高斯噪声/高斯分布,
ϕ i ( Θ i ) ∝ exp ⁡ ( − 1 2 ∥ h i ( Θ i ) − z i ∥ Σ i 2 ) (I-2) \phi_i(\Theta_i) \propto \exp\left(-\frac{1}{2} \| h_i(\Theta_i) - z_i\|_{\Sigma_i}^2 \right) \tag{I-2} ϕi(Θi)exp(21hi(Θi)ziΣi2)(I-2)
其中 h i ( ⋅ ) h_i(\cdot) hi() z i z_i zi 分别为测量函数和测量值, ∑ i \sum_i i 为测量值 z i z_i zi 的误差协方差矩阵.

那么, 可以对因子图求最大后验估计 (MAP, Maximum a Posteriori),
Θ ∗ = arg ⁡ max ⁡ Θ   Φ ( Θ ) = arg ⁡ max ⁡ Θ ( ∏ i ϕ i ( Θ i ) ) (I-3) \Theta^{\ast} =\underset{\Theta}{\arg\max} \,\Phi(\Theta) = \underset{\Theta}{\arg\max} \left(\prod_i \phi_i(\Theta_i)\right) \tag{I-3} Θ=ΘargmaxΦ(Θ)=Θargmax(iϕi(Θi))(I-3)
如果对式 (I-1) 两边先求 − log ⁡ -\log log 运算再求极小值可得[2], [3]
Θ ∗ = arg ⁡ min ⁡ Θ [ − log ⁡ Φ ( Θ ) ] = arg ⁡ min ⁡ Θ   1 2 ∑ i ∥ h i ( Θ i ) − z i ∥ Σ i 2 (I-4) \Theta^{\ast} = \underset{\Theta}{\arg\min}\left[-\log \Phi(\Theta)\right]= {\underset{\Theta}{\arg \min}} \, \frac{1}{2} \sum_i \| h_i(\Theta_i) - z_i \|_{\Sigma_i}^2 \tag{I-4} Θ=Θargmin[logΦ(Θ)]=Θargmin21ihi(Θi)ziΣi2(I-4)
这样就将高斯噪声模型描述下的因子图的最大后验推理等价转换非线性最小二乘问题.

噪声模型在整个因子图中的作用可由式 (I-2) 体现. 由 gtsam::NoiseModelFactor Class Reference 可知, 除了上述我们最熟悉的高斯噪声模型以外, 也支持鲁棒噪声模型 —— 本文的主角.


II. 鲁棒回归 —— M 估计

因为我们所谓的 “二乘” 是误差的平方, 一旦出现一个误差值远远偏离于正常误差, 在经过平方后, 该粗差对目标函数的影响巨大. 即存在离群值 (Outlier) 时,

最小二乘估计获得的结果可能远离真值, 则估计结果不可靠/不可信, 是离群值污染了正常的数据.

针对最小二乘法的这个问题, 逐渐发展出鲁棒回归 (Robust Regression), 其中最通用的方法是 M 估计 (M-Estimation)[4]. M 估计是基于最小二乘估计发展起来的一种抗差估计 (Robust Estimation) 方法.

本章节对 M 估计进行介绍[4]并简单推导, 再在下一章节中应用于因子图.


1. 线性回归

假设对如下线性模型进行 n n n 观测:
y i = β 0 + β 1 x i 1 + β 2 x i 2 + ⋯ + β k x i k + ε i ( i = 1 , 2 , ⋯   , n ) (II-1-1) y_i = \beta_0 + \beta_1 x_{i1} + \beta_2 x_{i2} + \cdots + \beta_k x_{ik} +\varepsilon_i \qquad(i=1,2,\cdots,n) \tag{II-1-1} yi=β0+β1xi1+β2xi2++βkxik+εi(i=1,2,,n)(II-1-1)
定义 b ≜ [ β 0 β 1 β 2 ⋯ β k ] T \mathbf{b}\triangleq \begin{bmatrix}\beta_0 & \beta_1 &\beta_2 &\cdots &\beta_k \end{bmatrix}^{\small\rm T} b[β0β1β2βk]T 为待估计参数 (或待估计变量), x i ′ ≜ [ 1 x i 1 x i 2 ⋯ x i k ] \mathbf{x}_i^{'} \triangleq \begin{bmatrix}1 & x_{i1} &x_{i2} &\cdots &x_{ik}\end{bmatrix} xi[1xi1xi2xik] 为扩展的数据向量. 则上式可以简写为
y i = x i ′ b + ε i (II-1-2) y_i = \mathbf{x}_i^{'} \mathbf{b} + \varepsilon_i \tag{II-1-2} yi=xib+εi(II-1-2)
对应的预测值为
y ^ i = x i ′ b (II-1-3) \hat{y}_i = \mathbf{x}_i^{'} \mathbf{b} \tag{II-1-3} y^i=xib(II-1-3)
残差/误差为
e i = y i − y ^ i = y i − x i ′ b (II-1-4) e_i = y_i - \hat{y}_i = y_i - \mathbf{x}_i^{'} \mathbf{b} \tag{II-1-4} ei=yiy^i=yixib(II-1-4)


2. 损失函数

在回归模型式 (II-1-1)下, 用来量化估计模型的预测值与真实值的不一致程度 (量化回归效率) 的工具称为损失函数, 记为 ρ ( e i ) \rho(e_i) ρ(ei).

最常用的损失函数是均方误差 (Mean Square Error, MSE), 也称为 L2 损失, 即
ρ L 2 ( e i ) = e i 2 (II-2-1) \rho_{L_2}(e_i) = e_i^2 \tag{II-2-1} ρL2(ei)=ei2(II-2-1)
L2 损失就是最小二乘法对应的损失函数. 根据本节前部的分析, L2 损失对离群值不鲁棒. 同时, 其最优特性依赖于高斯假设, 当遇见非高斯噪声时, 估计结果也变得不可靠[5].

第二种常用的损失函数为平局绝对误差 (Mean Absolute Error, MAE), 也称为 L1 损失, 即
ρ L 1 ( e i ) = ∣ e i ∣ (II-2-2) \rho_{L_1}(e_i) = | e_i | \tag{II-2-2} ρL1(ei)=ei(II-2-2)
因为 L1 面对离群点时误差不再是平方放大, 鲁棒性有了提高.

但 L1 在中心点不可导, 是缺陷之一.

另外, 在梯度下降算法中, MSE 能够快速准确地收敛, 而 MAE 收敛速度较慢.

也就是 MSE 和 MAE 各有优缺点, 那么自然希望能够构建取长补短的损失函数.

第三种常用的损失函数是 Huber 损失函数 (Huber Loss), 也称为平滑 L1 损失. 表达式为
ρ H ( e ) = { 1 2 e 2 , for    ∣ e ∣ ≤ k k ∣ e ∣ − 1 2 k 2 , for    ∣ e ∣ > k (II-2-3) \rho_{H}(e) =\left\{ \begin{array}{cl} \frac{1}{2} e^2, & & \text{for}\; |e| \le k\\ k|e|-\frac{1}{2}k^2, &&\text{for} \; |e|>k \end{array} \right. \tag{II-2-3} ρH(e)={21e2,ke21k2,forekfore>k(II-2-3)
其中 k k k 是一个非负参数, 用来控制损失函数的二次区域与线性区域的范围. 当残差大于 k k k 时采用 L1 损失, 残差小于等于 k k k 时采用 L2 损失.

Huber 损失函数结合了 L1 损失和 L2 损失的优点, 比起 L2 损失来它对离群值更鲁棒, 同时在中心点处可导[5].

当采用梯度下降类算法时, 迭代值进入 k k k 范围内后算法能够快速地收敛.

以上三类损失函数的图形如下所示.

loss_function
Fig. 1 三类损失函数与对应的权重函数

3. 加权最小二乘

我们先不区别具体的损失函数, 回到线性回归问题 (II-1-1).

一般情况下, 测量数据的组数 n n n 大于估计变量的维度 k + 1 k+1 k+1, 否则就成了欠定问题了.

要使这个回归估计获得最佳的参数估计 b ∗ \mathbf{b}^{\ast} b, 需要将其转换为如下优化问题
b ∗ = arg ⁡ min ⁡ b ∑ i = 1 n ρ ( e i ) = arg ⁡ min ⁡ b ∑ i = 1 n ρ ( y i − x i ′ b ) (II-3-1) \mathbf{b}^{\ast} = \underset{\mathbf{b}}{\arg\min} \sum_{i=1}^{n} \rho (e_i) = \underset{\mathbf{b}}{\arg\min} \sum_{i=1}^{n} \rho (y_i - \mathbf{x}_i^{'} \mathbf{b}) \tag{II-3-1} b=bargmini=1nρ(ei)=bargmini=1nρ(yixib)(II-3-1)
进一步, 求极小值转换为求函数驻点
0 = ∂ [ ∑ i = 1 n ρ ( y i − x i ′ b ) ] ∂ b = ∑ i = 1 n ∂ ρ ( e i ) ∂ e i ∂ ( y i − x i ′ b ) ∂ b = ∑ i = 1 n ∂ ρ ( e i ) ∂ e i   x i ′ (II-3-2) \begin{aligned} 0 &=\frac{\partial\left[\sum_{i=1}^{n} \rho (y_i - \mathbf{x}_i^{'} \mathbf{b})\right]}{\partial \mathbf{b}}\\ &= \sum_{i=1}^{n} \frac{\partial\rho (e_i)}{\partial e_i} \frac{\partial(y_i - \mathbf{x}_i^{'} \mathbf{b})}{\partial \mathbf{b}} \\&= \sum_{i=1}^{n} \frac{\partial\rho (e_i)}{\partial e_i} \ \mathbf{x}_i^{'} \\ \end{aligned} \tag{II-3-2} 0=b[i=1nρ(yixib)]=i=1neiρ(ei)b(yixib)=i=1neiρ(ei) xi(II-3-2)
定义影响曲线 (Influence Curve) 为 ψ = ρ ′ ≜ ∂ ρ ( e i ) ∂ e i \psi = \rho{'} \triangleq \frac{\partial \rho(e_i)}{\partial e_i} ψ=ρeiρ(ei).

定义权重函数 (Weight Function) 为 w ( e i ) ≜ ψ ( e i ) e i w(e_i) \triangleq \frac{\psi(e_i)}{e_i} w(ei)eiψ(ei). 三类损失函数对应的权重函数如 Fig. 1 所示.

式 (II-3-2) 可改写为
∑ i = 1 n w ( e i ) ‾   ( y i − x i ′ b ) ‾   x i ′ = 0 (II-3-3) \sum_{i=1}^{n} \underline{w(e_i)}\ \underline{(y_i - \mathbf{x}_i^{'} \mathbf{b})}\ \mathbf{x}_i^{'} = 0 \tag{II-3-3} i=1nw(ei) (yixib) xi=0(II-3-3)

在数值计算中, 将权重函数 w ( e i ) w(e_i) w(ei) 看做是由上一迭代点 e i [ k − 1 ] e_i^{[k-1]} ei[k1] 计算得到的标量权重值, 而不再视作参数 b \mathbf{b} b 的函数, 记为 w ~ i ≜ w ( e i [ k ] ) \tilde{w}_i \triangleq w (e_i^{[k]}) w~iw(ei[k]).

在上述数值假设下, 式 (II-3-3) 可以进一步写成
∑ i = 1 n w ~ i ( y i − x i ′ b ) x i ′ = 0 (II-3-4) \sum_{i=1}^{n} \tilde{w}_i (y_i-\mathbf{x}_i'\mathbf{b}) \mathbf{x}_i'=0 \tag{II-3-4} i=1nw~i(yixib)xi=0(II-3-4)
同时, 构造如下加权最小二乘问题
min ⁡ 1 2 ∑ i = 1 n w ~ i e i 2 = min ⁡ 1 2 ∑ i = 1 n w ~ i ( y i − x i ′ b ) 2 (II-3-5) \min \frac{1}{2} \sum_{i=1}^{n} \tilde{w}_i e_i^2 = \min \frac{1}{2} \sum_{i=1}^{n} \tilde{w}_i (y_i - \mathbf{x}_i^{'} \mathbf{b})^2 \tag{II-3-5} min21i=1nw~iei2=min21i=1nw~i(yixib)2(II-3-5)
同样求函数极值转变为求驻点
∑ i = 1 n w ~ i ( y i − x i ′ b ) ∂ ( y i − x i ′ b ) ∂ b = ∑ i = 1 n w ~ i ‾   ( y i − x i ′ b ) ‾   x i ′ = 0 (II-3-6) \sum_{i=1}^{n}\tilde{w}_i (y_i - \mathbf{x}_i^{'} \mathbf{b}) \frac{\partial (y_i - \mathbf{x}_i^{'} \mathbf{b})}{\partial \mathbf{b}} = \sum_{i=1}^{n}\underline{\tilde{w}_i}\ \underline{(y_i - \mathbf{x}_i^{'} \mathbf{b})}\ \mathbf{x}_i^{'} = 0\tag{II-3-6} i=1nw~i(yixib)b(yixib)=i=1nw~i (yixib) xi=0(II-3-6)
式 (II-3-4) 与式 (II-3-6) 的驻点完全一致, 那么回归问题式 (II-3-1) 与加权最小二乘问题 (II-3-5) 在局部点上等价.

那么由迭代计算式 (II-3-5) 极小值就能获得 (II-3-1) 的极小值. 而应用最小二乘法数值方法迭代求解加权最小二乘问题式 (II-3-5) 的计算方法称为迭代重加权最小二乘法 (Iteratively Reweighted Least Squares, IRLS).


III. 鲁棒噪声模型

1. 鲁棒目标函数

对鲁棒回归 (M 估计) 有了基本认识后, 我们再回到噪声模型, 这次需要结合鲁棒回归.

为了减少离群点对因子图最优化目标的影响, 引入鲁棒损失函数 (Robust Loss Function), 比如上文介绍的 Huber Loss.

那么因子图的最小二乘目标就不再适用了, 而变为
Θ ∗ = arg ⁡ min ⁡ Θ ∑ i ρ ( m i ) (III-1-1) \Theta^{\ast} = {\underset{\Theta}{\arg \min}} \sum_i \rho(m_i) \tag{III-1-1} Θ=Θargminiρ(mi)(III-1-1)
其中 m i m_i mi 为马氏距离 (Mahalanobis Distance)
m i ≜ [ h i ( Θ i ) − z i ] T Σ i − 1 [ h i ( Θ i ) − z i ] = ∥ h i ( Θ i ) − z i ∥ Σ i (III-1-2) m_i \triangleq \sqrt{\left[h_i(\Theta_i) - z_i\right]^{\small\rm T} \Sigma_i^{\small -1} \left[h_i(\Theta_i) - z_i\right]} = \| h_i(\Theta_i) - z_i \|_{\Sigma_i} \tag{III-1-2} mi[hi(Θi)zi]TΣi1[hi(Θi)zi] =hi(Θi)ziΣi(III-1-2)
对应于式 (II-1-4) 中的残差/误差. 式 (III-1-1) 也可以写成
Θ ∗ = arg ⁡ min ⁡ Θ ∑ i ρ ( ∥ h i ( Θ i ) − z i ∥ Σ i ) (III-1-3) \Theta^{\ast} = {\underset{\Theta}{\arg \min}} \sum_i \rho(\| h_i(\Theta_i) - z_i \|_{\Sigma_i}) \tag{III-1-3} Θ=Θargminiρ(hi(Θi)ziΣi)(III-1-3)


2. 非线性加权最小二乘

先对非线性测量误差进行线性化处理
h i ( Θ i ) − z i = h i ( Θ i [ k − 1 ] + Δ i ) − z i ≈ h i ( Θ i [ k − 1 ] ) + H i Δ i − z i = H i Δ i − d i (III-2-1) \begin{aligned} h_i(\Theta_i) - z_i &= h_i(\Theta_i^{[k-1]}+\Delta_i) - z_i \\ &\approx h_i(\Theta_i^{[k-1]}) + H_i\Delta_i - z_i\\ &= H_i\Delta_i - d_i \end{aligned} \tag{III-2-1} hi(Θi)zi=hi(Θi[k1]+Δi)zihi(Θi[k1])+HiΔizi=HiΔidi(III-2-1)
其中 H i ≜ ∂ h i ( Θ i ) ∂ Θ i ∣ Θ i [ k − 1 ] H_i \triangleq \left. \frac{\partial h_i (\Theta_i)}{\partial \Theta_i}\right|_{\Theta_i^{[k-1]}} HiΘihi(Θi) Θi[k1], d i = z i − h i ( Θ i [ k − 1 ] ) d_i = z_i - h_i(\Theta_i^{[k-1]}) di=zihi(Θi[k1]). 代入式 (III-1-2) 得到线性化后的马氏距离
m i ≈ ∥ H i Δ i − d i ∥ Σ i = ( H i Δ i − d i ) T Σ − 1 ( H i Δ i − d i ) (III-2-2) m_i \approx \| H_i\Delta_i - d_i \|_{\Sigma_i} =\sqrt{( H_i\Delta_i - d_i)^{\small \rm T} \Sigma^{\small -1} ( H_i\Delta_i - d_i)} \tag{III-2-2} miHiΔidiΣi=(HiΔidi)TΣ1(HiΔidi) (III-2-2)
则对应的平方马氏距离 (Squared Mahalanobis Distance) 为
m i 2 ≈ ∥ H i Δ i − d i ∥ Σ i 2 = ( H i Δ i − d i ) T Σ − 1 ( H i Δ i − d i ) (III-2-3) m_i^2 \approx \| H_i\Delta_i - d_i \|_{\Sigma_i}^2 ={( H_i\Delta_i - d_i)^{\small \rm T} \Sigma^{\small -1} ( H_i\Delta_i - d_i)} \tag{III-2-3} mi2HiΔidiΣi2=(HiΔidi)TΣ1(HiΔidi)(III-2-3)
线性化后的新变量为 Δ i \Delta_i Δi. 线性化后的优化目标式 (III-1-1) 就变为
Δ ∗ = arg ⁡ min ⁡ Δ ∑ i ρ ( m i ) (III-2-4) \Delta^{\ast} = {\underset{\Delta}{\arg \min}} \sum_i \rho(m_i) \tag{III-2-4} Δ=Δargminiρ(mi)(III-2-4)
参照上一章节线性回归的推导, 下面简单推导因子图目标函数对应的加权最小二乘目标函数式.

式 (III-2-4) 求极小值就是求对应目标函数的驻点
0 = ∂ [ ∑ i ρ ( m i ) ] ∂ Δ i = ∑ i ∂ ρ ( m i ) ∂ Δ i = ∑ i ∂ ρ ( m i ) ∂ m i ∂ m i ∂ m i 2 ∂ m i 2 ∂ ( H i Δ i − d i ) ∂ ( H i Δ i − d i ) ∂ Δ i = ∑ i ∂ ρ ( m i ) ∂ m i 1 2 m i ( H i Δ i − d i ) T ( 2 Σ i − 1 ) H i = ∑ i ρ ′ ( m i ) m i ( H i Δ i − d i ) T Σ i − 1 H i (III-2-5) \begin{aligned} \mathbf{0} &= \frac{\partial \left[ \sum_i \rho(m_i)\right]}{\partial \Delta_i} = \sum_i \frac{\partial \rho(m_i)}{\partial \Delta_i}\\ & = \sum_i \frac{\partial \rho(m_i)}{\partial m_i} \frac{\partial m_i}{\partial m_i^2} \frac{\partial m_i^2}{\partial (H_i \Delta_i-d_i)} \frac{\partial (H_i \Delta_i-d_i)}{\partial \Delta_i}\\ &= \sum_i \frac{\partial \rho(m_i)}{\partial m_i} \frac{1}{ 2m_i} (H_i \Delta_i-d_i)^{\small \rm T} ( 2\Sigma_i^{\small -1}) H_i \\ &= \sum_i \frac{ \rho'(m_i)}{ m_i} (H_i \Delta_i-d_i)^{\small \rm T} \Sigma_i^{\small -1} H_i \end{aligned} \tag{III-2-5} 0=Δi[iρ(mi)]=iΔiρ(mi)=imiρ(mi)mi2mi(HiΔidi)mi2Δi(HiΔidi)=imiρ(mi)2mi1(HiΔidi)T(2Σi1)Hi=imiρ(mi)(HiΔidi)TΣi1Hi(III-2-5)
其中 ρ ′ ( m i ) = ∂ ρ ( m i ) ∂ m i \rho'(m_i) =\frac{\partial \rho(m_i)}{\partial m_i} ρ(mi)=miρ(mi), 另外计算中用到 [Identity 8-b] Partial Derivative of a Quadratic Form (Numerator-Layout Notation).

构造等价的加权最小二乘问题
arg ⁡ min ⁡ Δ 1 2 ∑ i ρ ′ ( m i [ k − 1 ] ) m i [ k − 1 ] ∥ H i Δ i − d i ∥ Σ i 2 (III-2-6) {\underset{\Delta}{\arg \min}} \frac{1}{2} \sum_i \frac{\rho'(m_i^{[k-1]})}{m_i^{[k-1]}} \| H_i \Delta_i -d_i\|_{\Sigma_i}^2 \tag{III-2-6} Δargmin21imi[k1]ρ(mi[k1])HiΔidiΣi2(III-2-6)
其中 m i [ k − 1 ] m_i^{[k-1]} mi[k1] 是迭代计算中上一迭代步中已确定了 m i m_i mi 标量值.

求式 (III-2-6) 中目标函数的驻点
0 = 1 2 ∑ i ρ ′ ( m i [ k − 1 ] ) m i [ k − 1 ] ∂ ∥ H i Δ i − d i ∥ Σ i 2 ∂ Δ i = ∑ i ρ ′ ( m i [ k − 1 ] ) m i [ k − 1 ] ( H i Δ i − d i ) T Σ i − 1 H i (III-2-7) \begin{aligned} \mathbf{0} & = \frac{1}{2} \sum_i \frac{\rho'(m_i^{[k-1]})}{m_i^{[k-1]}} \frac{\partial \| H_i \Delta_i -d_i\|_{\Sigma_i}^2}{\partial \Delta_i}\\ &= \sum_i \frac{\rho'(m_i^{[k-1]})}{m_i^{[k-1]}} (H_i \Delta_i -d_i)^{\small\rm T} \Sigma_i^{\small -1} H_i \end{aligned}\tag{III-2-7} 0=21imi[k1]ρ(mi[k1])ΔiHiΔidiΣi2=imi[k1]ρ(mi[k1])(HiΔidi)TΣi1Hi(III-2-7)
比较式 (III-2-5) 和式 (III-2-7), 可知在 m i [ k − 1 ] m_i^{[k-1]} mi[k1] 时两者驻点一致, 就是式 (III-2-4) 和式 (III-2-6) 的最优目标在 m i [ k − 1 ] m_i^{[k-1]} mi[k1] 时等价 (一致).

我们每一步迭代计算式 (III-2-6) 的优化值, 就是在求线性化后的因子图目标函数的优化值, 作为原始非线性因子图目标函数 (III-1-1) 的优化值的增量更新.

也就是说, 我们为了防止离群点污染优化目标而引入鲁棒损失函数后, 一样有办法计算因子图的优化值.


3. 迭代重加权最小二乘法

基于上面的鲁棒噪声模型、加权最小二乘问题等推导, 我们就可以理解的针对因子图的迭代重加权最小二乘法.

算法: 针对非线性鲁棒噪声问题的非线性信赖域方法[1]

设置变量初始值 Θ \Theta Θ

while (迭代未收敛) do

  计算每一个因子误差的马氏距离 m i [ k − 1 ] = ∥ h i ( x i [ k − 1 ] ) − z i ∥ Σ i m_i^{[k-1]} = \| h_i(x_i^{[k-1]})-z_i\|_{\Sigma_i} mi[k1]=hi(xi[k1])ziΣi

  计算每一个因子的权重 w ~ i = ρ ′ ( m i [ k − 1 ] ) / m i [ k − 1 ] \tilde{w}_i = \rho'(m_i^{[k-1]})/m_i^{[k-1]} w~i=ρ(mi[k1])/mi[k1]

  构造加权最小二乘问题 1 2 ∑ i w ~ i ∥ h i ( Θ i ) − z i ∥ Σ i 2 \frac{1}{2} \sum_i \tilde{w}_i \|h_i(\Theta_i) - z_i\|_{\Sigma_i}^2 21iw~ihi(Θi)ziΣi2

  线性化最小二乘问题得到 1 2 ∑ i w ~ i ∥ H i Δ i − d i ∥ Σ i 2 \frac{1}{2} \sum_i \tilde{w}_i \|H_i \Delta_i - d_i\|_{\Sigma_i}^2 21iw~iHiΔidiΣi2

  解线性化最小二乘问题

  维持信赖域

  基于列文伯格-马夸尔特法或狗腿法更新 Θ \Theta Θ

end


V. 总结

本文介绍了因子图计算中的鲁棒噪声模型、鲁棒参数估计、M-估计、非线性加权最小二乘问题、迭代重加权最小二乘法等.

主要围绕因子图计算中的离群点抑制以获得不受污染的优化估计——这一关键目标进行叙述和推导.

(如有问题请指出, 谢谢!)


参考文献

[1] Fan Jiang, Yetong Zhang, “GTSAM Robust Noise Model”, https://github.com/borglab/gtsam/blob/develop/doc/robust.pdf, 2020.02

[2] Frank Dellaert, Michael Kaess, “Factor Graphs for Robot Perception”, Foundations and Trends in Robotics, Vol. 6, No. 1-2 (2017) 1–139

[3] Jing Dong, “GTSAM 4.0 Tutorial —— Theory, Programming, and Applications”, https://dongjing3309.github.io/files/gtsam-tutorial.pdf, 2016.11.19

[4] John Fox, Sanford Weisberg, “Robust Regression”, http://users.stat.umn.edu/~sandy/courses/8053/handouts/robust.pdf, 2013.10.08

[5] 俞搏天, “p-Huber 损失函数及其鲁棒性研究”, 应用数学进展, 9(12): 2283-2291, 2020


版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.youkuaiyun.com/woyaomaishu2/article/details/136308247
本文作者:wzf@robotics_notes


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值