|
|
| DCS (double c=1.0, const ReweightScheme reweight=Block) |
| |
| double | weight (double distance) const override |
| |
| double | loss (double distance) const override |
| |
|
void | print (const std::string &s) const override |
| |
|
bool | equals (const Base &expected, double tol=1e-8) const override |
| |
|
double | modelParameter () const |
| |
|
ReweightScheme | reweightScheme () const |
| | Returns the reweight scheme, as explained in ReweightScheme.
|
| |
| Vector | weight (const Vector &error) const |
| |
|
double | sqrtWeight (double distance) const |
| |
| Vector | sqrtWeight (const Vector &error) const |
| |
| void | reweight (Vector &error) const |
| |
|
void | reweight (std::vector< Matrix > &A, Vector &error) const |
| |
|
void | reweight (Matrix &A, Vector &error) const |
| |
|
void | reweight (Matrix &A1, Matrix &A2, Vector &error) const |
| |
|
void | reweight (Matrix &A1, Matrix &A2, Matrix &A3, Vector &error) const |
| |
DCS implements the Dynamic Covariance Scaling robust error model from the paper Robust Map Optimization (Agarwal13icra).
Under the special condition of the parameter c == 1.0 and not forcing the output weight s <= 1.0, DCS is similar to Geman-McClure.
This model has a scalar parameter "c" (with "units" of squared error).
- Loss (x) = (c²x² + cx⁴)/(x²+c)² (for any "x")
- Derivative (x) = 2c²x/(x²+c)²
- Weight w(x) = (x)/x = 2c²/(x²+c)² if x²>c, 1 otherwise
| double gtsam::noiseModel::mEstimator::DCS::loss |
( |
double |
distance | ) |
const |
|
overridevirtual |
This method is responsible for returning the total penalty for a given amount of error. For example, this method is responsible for implementing the quadratic function for an L2 penalty, the absolute value function for an L1 penalty, etc.
TODO(mikebosse): When the loss function has as input the norm of the error vector, then it prevents implementations of asymmeric loss functions. It would be better for this function to accept the vector and internally call the norm if necessary.
This returns (x) in mEstimator
Reimplemented from gtsam::noiseModel::mEstimator::Base.