L2WithDeadZone implements a standard L2 penalty, but with a dead zone of width 2*k, centered at the origin.
The resulting penalty within the dead zone is always zero, and grows quadratically outside the dead zone. In this sense, the L2WithDeadZone penalty is "robust to inliers", rather than being robust to outliers. This penalty can be used to create barrier functions in a general way.
|
| L2WithDeadZone (double k, const ReweightScheme reweight=Block) |
|
double | residual (double error) const |
|
double | weight (double error) const |
|
void | print (const std::string &s) const |
|
bool | equals (const Base &expected, double tol=1e-8) const |
|
| Base (const ReweightScheme reweight=Block) |
|
double | sqrtWeight (double error) const |
|
Vector | weight (const Vector &error) const |
| produce a weight vector according to an error vector and the implemented robust function
|
|
Vector | sqrtWeight (const Vector &error) const |
| square root version of the weight function
|
|
void | reweight (Vector &error) const |
| reweight block matrices and a vector according to their weight implementation
|
|
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 |
|