This package implements a Bayesian Optimization procedure based on Gaussian Processes to efficiently determine excursion sets (or equivalently iso-surfaces) of one or many expensive black-box functions.
Install via pip install excursion==0.0.1a0
.
To estimate excursion sets for N_FUNCS=2
functions simultaneously run:
for index in range(N_UPDATES):
# construct an estimate for each of the functions
gps = [excursion.get_gp(X,y_list[i]) for i in range(N_FUNCS)]
# determine new point(s) at which to evaluate
newx, acqvals = excursion.optimize.gridsearch(gps, X, scandetails)
# evaluate each black-box function
newys_list = [expensive_functions[i](np.asarray([newx])) for i in range(N_FUNCS)]
# update data
for i,newys in enumerate(newys_list):
y_list[i] = np.concatenate([y_list[i],newys])
X = np.concatenate([X,np.array([newx])])
In this example, modeled after typical exclusion contours of high-energy physics searches, we are insterested in estimating two excursion sets
- the excluded set of points -- theories of physics incompatible with the data
- the non-excluded set of points -- theories that are still viable.
Typically two simultaneous labels can be assigned, the expected and observed status of a given theory. The label can be computed through computationally expensive Monte Carlo simulation. Points to be simulated are therefore picked to most efficiently estimate both the expected and observed excursion sets.
- 4th Reinterpretation Workshop Slides
- Lukas Heinrich, CERN
- Gilles Louppe, U Liege
- Kyle Cranmer, NYU