regpy.solvers.nonlinear.gen_tikhonov¶
Classes¶
Iterator generating a geometric sequence |
|
Class running generalized Tikhonov regularization with some inner solver for different regularization parameters. |
Module Contents¶
- class regpy.solvers.nonlinear.gen_tikhonov.GeometricSequence(alpha0: float = 1.0, q: float = 0.5)[source]¶
Iterator generating a geometric sequence
- Parameters:
alpha0 (float) – \(\alpha_0\) the initial regularization parameter
q (float) – Rate of the geometric sequence
Notes
Sequence defined recursively by
\[\begin{split}\alpha_0 &= \alpha_0 \\ \alpha_{n+1} &= q*\alpha_n\end{split}\]
- class regpy.solvers.nonlinear.gen_tikhonov.GeneralizedTikhonov(setting: regpy.solvers.general.Setting, inner_solver_class: type[regpy.solvers.general.RegSolver], inner_solver_is_primal: bool = True, inner_solver_params: dict = {}, inner_stoprule_class_list: list[type[regpy.stoprules.StopRule]] = [DualityGapStopping, CountIterations], inner_stoprule_param_list: list[dict] = [{'tol': 0.001}, {'max_iterations': 1000}], alphas: Iterable[float] | Tuple[float, float] = (1.0, 0.5), logging_level: str = 'INFO', inner_logging_level: str = 'WARNING')[source]¶
Bases:
regpy.solvers.general.RegSolverClass running generalized Tikhonov regularization with some inner solver for different regularization parameters. This can serve as an interface to stopping rules for the selection of the regularization parameters
- Parameters:
setting (regpy.solvers.Setting) – The setting of the forward problem.
inner_solver (regpy.solvers.RegSolver class name) – The right-hand side.
inner_stoprule_class_list (list[regpy.stoprules.StopRule]) – List of stop rules to be combined for the inner solver. Default is [regpy.stoprules.DualityGapStopping,regpy.stoprules.CountIterations].
inner_stoprule_param_list (list[dict]) – List of parameter dicts for the inner stop rules. Default is [{‘tol’:1e-3},{‘max_iterations’:1000}].
alphas (iterable or tuple, optional) – Either an iterable giving the grid of alphas or a tuple (alpha0,q). In the second case the sequence \((alpha0*q^n)_{n=0,1,2,...}\) is generated. Default is (1.0,0.5).
- inner_solver_class¶
- inner_solver_is_primal = True¶
- inner_stoprule_class_list¶
- inner_solver_params¶
- inner_logging_level = 'WARNING'¶
- inner_stoprule_param_list¶
- inner_solver¶
- inner_stoprule¶
- set_next_alpha(alpha: float = None) bool[source]¶
“ Set the next regularization parameter.
- Parameters:
alpha (float, optional) – If given, this regularization parameter is set. Otherwise, the next parameter from the internal iterator is used.
- Returns:
False, if a new regularization parameter was set, True if the iterator is exhausted.
- Return type:
bool