Objective Functions¶
The objective functions module provides a comprehensive framework for defining optimization objectives in data fitting and design optimization problems.
Main Class¶
- class ionworkspipeline.data_fits.objective_functions.AugmentedObjectiveFunction(evaluate_inputs_and_outputs: callable, cost: ObjectiveFunction, mode: Literal['scalar', 'residuals'] = 'scalar', eq_constraints: ConstraintSet | None = None, ineq_constraints: ConstraintSet | None = None, penalties: PenaltySet | None = None, priors: PriorSet | None = None)¶
Objective function combining likelihood with regularization terms.
The objective function has the general form: Objective = Likelihood + Equality Constraints + Inequality Constraints + Penalties + Priors
Parameters¶
- evaluate_inputs_and_outputscallable
Function to evaluate model inputs and outputs.
- costObjectiveFunction
The cost function that defines how to compute the likelihood.
- modeOutputMode
Output mode: “scalar” for scalar optimizers, “residuals” for least-squares.
- eq_constraintsConstraintSet, optional
Equality constraints (should evaluate to zero).
- ineq_constraintsConstraintSet, optional
Inequality constraints (should evaluate to >= 0).
- penaltiesPenaltySet, optional
Additional penalty terms.
- priorsPriorSet, optional
Prior probability distributions on parameters.
- add_regularization(accumulator, x: ndarray)¶
Add all regularization terms to the accumulator.
Parameters¶
- accumulatorAccumulator
Current accumulated value.
- xnp.ndarray
Parameter vector.
Returns¶
- Accumulator
Updated accumulator with regularization terms.
- property cost: ObjectiveFunction¶
The cost function.
- property eq_constraints: ConstraintSet | None¶
Equality constraints, if any.
- evaluate_from_outputs(x: ndarray, outputs: dict, inputs: dict | None = None) tuple[float | ndarray, float]¶
Evaluate objective function from pre-computed outputs.
Parameters¶
- xnp.ndarray
Parameter vector.
- outputsdict
Pre-computed model outputs.
- inputsdict, optional
Current parameter values for cost functions that need them.
Returns¶
- tuple[float | np.ndarray, float]
(value, scalarized_value)
- evaluate_full(x: ndarray) Evaluation¶
Evaluate the complete objective function with full details.
Parameters¶
- xnp.ndarray
Parameter vector to evaluate.
Returns¶
- Evaluation
Contains value, scalarized value, inputs, and outputs.
- property evaluate_inputs_and_outputs: callable¶
Function to evaluate inputs and outputs.
- gradient(x: ndarray, cost: ObjectiveFunction | None = None, options: dict | None = None) ndarray¶
Compute gradient of the objective function.
Parameters¶
- xnp.ndarray
Parameter vector.
- costObjectiveFunction, optional
Cost function to use.
- optionsdict, optional
Options for numdifftools finite difference.
Returns¶
- np.ndarray
Gradient of the objective function.
- hessian(x: ndarray, cost: ObjectiveFunction | None = None, gauss_newton: bool | None = None, options: dict | None = None) ndarray¶
Compute Hessian matrix of the objective function.
Parameters¶
- xnp.ndarray
Parameter vector.
- costObjectiveFunction, optional
Cost function to use.
- gauss_newtonbool, optional
Use Gauss-Newton approximation. Default False.
- optionsdict, optional
Options for numdifftools finite difference.
Returns¶
- np.ndarray
Hessian matrix.
- property ineq_constraints: ConstraintSet | None¶
Inequality constraints, if any.
- jacobian(x: ndarray, cost: ObjectiveFunction | None = None, options: dict | None = None) ndarray¶
Compute Jacobian matrix of the objective function.
Parameters¶
- xnp.ndarray
Parameter vector.
- costObjectiveFunction, optional
Cost function to use.
- optionsdict, optional
Options for numdifftools finite difference.
Returns¶
- np.ndarray
Jacobian matrix.
- likelihood(outputs: dict, inputs: dict | None = None)¶
Compute the likelihood term.
Parameters¶
- outputsdict
Model outputs.
- inputsdict, optional
Current parameter values.
Returns¶
- Accumulator
Unfinalized accumulator for composition with regularizers.
- property penalties: PenaltySet | None¶
Penalty terms, if any.
- residuals(x: ndarray, cost: ObjectiveFunction | None = None) ndarray¶
Compute residuals of the objective function.
Parameters¶
- xnp.ndarray
Parameter vector.
- costObjectiveFunction, optional
Cost function to use.
Returns¶
- np.ndarray
Residuals of the objective function.
- set_cost(cost: ObjectiveFunction)¶
Set the cost function.
Parameters¶
- costObjectiveFunction
The cost function to set.
- set_eq_constraints(eq_constraints: ConstraintSet | None = None)¶
Set equality constraints.
- set_evaluate_inputs_and_outputs(evaluate_inputs_and_outputs: Callable)¶
Set the evaluation function.
- set_ineq_constraints(ineq_constraints: ConstraintSet | None = None)¶
Set inequality constraints.
- set_penalties(penalties: PenaltySet | None = None)¶
Set penalty terms.
Submodules¶
- Cost Functions
- Base Classes
ObjectiveFunctionObjectiveFunction.__call__()ObjectiveFunction.combine()ObjectiveFunction.finalize_output()ObjectiveFunction.get_objective_names()ObjectiveFunction.objective_namesObjectiveFunction.objective_weights()ObjectiveFunction.residual_scale_factorObjectiveFunction.scalarize()ObjectiveFunction.set_objective_names()ObjectiveFunction.to_config()ObjectiveFunction.variable_weights()
ErrorFunction
- Error Functions
- Multi-Cost Functions
- Design Functions
- Base Classes
- Regularizers