Classes | |
class | Base |
class | Cauchy |
class | DCS |
class | Fair |
class | GemanMcClure |
class | Huber |
class | L2WithDeadZone |
class | Null |
class | Tukey |
class | Welsch |
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 (r_i), where 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 (x) 0.5*x^2 |x| 0.5*x^2 if |x|<k, 0.5*k^2 + k|x-k| otherwise Derivative (x) x sgn(x) x if |x|<k, k sgn(x) otherwise Weight w(x)=(x)/x 1 1/|x| 1 if |x|<k, k/|x| otherwise
With these definitions, D((x), p) = (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 w(r_i) (r_i)
Each M-estimator in the mEstimator name space simply implements the above functions.