romtools.workflows.inverse.vi_optimization_methods#
Optimization methods and configs used by inverse VI workflows.
Classes
|
Generic Newton solver supporting diagonal or dense Hessians. |
Generic steepest-descent solver. |
|
|
|
|
|
|
|
- class romtools.workflows.inverse.vi_optimization_methods.NewtonSolver(regularization, hessian_type='diagonal')[source]#
Bases:
objectGeneric Newton solver supporting diagonal or dense Hessians.
- Parameters:
regularization (float)
hessian_type (str)
- class romtools.workflows.inverse.vi_optimization_methods.SteepestDescentSolver[source]#
Bases:
objectGeneric steepest-descent solver.
- class romtools.workflows.inverse.vi_optimization_methods.VIGradientOptimizerConfig(gradient_method: str = 'standard', gradient_norm_tolerance: float = 1e-05, max_iterations: int = 1000, max_log_std_update: float = 0.5, min_variational_std: float = 1e-06, max_variational_std: float = 1000000.0)[source]#
Bases:
object- Parameters:
gradient_method (str)
gradient_norm_tolerance (float)
max_iterations (int)
max_log_std_update (float)
min_variational_std (float)
max_variational_std (float)
- class romtools.workflows.inverse.vi_optimization_methods.VILegacyLineSearchConfig(initial_step_size: float = 0.01, max_step_size: float = inf, step_size_growth_factor: float = 1.01, step_size_decay_factor: float = 3.0, max_step_size_decrease_trys: int = 5, relaxation_parameter: float = 2.05, line_search_objective: str = 'elbo', line_search_sample_growth_factor: float = 1.0, log_std_learning_rate_factor: float = 0.1)[source]#
Bases:
object- Parameters:
initial_step_size (float)
max_step_size (float)
step_size_growth_factor (float)
step_size_decay_factor (float)
max_step_size_decrease_trys (int)
relaxation_parameter (float)
line_search_objective (str)
line_search_sample_growth_factor (float)
log_std_learning_rate_factor (float)
- class romtools.workflows.inverse.vi_optimization_methods.VINewtonOptimizerConfig(gradient_norm_tolerance: float = 5e-05, max_iterations: int = 1000, max_log_std_update: float = 0.5, min_variational_std: float = 1e-08, max_variational_std: float = 1000000.0, newton_metric: str = 'standard', newton_regularization: float = 0.01, newton_hessian_type: str = 'diagonal')[source]#
Bases:
object- Parameters:
gradient_norm_tolerance (float)
max_iterations (int)
max_log_std_update (float)
min_variational_std (float)
max_variational_std (float)
newton_metric (str)
newton_regularization (float)
newton_hessian_type (str)
- class romtools.workflows.inverse.vi_optimization_methods.VIStochasticNonmonotoneLineSearchConfig(initial_step_size: float = 0.01, max_step_size: float = inf, step_size_growth_factor: float = 1.05, step_size_decay_factor: float = 2.0, max_step_size_decrease_trys: int = 5, relaxation_parameter: float = 3.05, line_search_objective: str = 'elbo', line_search_nonmonotone_window: int = 5, line_search_armijo_coefficient: float = 1e-06, line_search_uncertainty_sigma: float = 4.0, line_search_sample_growth_factor: float = 1.0, log_std_learning_rate_factor: float = 1.0)[source]#
Bases:
object- Parameters:
initial_step_size (float)
max_step_size (float)
step_size_growth_factor (float)
step_size_decay_factor (float)
max_step_size_decrease_trys (int)
relaxation_parameter (float)
line_search_objective (str)
line_search_nonmonotone_window (int)
line_search_armijo_coefficient (float)
line_search_uncertainty_sigma (float)
line_search_sample_growth_factor (float)
log_std_learning_rate_factor (float)