romtools.workflows.inverse.vi_optimization_methods#

Optimization methods and configs used by inverse VI workflows.

Classes

NewtonSolver(regularization[, hessian_type])

Generic Newton solver supporting diagonal or dense Hessians.

SteepestDescentSolver()

Generic steepest-descent solver.

VIGradientOptimizerConfig([gradient_method, ...])

VILegacyLineSearchConfig([...])

VINewtonOptimizerConfig([...])

VIStochasticNonmonotoneLineSearchConfig([...])

class romtools.workflows.inverse.vi_optimization_methods.NewtonSolver(regularization, hessian_type='diagonal')[source]#

Bases: object

Generic Newton solver supporting diagonal or dense Hessians.

Parameters:
  • regularization (float)

  • hessian_type (str)

class romtools.workflows.inverse.vi_optimization_methods.SteepestDescentSolver[source]#

Bases: object

Generic 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)