inversion_ideas.utils.estimate_tradeoff_parameter#
- inversion_ideas.utils.estimate_tradeoff_parameter(objective_one, objective_two, model, **kwargs)[source]#
Estimate balanced value for the trade-off parameter between two objective functions.
Make use of the power iteration method implemented in
get_largest_eigenvalue()to estimate the largeset absolute eigenvalue of the Hessian matrices of the two objective functions for a given model. And then return the ratio between the eigenvalue of the first and second Hessian matrices.- Parameters:
- objective_one, objective_two
base.Objective First and second objective functions. The Hessian matrices of the two of them will be computed and then used to calculate their largest absolute eigenvalues.
- model(n_params,)
array Model array used to compute the Hessian matrices.
- **kwargs
Keyword arguments that will be passed to
get_largest_eigenvalue().
- objective_one, objective_two
- Returns:
floatThe ratio between the largest eigenvalues of the Hessian of
objective_oneandobjective_two.
Notes
Consider two objective functions \(\phi_1(\mathbf{m})\) and \(\phi_2(\mathbf{m})\), and we desire to estimate a balanced value for a trade-off parameter \(\beta\) that acts as a multiplier of \(\phi_2(\mathbf{m})\):
\[\phi_1(\mathbf{m}) + \beta \, \phi_2(\mathbf{m})\]This function will estimate the largest absolute eigenvalues \(|\lambda_1|\) and \(|\lambda_2|\) for the Hessian matrices \(\nabla^2 \phi_1(\mathbf{m})\) and \(\nabla^2 \phi_2(\mathbf{m})\), respectively, for a given model \(\mathbf{m}\).
And finally estimate a balanced value for trade-off parameter \(\beta\) as:
\[\beta = \frac{|\lambda_1|}{|\lambda_2|}\]