M-Estimator

通常の最小二乗法(OLS)はガウス雑音の下では統計的に最適であるが、外れ値の下では致命的に脆い。二乗損失は無限に増大するため、単一の重大な外れ値が推定値を任意に大きく引っ張ってしまう。M推定量(M-estimators、最大似度型推定量)は、二乗損失を大きな残差に対してより緩やかに増大するロバストカーネル ρ\rho に置き換えることでこれを解決する。

minθiρ ⁣(ri(θ)σ)\min_{\theta} \sum_i \rho\!\left(\frac{r_i(\theta)}{\sigma}\right)

ここで rir_iii 番目の残差(例えば再投影誤差)、σ\sigma は残差をノイズの単位に正規化するスケールパラメータである。

一般的なロバストカーネル

ρ(r)={r2/2rkkrk2/2r>k\rho(r) = \begin{cases} r^2/2 & |r| \leq k \\ k|r| - k^2/2 & |r| > k \end{cases}

凸で安全、穏やかである——不明な場合のデフォルトの選択肢。

導関数 ψ(r)=ρ(r)\psi(r) = \rho'(r) は**影響関数(influence function)**と呼ばれ、残差 rr にあるデータが推定値をどれだけ引っ張るかを測る。最小二乗法では ψ(r)=r\psi(r) = r(無制限の影響)であり、Huberでは ±k\pm k で切り捨てられ、Tukeyではゼロへと再下降する。

IRLSによる求解

ロバストコストの勾度をゼロとすると iψ(ri)ri/θ=0\sum_i \psi(r_i)\,\partial r_i/\partial\theta = 0 が得られる。重み wi=ψ(ri)/riw_i = \psi(r_i)/r_i を定義すると、これは重み付き最小二乗問題の条件となり、**反復重み付き最小二乗法(Iteratively Reweighted Least Squares、IRLS)**が示唆される。

  1. 現在の推定値で残差 rir_i を計算する。
  2. 重み wi=ρ(ri)/riw_i = \rho'(r_i)/r_i を計算する(小さな残差→重みは1に近い、大きな残差→重みは0に近い)。
  3. 重み付き最小二乗問題 minθiwiri(θ)2\min_\theta \sum_i w_i\, r_i(\theta)^2 を解く(Gauss-Newton/LMの1ステップ)。
  4. 収束するまで繰り返す。

実際には、これはGauss-NewtonLevenberg-Marquardtのループにシームレスに統合される。ロバストカーネルは各残差ブロックのヤコビ行列と誤差をスケール変更するだけである。Ceresはこれらを LossFunction と呼び、g2oは RobustKernel と呼ぶ。

スケール σ\sigma はカーネルと同じくらい重要である——何を「大きい」とみなすかを定義する。標準的なロバスト推定は絶対偏差の中央値(median absolute deviation)から導出される。σ^=1.4826medianirimedian(r)\hat{\sigma} = 1.4826 \cdot \mathrm{median}_i\,|r_i - \mathrm{median}(r)| であり、この定数はガウス標準偏差と一致するように選ばれている。

M推定量対RANSAC

両者は相補的であり、実際のパイプラインは両方を使う。

標準的な手順は、まずRANSACで粗いモデルと内点集合を見つけ、その後、内点に対してロバストな非線形精緻化(Huber/Cauchy)を行い、残りの不一致を吸収するというものである。

SLAMにおける意義

SLAMにおけるすべての残差は時折誤っている。マッチングの誤り、動く物体、誤ったループクロージングなどである。これらのほんの一握りでも純粋な最小二乗のバンドル調整に投入すると、軌跡全体が破壊される。したがってロバストカーネルは至る所で使われている——ORB-SLAMは再投影誤差をHuberカーネルで包み、ポーズグラフバックエンドはループクロージングエッジをCauchyやswitchable-constraint formulationで包み、現代のグローバルにロバストな手法(graduated non-convexity)はredescending型のM推定量の上に直接構築されている。あるシステムがどのカーネルを、どのしきい値で使っているかを知ることは、フロントエンドが誤情報を伝えたその日に、そのシステムがどう振る舞うかを教えてくれる。

関連ノート