selregparam
¶
Optimal selection of a regularization parameter value according to different model selection criteria.
Syntax¶
alpha = selregparam(V,K,r,'type','method')
alpha = selregparam(V,K,r,'type','all')
alpha = selregparam(V,K,r,'type',{'method1','method2',___})
alpha = selregparam({V1,V2,___},{K1,K2,___},r,'type','method')
alpha = selregparam(___,'Property',Value)
[alpha,selfcn,alphas,res,pen] = selregparam(___)
- Parameters
V
- Input signal (N-element array)K
- Dipolar kernel (NxM-element array)r
- Distance axis (M-element array)type
- Regularization type (string)method
- Model selection type (string)
- Returns
alpha
- Optimal regularization parameter (scalar)selfcn
- Model selection functional for givenalphas
(scalar)alphas
- Evaluated candidate regularization parameters (array)res
- Evaluated regularization residual term (array)pen
- Evaluated regularization penalty term (array)
Description¶
[alpha] = selregparam(V,K,r,'type','method')
Returns the optimal regularization parameter alpha
from a range of regularization parameter candidates alphas
. The parameter for the regularization type given by 'type'
is computed based on the input signal V
and the dipolar kernel K
. The method employed for the selection of the regularization parameter can be specified as the 'method'
input argument. The available regularization models specified by 'type'
are
'tikhonov'
- Tikhonov regularization'tv'
- Total variation regularization'huber'
- Pseudo-Huber regularization
[alpha,selfcn,alphas] = selregparam(V,K,r,'type',{'method1','method2',___})
If multiple selection methods are passed as a cell array of strings, the function returns alpha
as an array of optimal regularization parameters corresponding to the input methods. The selection models functionals selfcn
are also returned as a cell array of arrays containing the evaluated functionals of the requested models. The order of the output parameters corresponds to the order of the model strings in the input.
[alpha,selfcn,alphas,res,pen] = selregparam(V,K,r,'type',{'method1','method2',___})
The vector of evaluated residual res
and penalty pen
terms can be requested as additional outputs. They can be used, e.g. to build the L-curve.
[alpha,selfcn,alphas] = selregparam(V,K,r,'type','all')
Alternatively, the argument 'all'
can be passed, which will compute the optimal regularization parameter based on all the selection methods implemented in the function.
alpha = selregparam({V1,V2,___},{K1,K2,___},r,'type','method')
Passing multiple signals/kernels enables selection of the regularization parameter for global fitting of the regularization model to a single distribution. The global fit weights are automatically computed according to their contribution to ill-posedness. The multiple signals are passed as a cell array of arrays of sizes N1, N2,… and a cell array of Kernel matrices with sizes N1xM, N2xM,… must be passed as well.
Available Model Selection Criteria | ||
---|---|---|
String | Acronym | Model Selection Method |
'aic' |
AIC | Akaike information criterion |
'aicc' |
AICc | Corrected Akaike information criterion |
'bic' |
BIC | Bayesian information criterion |
'cv' |
CV | Cross-validation |
'gcv' |
GCV | Generalized cross-validation |
'rgcv' |
rGCV | Robust generalized cross-validation |
'srgcv' |
srGCV | Strong-robust generalized cross-validation |
'dp' |
DP | Discrepancy principle |
'ee' |
EE | Extrapolated error |
'gml' |
GML | Generalized maximum-likelihood |
'lc' |
Lc | L-curve (curvature-based) |
'lr' |
Lr | L-curve (radius-based) |
'mcl' |
MCL | Mallows’ |
'ncp' |
NCP | Normalized cumulative periodogram |
'rm' |
RM | Residual method |
Additional Settings¶
Additional settings can be specified via name-value pairs. All property names are case insensitive and the property-value pairs can be passed in any order after the required input arguments have been passed.
alpha = selregparam(___,'Property1',Value1,'Property2',Value2,___)
'Range'
- Regularization parameter search rangeArray of regularization parameter candidates to evaluate.
Default: [empty] - Computes an optimal range automatically with regparamrange
Example:
alpha = selregparam(___,'Range',logspace(-3,4,100))
'Search'
- Regularization parameter search algorithmSpecifies the type of algorithm used for searching the optimal regularization parameter. The possible settings are:
'fminbnd'
- MATLAB’s built-in function minimizer, based on golden section search with parabolic interpolation, over the interval specified in'Range'
.'grid'
- Systematic search over a grid of regularization parameter values, using the grid specified in'Range'
.'golden'
- Manually implemented golden section search algorithm over the interval specified in'Range'
(not compatible with thelc
orlr
selection methods), more primitive than'fminbnd'
.
Default:
fminbnd
Example:
alpha = selregparam(___,'Search','grid')
'NonNegConstrained'
- Non-negativity constraintSpecifies whether the distance distribution
P
is to be computed under the non-negativity constraint. If the constraint is lifted, the distance distribution is computed according to the analytical solution of the inverse problem.Default:
true
Example:
alpha = selregparam(___,'NonNegConstrained',false)
'HuberParam'
- Huber parameter valueValue of the super-parameter used in pseudo-Huber regularization.
Default:
1.35
Example:
alpha = selregparam(___,'HuberParam',2.5)
'GlobalWeights'
- Weights for global analysisArray of weighting coefficients for the individual signals in global fitting regularization. If not specified, the global fit weights are automatically computed according to their contribution to ill-posedness. Weight values do not need to be normalized. The same number of weights as number of input signals is required.
Default: [empty]
Example:
alpha = selregparam(alphas,{V1,V2,V3},{K1,K2,K3},r,L,'tikhonov','aic','GlobalWeights',[0.1 0.6 0.3]])
'TolFun'
- Optimizer tolerance valueOptimizer function tolerance. The solver stops once the regularization functional evaluation reaches a value lower than this tolerance. Lower values increase the precision of the result, albeit at the cost of longer computation times.
Default:
1e-9
Example:
alpha = selregparam(___,'TolFun','1e-20')
'RegOrder'
- Regularization matrix orderOrder of the regularization operator (0,1, 2 or 3).
Default:
2
Example:
alpha = selregparam(___,'RegOrder',3)
'NoiseLevel'
- Estimation of the noise levelLevel (standard deviation) of the noise in the input signal(s). If not specified, it is automatically computed via noiselevel. If multiple signals are passed (global fitting), the same number of noise levels must be specified. Required only for the
'dp'
and'mcl'
selection methods.Default: [empty]
Example:
alpha = selregparam(___,'NoiseLevel',0.05)