# adaptive_sampling

(Experimental) Adaptively refine a Gaussian process surrogate

**Topics**

uncertainty_quantification

**Specification**

*Alias:*nond_adaptive_sampling*Arguments:*None

**Child Keywords:**

Required/Optional |
Description of Group |
Dakota Keyword |
Dakota Keyword Description |
---|---|---|---|

Optional |
Initial number of samples for sampling-based methods |
||

Optional |
Seed of the random number generator |
||

Optional |
Number of samples at which to evaluate an emulator (surrogate) |
||

Optional |
(Experimental) Specify the |
||

Optional |
(Experimental) How to select new points |
||

Optional |
Number of samples used to refine a probabilty estimate or sampling design. |
||

Optional |
File containing points you wish to use to build a surrogate |
||

Optional |
Output file for surrogate model value evaluations |
||

Optional |
(Experimental) Hook for algorithm-specific adaptive sampling options |
||

Optional |
Number of iterations allowed for optimizers and adaptive UQ methods |
||

Optional |
Values at which to estimate desired statistics for each response |
||

Optional |
Specify probability levels at which to estimate the corresponding response value |
||

Optional |
Specify generalized relability levels at which to estimate the corresponding response value |
||

Optional |
Selection of cumulative or complementary cumulative functions |
||

Optional |
Selection of a random number generator |
||

Optional |
Identifier for model block to be used by a method |

**Description**

This is an experimental capability that is not ready for production use at this point. It was part of an investigation into computational topology-based approaches to feature identification and surrogate refinement.

The goal in performing adaptive sampling is to construct a surrogate model that can be used as an accurate predictor to some expensive simulation, thus it is to one’s advantage to build a surrogate that minimizes the error over the entire domain of interest using as little data as possible from the expensive simulation. The adaptive part alludes to the fact that the surrogate will be refined by focusing samples of the expensive simulation on particular areas of interest rather than rely on random selection or standard space-filling techniques.

At a high-level, the adaptive sampling pipeline is a four-step process:

Evaluate the expensive simulation (referred to as the true model) at initial sample point

Fit a surrogate model

Create a candidate set and score based on information from surrogate

Select a candidate point to evaluate the true model

Loop until done

In terms of the Dakota implementation, the adaptive sampling method currently uses Latin Hypercube sampling (LHS) to generate the initial points in Step 1 above. For Step 2, we use a Gaussian process model.

The default behavior is to add one point at a time. At each iteration (e.g. each loop of Steps 2-4 above), a Latin Hypercube sample is generated (a new one, different from the initial sample) and the surrogate model is evaluated at this points. These are the candidate points that are then evaluated according to the fitness metric. The number of candidates used in practice should be high enough to fill most of the input domain: we recommend at least hundreds of points for a low-dimensional problem. All of the candidates (samples on the emulator) are given a score and then the highest-scoring candidate is selected to be evaluated on the true model.

The adaptive sampling method also can generate batches of points
to add at a time using the `batch_selection`

and `batch_size`

keywords.