gtsam 4.1.1
gtsam
|
The mEstimator name space contains all robust error functions. More...
Classes | |
class | Base |
class | Cauchy |
Cauchy implements the "Cauchy" robust error model (Lee2013IROS). More... | |
class | DCS |
DCS implements the Dynamic Covariance Scaling robust error model from the paper Robust Map Optimization (Agarwal13icra). More... | |
class | Fair |
Fair implements the "Fair" robust error model (Zhang97ivc) More... | |
class | GemanMcClure |
GemanMcClure implements the "Geman-McClure" robust error model (Zhang97ivc). More... | |
class | Huber |
Huber implements the "Huber" robust error model (Zhang97ivc) More... | |
class | L2WithDeadZone |
L2WithDeadZone implements a standard L2 penalty, but with a dead zone of width 2*k, centered at the origin. More... | |
class | Null |
Null class should behave as Gaussian. More... | |
class | Tukey |
Tukey implements the "Tukey" robust error model (Zhang97ivc) More... | |
class | Welsch |
Welsch implements the "Welsch" robust error model (Zhang97ivc) More... | |
The mEstimator name space contains all robust error functions.
It mirrors the exposition at https://members.loria.fr/MOBerger/Enseignement/Master2/Documents/ZhangIVC-97-01.pdf which talks about minimizing \sum \rho(r_i), where \rho is a loss function of choice.
To illustrate, let's consider the least-squares (L2), L1, and Huber estimators as examples:
Name Symbol Least-Squares L1-norm Huber Loss \rho(x) 0.5*x^2 |x| 0.5*x^2 if |x|<k, 0.5*k^2 + k|x-k| otherwise Derivative \phi(x) x sgn(x) x if |x|<k, k sgn(x) otherwise Weight w(x)=\phi(x)/x 1 1/|x| 1 if |x|<k, k/|x| otherwise
With these definitions, D(\rho(x), p) = \phi(x) D(x,p) = w(x) x D(x,p) = w(x) D(L2(x), p), and hence we can solve the equivalent weighted least squares problem \sum w(r_i) \rho(r_i)
Each M-estimator in the mEstimator name space simply implements the above functions.