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
|
Base class for objective functions for Optimizer. More...
#include <optimizer.h>
Public Member Functions | |
OptimizerObjective (int dataSize_, int parameterSize_) | |
Base class constructor; must be called by all subclasses. | |
void | fillObjectiveValueGrid (ndarray::Array< Scalar const, 2, 1 > const ¶meters, ndarray::Array< Scalar, 1, 1 > const &output) const |
Evaluate the Objective on a 1-d grid. | |
virtual void | computeResiduals (ndarray::Array< Scalar const, 1, 1 > const ¶meters, ndarray::Array< Scalar, 1, 1 > const &residuals) const =0 |
Evaluate the residuals of the model for a given parameter vector. | |
virtual bool | differentiateResiduals (ndarray::Array< Scalar const, 1, 1 > const ¶meters, ndarray::Array< Scalar, 2,-2 > const &derivatives) const |
Evaluate analytic derivatives of the model or signal that they are not available. | |
virtual bool | hasPrior () const |
Return true if the Objective has a Bayesian prior as well as a likelihood. | |
virtual Scalar | computePrior (ndarray::Array< Scalar const, 1, 1 > const ¶meters) const |
Compute the value of the Bayesian prior for the given parameter vector. | |
virtual void | differentiatePrior (ndarray::Array< Scalar const, 1, 1 > const ¶meters, ndarray::Array< Scalar, 1, 1 > const &gradient, ndarray::Array< Scalar, 2, 1 > const &hessian) const |
Compute the first and second derivatives of the Bayesian prior with respect to the parameters. | |
virtual | ~OptimizerObjective () |
Static Public Member Functions | |
static std::shared_ptr< OptimizerObjective > | makeFromLikelihood (std::shared_ptr< Likelihood > likelihood, std::shared_ptr< Prior > prior=std::shared_ptr< Prior >()) |
Return a concrete Objective object built from a Likelihood and Prior. | |
Public Attributes | |
int const | dataSize |
int const | parameterSize |
Base class for objective functions for Optimizer.
Definition at line 44 of file optimizer.h.
|
inline |
Base class constructor; must be called by all subclasses.
Definition at line 67 of file optimizer.h.
|
inlinevirtual |
Definition at line 167 of file optimizer.h.
|
inlinevirtual |
Compute the value of the Bayesian prior for the given parameter vector.
The default implementation simply returns 1.0 (appropriate for an unnormalized constant prior, which is mathematically equivalent to no prior).
Definition at line 142 of file optimizer.h.
|
pure virtual |
Evaluate the residuals of the model for a given parameter vector.
[in] | parameters | An array of parameters with shape (parameterSize). |
[out] | residuals | Output array that will contain (model - data) on return. Must be allocated to shape (dataSize), but need not be initialized. |
|
inlinevirtual |
Compute the first and second derivatives of the Bayesian prior with respect to the parameters.
The default implementation simply sets the output arrays to 0.0 (appropriate for an constant prior, which is mathematically equivalent to no prior).
[in] | parameters | An array of parameters with shape (parameterSize). |
[out] | gradient | First derivative of the prior with respect to the parameters. Must be allocated to shape (parameterSize), but need not be initialized. |
[out] | hessian | Second derivative of the prior with respect to the parameters. Must be allocated to shape (parameterSize, parameterSize), but need not be initialized. This is a symmetric matrix, and only the lower triangle is used. |
Definition at line 158 of file optimizer.h.
|
inlinevirtual |
Evaluate analytic derivatives of the model or signal that they are not available.
Subclasses that provide analytic derivatives should implement this method and return true. Subclasses that do not should return false to indicate to the optimizer that numeric derivatives must be used instead. Subclasses that can only sometimes compute analytic derivatives are not supported.
[in] | parameters | An array of parameters with shape (parameterSize). |
[out] | derivatives | Output array that will contain d(model - data)/d(parameters) on return. Must be allocated to shape (dataSize, parameterSize), but need not be initialized. |
Definition at line 121 of file optimizer.h.
void lsst::meas::modelfit::OptimizerObjective::fillObjectiveValueGrid | ( | ndarray::Array< Scalar const, 2, 1 > const & | parameters, |
ndarray::Array< Scalar, 1, 1 > const & | output ) const |
Evaluate the Objective on a 1-d grid.
This delegates to computeResiduals, and hence need not be reimplemented by derived classes. It is intended mostly for diagnostic purposes; when investigating the behavior of the optimizer, it is frequently valuable to plot its path against the gridded objective function.
[in] | parameters | An array with shape (gridSize, parameterSize), specifying the parameter vector at points on the grid. |
[out] | output | Output array for objective values with shape (gridSize). Must be allocated, but need not be initialized. |
Frequently, the arguments to this function will be flattened views into higher dimensional arrays, allowing it to be used to construct N-d grids despite taking only a 1-d sequence of grid points.
|
inlinevirtual |
Return true if the Objective has a Bayesian prior as well as a likelihood.
The default implementation returns false.
Definition at line 134 of file optimizer.h.
|
static |
Return a concrete Objective object built from a Likelihood and Prior.
Most fitting problems that can be formulated in terms of (multi-shapelet) Models, Likelihoods, and Priors can just use this Objective. The returned Objective relies on numerical derivatives, however, so simple problems where analytic derivatives are easy to implement may merit a custom OptimizerObjective.
int const lsst::meas::modelfit::OptimizerObjective::dataSize |
Definition at line 47 of file optimizer.h.
int const lsst::meas::modelfit::OptimizerObjective::parameterSize |
Definition at line 48 of file optimizer.h.