- Install uv https://docs.astral.sh/uv/getting-started/installation/ if you don't have one.
uv syncto install dependencies
uv run experiments/train.py --simulator lv --method dro_ub --epsilon 1.0 --n 1024
-
simulator:
lvstands for "Lotka–Volterra". You can also choosetm(two moons),slcp(SLCP), andik(Inverse Kinematics). -
method:
dro_ubis our method. -
epsilon: Hyperparameters for our method. Larger
epsiloncorresponds to larger Wasserstein ball, leading to more conservative inference. -
n: simulation budget (number of
$(\theta, x)$ pair to sample for training) -
Other parameters:
- seed: setting seed for experiments (sampling from simulator, weight initialisation, batch selection...)
- epochs: number of epochs to train.
- val_rate: rate of validation data.
uv run experiments/train_and_optimise_hyperparams.py --simulator lv --n 1024 --metric kl_cal --optimiser BO --eps_min 0.001 --eps_max 10 --maxiter 10
-
metric: metric used to pick
epsilon. Our propose$kl_\mathrm{cal}$ (kl_cal) is used as a default. You can use other metric such as NLPD.- We always use 90% of the data to train and 10% of the data to evaluate the metric.
- After the optimal
epsilonis identified, we train using all the data with the optimalepsilon.
-
optimiser: For efficient search of optimal
epsilon, we use Bayeisan optimisation. -
eps_min, eps_max: Lower and upper bound for
epsilonto be searched. - maxiter: Number of iteration for Bayesian optimisation.