LSST Applications g0f08755f38+9c285cab97,g1635faa6d4+13f3999e92,g1653933729+a8ce1bb630,g1a0ca8cf93+bf6eb00ceb,g28da252d5a+0829b12dee,g29321ee8c0+5700dc9eac,g2bbee38e9b+9634bc57db,g2bc492864f+9634bc57db,g2cdde0e794+c2c89b37c4,g3156d2b45e+41e33cbcdc,g347aa1857d+9634bc57db,g35bb328faa+a8ce1bb630,g3a166c0a6a+9634bc57db,g3e281a1b8c+9f2c4e2fc3,g414038480c+077ccc18e7,g41af890bb2+fde0dd39b6,g5fbc88fb19+17cd334064,g781aacb6e4+a8ce1bb630,g80478fca09+55a9465950,g82479be7b0+d730eedb7d,g858d7b2824+9c285cab97,g9125e01d80+a8ce1bb630,g9726552aa6+10f999ec6a,ga5288a1d22+2a84bb7594,gacf8899fa4+c69c5206e8,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc28159a63d+9634bc57db,gcf0d15dbbd+4b7d09cae4,gda3e153d99+9c285cab97,gda6a2b7d83+4b7d09cae4,gdaeeff99f8+1711a396fd,ge2409df99d+5e831397f4,ge79ae78c31+9634bc57db,gf0baf85859+147a0692ba,gf3967379c6+41c94011de,gf3fb38a9a8+8f07a9901b,gfb92a5be7c+9c285cab97,w.2024.46
LSST Data Management Base Package
|
Configuration object for Optimizer. More...
#include <optimizer.h>
Public Member Functions | |
OptimizerControl () | |
Public Attributes | |
bool | noSR1Term |
"If true, ignore the SR1 update term in the Hessian, resulting in a Levenberg-Marquardt-like method" ; | |
double | skipSR1UpdateThreshold |
"Skip the SR1 update if |v||s| / (|v||s|) is less than this threshold" ; | |
double | minTrustRadiusThreshold |
"If the trust radius falls below this threshold, consider the algorithm converged" ; | |
double | gradientThreshold |
"If the maximum of the gradient falls below this threshold, consider the algorithm converged" ; | |
double | numDiffRelStep |
"relative step size used for numerical derivatives (added to other steps)" ; | |
double | numDiffAbsStep |
"absolute step size used for numerical derivatives (added to other steps)" ; | |
double | numDiffTrustRadiusStep |
"step size (in units of trust radius) used for numerical derivatives (added to relative step)" ; | |
double | stepAcceptThreshold |
"steps with reduction ratio greater than this are accepted" ; | |
double | trustRegionInitialSize |
"the initial trust region will be set to this value" ; | |
double | trustRegionGrowReductionRatio |
"steps with reduction radio greater than this may increase the trust radius" ; | |
double | trustRegionGrowStepFraction |
"steps with length this fraction of the trust radius may increase the trust radius" ; | |
double | trustRegionGrowFactor |
"when increase the trust region size, multiply the radius by this factor" ; | |
double | trustRegionShrinkReductionRatio |
"steps with reduction radio less than this will decrease the trust radius" ; | |
double | trustRegionShrinkFactor |
"when reducing the trust region size, multiply the radius by this factor" ; | |
double | trustRegionSolverTolerance |
"value passed as the tolerance to solveTrustRegion" ; | |
int | maxInnerIterations |
"maximum number of iterations (i.e. function evaluations and trust region subproblems) per step" ; | |
int | maxOuterIterations |
"maximum number of steps" ; | |
bool | doSaveIterations |
"whether to save all iterations for debugging purposes" ; | |
Configuration object for Optimizer.
Many of these configuration options pertain to how the trust region is updated. It's easiest to understand these together rather than separately. At each iteration, a quadratic model of the objective function is formed. We can use this model to predict how we expect the objective function to behave over a step, and compare it to how the actual objective function behaves. To do this, we'll use the ratio of the actual reduction in the objective function to the predicted reduction in the objective function, and call this \(\rho\). Then,
stepAcceptThreshold
.trustRegionGrowReductionRatio
and the length of the step is greater than trustRegionGrowStepFraction
times the current trust region radius, the trust region radius will be multiplied by trustRegionGrowFactor
.trustRegionShrinkMinReductionRatio
\(< \rho < \) trustRegionShrinkMaxReductionRatio
, the trust region radius will be multiplied by trustRegionShrinkFactor
. Definition at line 187 of file optimizer.h.
|
inline |
Definition at line 279 of file optimizer.h.
bool lsst::meas::modelfit::OptimizerControl::doSaveIterations |
"whether to save all iterations for debugging purposes" ;
Definition at line 277 of file optimizer.h.
double lsst::meas::modelfit::OptimizerControl::gradientThreshold |
"If the maximum of the gradient falls below this threshold, consider the algorithm converged" ;
Definition at line 207 of file optimizer.h.
int lsst::meas::modelfit::OptimizerControl::maxInnerIterations |
"maximum number of iterations (i.e. function evaluations and trust region subproblems) per step" ;
Definition at line 267 of file optimizer.h.
int lsst::meas::modelfit::OptimizerControl::maxOuterIterations |
"maximum number of steps" ;
Definition at line 272 of file optimizer.h.
double lsst::meas::modelfit::OptimizerControl::minTrustRadiusThreshold |
"If the trust radius falls below this threshold, consider the algorithm converged" ;
Definition at line 202 of file optimizer.h.
bool lsst::meas::modelfit::OptimizerControl::noSR1Term |
"If true, ignore the SR1 update term in the Hessian, resulting in a Levenberg-Marquardt-like method" ;
Definition at line 192 of file optimizer.h.
double lsst::meas::modelfit::OptimizerControl::numDiffAbsStep |
"absolute step size used for numerical derivatives (added to other steps)" ;
Definition at line 217 of file optimizer.h.
double lsst::meas::modelfit::OptimizerControl::numDiffRelStep |
"relative step size used for numerical derivatives (added to other steps)" ;
Definition at line 212 of file optimizer.h.
double lsst::meas::modelfit::OptimizerControl::numDiffTrustRadiusStep |
"step size (in units of trust radius) used for numerical derivatives (added to relative step)" ;
Definition at line 222 of file optimizer.h.
double lsst::meas::modelfit::OptimizerControl::skipSR1UpdateThreshold |
"Skip the SR1 update if |v||s| / (|v||s|) is less than this threshold" ;
Definition at line 197 of file optimizer.h.
double lsst::meas::modelfit::OptimizerControl::stepAcceptThreshold |
"steps with reduction ratio greater than this are accepted" ;
Definition at line 227 of file optimizer.h.
double lsst::meas::modelfit::OptimizerControl::trustRegionGrowFactor |
"when increase the trust region size, multiply the radius by this factor" ;
Definition at line 247 of file optimizer.h.
double lsst::meas::modelfit::OptimizerControl::trustRegionGrowReductionRatio |
"steps with reduction radio greater than this may increase the trust radius" ;
Definition at line 237 of file optimizer.h.
double lsst::meas::modelfit::OptimizerControl::trustRegionGrowStepFraction |
"steps with length this fraction of the trust radius may increase the trust radius" ;
Definition at line 242 of file optimizer.h.
double lsst::meas::modelfit::OptimizerControl::trustRegionInitialSize |
"the initial trust region will be set to this value" ;
Definition at line 232 of file optimizer.h.
double lsst::meas::modelfit::OptimizerControl::trustRegionShrinkFactor |
"when reducing the trust region size, multiply the radius by this factor" ;
Definition at line 257 of file optimizer.h.
double lsst::meas::modelfit::OptimizerControl::trustRegionShrinkReductionRatio |
"steps with reduction radio less than this will decrease the trust radius" ;
Definition at line 252 of file optimizer.h.
double lsst::meas::modelfit::OptimizerControl::trustRegionSolverTolerance |
"value passed as the tolerance to solveTrustRegion" ;
Definition at line 262 of file optimizer.h.