Emulator#
Note that some parameters are SHARED in different parts of the code.
Data collection and cache. The cache is shared between all chains and processes. These settings are independent of the sampling method.
parameter |
default |
description |
|---|---|---|
|
|
Maximum size of stored training data points. If more data points are to be added, the one with the smallest loglikelihood is removed. |
|
|
Number of minimal states in the cache before the emulator can be trained. This is an important parameter. If it is selected too small, the emulator will require too many retrainings. If too large, the initial data collection phase of OLE is unnecessary long. |
|
|
File in which the cache is going to be stored in. The path will be appended to the |
|
|
If this flag is set to |
|
|
If set |
|
|
This parameter discriminates between relevant data points for the cache or outliers. Therefore, all states in the cache with a loglikelihood smaller that the maximum loglikelihood in the cache minus |
|
|
As an alternative to the |
|
|
See |
These parameters are used to specify the PCA compression of the data.
parameter |
default |
description |
|---|---|---|
|
|
The level of compression of each observable is determined by the number of PCA components. Therefore, we increase the number of PCA components until the explained variance per bin times the bin size exceeds the parameters value. The value of |
|
|
The maximal number of PCA components. Unlikely to exceed that |
|
|
We can provide the emulator with a dictionary of data covmats (keys are the names of the observables). They can be either the full (2-dimensional) covariance matrix or the (1-dimensional) diagonal of the covariance matrix. These covariance matrices are used to normalize the data. This is particular helpful to indicate the emulator which parts of the observable have to be computed precisesly and which parts have only a low significance for the total likelihood. If no covariance matrices are provided, the normalization is performed bin wise and the code assumes the entire range of the output to be of same relevance for the total likelihood. |
|
|
If the flag is set to true, we normalize the observables by the full covariance, thus, go into the data eigenspace. This is already partly that what the PCA is supposed to do. It can be computationally expensive for high dimensional observables. |
Following parameters are used to specify the training of the GP and when it is supposed to happen. It also deals with the possible compression of data by sparse GPs.
parameter |
default |
description |
|---|---|---|
|
|
GP Kernel. Currently implemented: [RBF] In fact it is a RBF + linear + WhiteNoise kernel. |
|
|
Learning rate for ADAM optimizer when fitting the GP parameters. Note that sparse GP typically require a smaller learning rate than ordinary ones |
|
|
Proposed number of training epochs. If we see that the loss is still falling (more than |
|
|
Maximal training epochs if early stopping is not triggered. Should not be reached. Produces a warning when exceeded! If not set, it will be determined by the number of datapoints (see ‘num_epochs_per_dp’). |
|
30 |
Sets |
|
120 |
Sets |
|
|
Early stopping criterium. See |
|
|
Window for early stopping. See |
|
|
Frequency of how many new data points are added to the cache until a new compression is computed and the parameters of the GP are fitted again. Since this step is rather computational expensive we do not want to refit every step. Note however, that every new point in the cache will be utilized in the prediction even if the kernels are not refitted! |
|
|
If not set to |
|
|
If not set to |
|
|
This parameter allocates a noise budget to the sparse GP relative to the existing white noise term. A value of 2. means that the total allowed error is twice the white noise and thus the average error of the sparse GP may be as large as the white noise term. A value of 1. means that the sparse GP error is zero, so it can never be used. Reasonable values are between 1.5 and 5. |
Uncertainty qualification related to the precision criterium of the emulator and when to test it.
parameter |
default |
description |
|---|---|---|
|
|
Specify testing strategy. Possible stragies: |
|
|
Number of consective positive test calls until testing is switched off. See |
|
|
Scale of each dimension for the stochastik testing. See |
|
|
See |
|
|
See |
|
|
The emulator should only be used in the vicinity of the best-fit where it is trained. If the loglike is far away (like during burn-in) it should not be used. |
|
|
Number of samples which are drawn from the emulator to estimate the performance of the emulator. The runtime is about linear in that parameter! From this number of samples we compute the mean loglikelihood $m$ and its standard deviation $sigma_m$. In general we want the emulator to be very precise at the best fit point with its loglikelihood $b$ and less accurate for points more away. We accept the prediction of the emulator if $$sigma_m < mathrm{quality.threshold.constant} + mathrm{quality.threshold.linear}*(b-m) + mathrm{quality.threshold.quadratic} * (b-m)^2 $$ |
|
|
See |
|
|
See |
|
|
See |
|
|
During the burn-in of the MCMC the emulator should not yet deploy the high accuracy settings since it needs to wait for all cahins to leave burn-in. Thus, we deploy reduced precision settings. It will switched to high accuracy when there are |
|
|
See |
|
|
See |
|
|
See |
|
|
One way to reduce the number of performance tests is to create a sphere around each tested emulator call and whenever the emulator predicts the performance within a radius of |
Other:
parameter |
default |
description |
|---|---|---|
|
|
This will be the default directory in which all emulator related files are stored. The cache file, the emulator file, the training data and the log file. |
|
|
This is the file the current state of the emulator is stored in. This involves normalization, PCA and GP-kernel parameters. |
|
|
In this file the normalized training data are stored in by rank 0. |
|
|
If flag is set to |
|
|
List of quantities that are provided by the theory code but which should not be emulated. As a consequence the output of the veto quantities will be constant with the value the emulator was initialized with. |
|
|
Flag if we want to use ‘jax.jit’ to accelerate the emulator by just-in-time compilation. |
|
|
Using ‘jit’ gives a small overhead due to compiling the code. In the early phase when there are a lot of new data points it can be ineffcient to do that every time. Thus, we can wait for a certain number of successful emulator calls until we jit the emulator. |
|
|
Every |
Debugging. Very recommended when investigating a new problem:
parameter |
default |
description |
|---|---|---|
|
|
Path to a directory in which (if set) debugging plots are saved to. |
|
|
If set (for example |
|
|
If set to a text file, the emulator writes a log. |
|
|
Every |
|
|
If set to |
|
|
If set to |