SimPEG.directives.UpdateSensitivityWeights#
- class SimPEG.directives.UpdateSensitivityWeights(every_iteration=False, threshold_value=1e-12, threshold_method='amplitude', normalization_method='maximum', **kwargs)[source]#
- Bases: - InversionDirective- Sensitivity weighting for linear and non-linear least-squares inverse problems. - This directive computes the root-mean squared sensitivities for the forward simulation(s) attached to the inverse problem, then truncates and scales the result to create cell weights which are applied in the regularization. The underlying theory is provided below in the Notes section. - This directive requires that the map for the regularization function is either class:SimPEG.maps.Wires or class:SimPEG.maps.Identity. In other words, the sensitivity weighting cannot be applied for parametric inversion. In addition, the simulation(s) connected to the inverse problem must have a - getJor- getJtJdiagmethod.- This directive’s place in the - DirectivesListmust be before any directives which update the preconditioner for the inverse problem (i.e.- UpdatePreconditioner), and must be before any directives that estimate the starting trade-off parameter (i.e.- EstimateBeta_ByEigand- EstimateBetaMaxDerivative).- Parameters:
- every_iterationbool
- When - True, update sensitivity weighting at every model update; non-linear problems. When- False, create sensitivity weights for starting model only; linear problems.
- thresholdfloat
- Threshold value for smallest weighting value. 
- threshold_method{‘amplitude’, ‘global’, ‘percentile’}
- Threshold method for how threshold_value is applied: - amplitude:
- the smallest root-mean squared sensitivity is a fractional percent of the largest value; must be between 0 and 1. 
 
- global:
- threshold_value is added to the cell weights prior to normalization; must be greater than 0. 
 
- percentile:
- the smallest root-mean squared sensitivity is set using percentile threshold; must be between 0 and 100. 
 
 
- normalization_method{‘maximum’, ‘min_value’, None}
- Normalization method applied to sensitivity weights. - Options are: - maximum:
- sensitivity weights are normalized by the largest value such that the largest weight is equal to 1. 
 
- minimum:
- sensitivity weights are normalized by the smallest value, after thresholding, such that the smallest weights are equal to 1. 
 
- None:
- normalization is not applied. 
 
 
 
 - Notes - Let \(\mathbf{J}\) represent the Jacobian. To create sensitivity weights, root-mean squared (RMS) sensitivities \(\mathbf{s}\) are computed by summing the squares of the rows of the Jacobian: \[\mathbf{s} = \Bigg [ \sum_i \, \mathbf{J_{i, \centerdot }}^2 \, \Bigg ]^{1/2}\]- The dynamic range of RMS sensitivities can span many orders of magnitude. When computing sensitivity weights, thresholding is generally applied to set a minimum value. - Thresholding#- If global thresholding is applied, we add a constant \(\tau\) to the RMS sensitivities: \[\mathbf{\tilde{s}} = \mathbf{s} + \tau\]- In the case of percentile thresholding, we let \(s_{\%}\) represent a given percentile. Thresholding to set a minimum value is applied as follows: \[\begin{split}\tilde{s}_j = \begin{cases} s_j \;\; for \;\; s_j \geq s_{\%} \\ s_{\%} \;\; for \;\; s_j < s_{\%} \end{cases}\end{split}\]- If absolute thresholding is applied, we define \(\eta\) as a fractional percent. In this case, thresholding is applied as follows: \[\begin{split}\tilde{s}_j = \begin{cases} s_j \;\; for \;\; s_j \geq \eta s_{max} \\ \eta s_{max} \;\; for \;\; s_j < \eta s_{max} \end{cases}\end{split}\]- Attributes - verbose.debug has been deprecated. - Data misfit associated with the directive. - every_iteration.everyIter has been deprecated. - Update sensitivity weights when model is updated. - Inverse problem associated with the directive. - Inversion object associated with the directive. - normalization_method.normalization has been deprecated. - Normalization method applied to sensitivity weights. - Optimization algorithm associated with the directive. - Regularization associated with the directive. - Return simulation for all data misfits. - Return survey for all data misfits - threshold_value.threshold has been deprecated. - Threshold method for how threshold_value is applied: - Threshold value used to set minimum weighting value. - Whether or not to print debugging information. - Methods - endIter()- Execute end of iteration. - finish()- Update inversion parameter(s) according to directive at end of inversion. - Compute sensitivity weights upon starting the inversion. - update()- Update sensitivity weights - validate(directiveList)- Validate directive against directives list. 
Galleries and Tutorials using SimPEG.directives.UpdateSensitivityWeights#
 
Sparse Inversion with Iteratively Re-Weighted Least-Squares
 
Cross-gradient Joint Inversion of Gravity and Magnetic Anomaly Data
 
2.5D DC Resistivity and IP Least-Squares Inversion
 
1D Inversion of Time-Domain Data for a Single Sounding
 
Sparse Norm Inversion for Total Magnetic Intensity Data on a Tensor Mesh
 
 
 
 
 
 
 
 
 
 
 
 
 
