adaptive_survey_integrator module

class AdaptiveSurveyIntegrator(*args, **kwargs)[source]

Bases: zunis.integration.flat_survey_integrator.FlatSurveySamplingIntegrator

Adaptive integrator based on a separation between survey and sampling

Survey:

Sample points and spend some time training the model

Sampling is done in two phases:

  1. Sample in the target space (input space of the integrand) using a uniform distribution

  2. Sample in the latent space and use the model to sample point in the target space

The switch between the two phases is performed based on a test method - abstract here - that checks whether the flat distribution does a better job of estimating the loss than the flat distribution

Refine:

Sample points using the trained model and evaluate the integral

Parameters
  • f (function) – the function to integrate

  • n_iter (int) – general number of iterations - ignored for survey/refine if n_iter_survey/n_inter_refine is set

  • n_iter_survey (int) – number of iterations for the survey stage

  • n_iter_refine (int) – number of iterations for the refine stage

  • n_points – general number of points per iteration - ignored for survey/refine if n_points_survey/n_points_refine is set

  • n_points_survey (int) – number of points per iteration for the survey stage

  • n_points_refine (int) – number of points per iteration for the refine stage

  • use_survey (bool) – whether to use the points generated during the survey to compute the final integral not recommended due to uncontrolled correlations in error estimates

  • verbosity (int) – verbosity level of the integrator

process_survey_step(sample, integral, integral_var, training_record, **kwargs)[source]

Process the result of a survey step

sample_survey(*, n_points=None, f=None, **kwargs)[source]

Sample points from target space distribution

abstract survey_switch_condition()[source]

Boolean valued method that checks if it is time to switch between sampling uniformly and using the model

class ForwardSurveySamplingIntegrator(*args, **kwargs)[source]

Bases: zunis.integration.adaptive_survey_integrator.AdaptiveSurveyIntegrator

Survey/Refine integrator using forward sampling for training during the survey phase.

The constructor option ForwardSurveySamplingIntegrator (default: False) allows using flat latent space sampling for the first survey step, then switching to forward sampling.

Parameters
  • f (function) – the function to integrate

  • n_iter (int) – general number of iterations - ignored for survey/refine if n_iter_survey/n_inter_refine is set

  • n_iter_survey (int) – number of iterations for the survey stage

  • n_iter_refine (int) – number of iterations for the refine stage

  • n_points – general number of points per iteration - ignored for survey/refine if n_points_survey/n_points_refine is set

  • n_points_survey (int) – number of points per iteration for the survey stage

  • n_points_refine (int) – number of points per iteration for the refine stage

  • use_survey (bool) – whether to use the points generated during the survey to compute the final integral not recommended due to uncontrolled correlations in error estimates

  • verbosity (int) – verbosity level of the integrator

survey_switch_condition()[source]

Boolean valued method that checks if it is time to switch between sampling uniformly and using the model

class VarianceAdaptiveSurveyIntegrator(*args, **kwargs)[source]

Bases: zunis.integration.adaptive_survey_integrator.AdaptiveSurveyIntegrator

Survey/Refine adaptive integrator based on the variance loss. The integrator estimates the variance of a flat integrator and switches to forward sampling if the flow performs significantly (2 sigma) better.

Parameters
  • f (function) – the function to integrate

  • n_iter (int) – general number of iterations - ignored for survey/refine if n_iter_survey/n_inter_refine is set

  • n_iter_survey (int) – number of iterations for the survey stage

  • n_iter_refine (int) – number of iterations for the refine stage

  • n_points – general number of points per iteration - ignored for survey/refine if n_points_survey/n_points_refine is set

  • n_points_survey (int) – number of points per iteration for the survey stage

  • n_points_refine (int) – number of points per iteration for the refine stage

  • use_survey (bool) – whether to use the points generated during the survey to compute the final integral not recommended due to uncontrolled correlations in error estimates

  • verbosity (int) – verbosity level of the integrator

compute_flat_variance_loss(fx)[source]

Compute the variance loss and its standard deviation assuming points are sampled from a flat distribution We clip the loss standard deviation to loss/4 so that the switching condition can be met

process_survey_step(sample, integral, integral_var, training_record, **kwargs)[source]

Process the result of a survey step

survey_switch_condition()[source]

Boolean valued method that checks if it is time to switch between sampling uniformly and using the model