gtsam
4.0.0
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 is not robust so is a Gaussian ? More... | |
class | Tukey |
Tukey implements the "Tukey" robust error model (Zhang97ivc) More... | |
class | Welsh |
Welsh implements the "Welsh" robust error model (Zhang97ivc) More... | |
The mEstimator name space contains all robust error functions.
It mirrors the exposition at http://research.microsoft.com/en-us/um/people/zhang/INRIA/Publis/Tutorial-Estim/node24.html which talks about minimizing \sum \rho(r_i), where \rho is a residual 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 Residual \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.