simpeg.directives.BetaEstimateMaxDerivative#

class simpeg.directives.BetaEstimateMaxDerivative(beta0_ratio=1.0, random_seed=None, **kwargs)[source]#

Bases: BaseBetaEstimator

Estimate initial trade-off parameter (beta) using largest derivatives.

The initial trade-off parameter (beta) is estimated by scaling the ratio between the largest derivatives in the gradient of the data misfit and model objective function. The estimated trade-off parameter is used to update the beta property in the associated simpeg.inverse_problem.BaseInvProblem object prior to running the inversion. A separate directive is used for updating the trade-off parameter at successive beta iterations; see BetaSchedule.

Parameters:
beta0_ratio: float

Desired ratio between data misfit and model objective function at initial beta iteration.

random_seedNone or RandomSeed, optional

Random seed used for random sampling. It can either be an int, a predefined Numpy random number generator, or any valid input to numpy.random.default_rng.

seedNone or RandomSeed, optional

Deprecated since version 0.23.0: Argument seed is deprecated in favor of random_seed and will be removed in SimPEG v0.24.0.

Attributes

beta0_ratio

The estimated ratio is multiplied by this to obtain beta.

debug

verbose.debug has been deprecated.

dmisfit

Data misfit associated with the directive.

invProb

Inverse problem associated with the directive.

inversion

Inversion object associated with the directive.

opt

Optimization algorithm associated with the directive.

random_seed

Random seed to initialize with.

reg

Regularization associated with the directive.

seed

random_seed.seed has been deprecated.

simulation

Return simulation for all data misfits.

survey

Return survey for all data misfits

verbose

Whether or not to print debugging information.

Methods

endIter()

Update inversion parameter(s) according to directive at end of iteration.

finish()

Update inversion parameter(s) according to directive at end of inversion.

initialize()

Initialize inversion parameter(s) according to directive.

validate(directive_list)

Validate directive.

Notes

Let \(\phi_d\) represent the data misfit, \(\phi_m\) represent the model objective function and \(\mathbf{m_0}\) represent the starting model. The first model update is obtained by minimizing the a global objective function of the form:

\[\phi (\mathbf{m_0}) = \phi_d (\mathbf{m_0}) + \beta_0 \phi_m (\mathbf{m_0})\]

where \(\beta_0\) represents the initial trade-off parameter (beta).

We define \(\gamma\) as the desired ratio between the data misfit and model objective functions at the initial beta iteration (defined by the ‘beta0_ratio’ input argument). Here, the initial trade-off parameter is computed according to:

\[\beta_0 = \gamma \frac{| \nabla_m \phi_d (\mathbf{m_0}) |_{max}}{| \nabla_m \phi_m (\mathbf{m_0 + \delta m}) |_{max}}\]

where

\[\delta \mathbf{m} = \frac{m_{max}}{\mu_{max}} \boldsymbol{\mu}\]

and \(\boldsymbol{\mu}\) is a set of independent samples from the continuous uniform distribution between 0 and 1.