#include <LossFunctions.h>
Public Types | |
typedef std::shared_ptr< Custom > | shared_ptr |
Public Types inherited from gtsam::noiseModel::mEstimator::Base | |
enum | ReweightScheme { Scalar, Block } |
typedef std::shared_ptr< Base > | shared_ptr |
Public Member Functions | |
Custom ()=default | |
Custom (CustomWeightFunction weight, CustomLossFunction loss, const ReweightScheme reweight=Block, std::string name="Custom") | |
bool | equals (const Base &expected, double tol=1e-8) const override |
double | loss (double distance) const override |
std::function< double(double)> & | lossFunction () |
std::string & | name () |
void | print (const std::string &s) const override |
double | weight (double distance) const override |
std::function< double(double)> & | weightFunction () |
Public Member Functions inherited from gtsam::noiseModel::mEstimator::Base | |
Base (const ReweightScheme reweight=Block) | |
void | reweight (Matrix &A, Vector &error) const |
void | reweight (Matrix &A1, Matrix &A2, Matrix &A3, Vector &error) const |
void | reweight (Matrix &A1, Matrix &A2, Vector &error) const |
void | reweight (std::vector< Matrix > &A, Vector &error) const |
void | reweight (Vector &error) const |
ReweightScheme | reweightScheme () const |
Returns the reweight scheme, as explained in ReweightScheme. More... | |
Vector | sqrtWeight (const Vector &error) const |
double | sqrtWeight (double distance) const |
Vector | weight (const Vector &error) const |
virtual | ~Base () |
Static Public Member Functions | |
static shared_ptr | Create (std::function< double(double)> weight, std::function< double(double)> loss, const ReweightScheme reweight=Block, const std::string &name="Custom") |
Protected Attributes | |
std::function< double(double)> | loss_ |
std::string | name_ |
std::function< double(double)> | weight_ |
Protected Attributes inherited from gtsam::noiseModel::mEstimator::Base | |
ReweightScheme | reweight_ |
Strategy for reweighting. More... | |
Implementation of the "Custom" robust error model.
This model just takes two functions as input, one for the loss and one for the weight.
Definition at line 555 of file LossFunctions.h.
typedef std::shared_ptr<Custom> gtsam::noiseModel::mEstimator::Custom::shared_ptr |
Definition at line 561 of file LossFunctions.h.
gtsam::noiseModel::mEstimator::Custom::Custom | ( | CustomWeightFunction | weight, |
CustomLossFunction | loss, | ||
const ReweightScheme | reweight = Block , |
||
std::string | name = "Custom" |
||
) |
|
inlinedefault |
|
static |
Definition at line 549 of file LossFunctions.cpp.
|
overridevirtual |
Implements gtsam::noiseModel::mEstimator::Base.
Definition at line 541 of file LossFunctions.cpp.
|
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 in mEstimator
Reimplemented from gtsam::noiseModel::mEstimator::Base.
Definition at line 533 of file LossFunctions.cpp.
|
inline |
Definition at line 574 of file LossFunctions.h.
|
inline |
Definition at line 571 of file LossFunctions.h.
|
overridevirtual |
Implements gtsam::noiseModel::mEstimator::Base.
Definition at line 537 of file LossFunctions.cpp.
|
overridevirtual |
This method is responsible for returning the weight function for a given amount of error. The weight function is related to the analytic derivative of the loss function. See https://members.loria.fr/MOBerger/Enseignement/Master2/Documents/ZhangIVC-97-01.pdf for details. This method is required when optimizing cost functions with robust penalties using iteratively re-weighted least squares.
This returns w(x) in mEstimator
Implements gtsam::noiseModel::mEstimator::Base.
Definition at line 529 of file LossFunctions.cpp.
|
inline |
Definition at line 573 of file LossFunctions.h.
|
protected |
Definition at line 557 of file LossFunctions.h.
|
protected |
Definition at line 558 of file LossFunctions.h.
|
protected |
Definition at line 557 of file LossFunctions.h.