Esempio n. 1
0
        return  np.sin(3 * x) * 4 * (x - 1) * (x + 2)

X_lower = np.array([0])
X_upper = np.array([6])

dims = 1

kernel = GPy.kern.Matern52(input_dim=dims, lengthscale=0.01)
model = GPyModel(kernel, optimize=True, noise_variance=1e-8, num_restarts=10)
acquisition_func = EI(model, X_upper=X_upper, X_lower=X_lower, compute_incumbent=compute_incumbent, par=0.1)
maximizer = DIRECT

bo = BayesianOptimization(acquisition_fkt=acquisition_func,
                          model=model,
                          maximize_fkt=maximizer,
                          X_lower=X_lower,
                          X_upper=X_upper,
                          dims=dims,
                          objective_fkt=objective_function)

bo.run(num_iterations=5)

X, Y = bo.get_observations()
X = X[:-1]
Y = Y[:-1]
model = bo.get_model()

f, (ax1, ax2) = plt.subplots(2, sharex=True)
ax1 = plot_model(model, X_lower, X_upper, ax1)
ax1 = plot_objective_function(objective_function, X_lower, X_upper, X, Y, ax1)
ax1.legend()
Esempio n. 2
0
kernel = GPy.kern.RBF(input_dim=dims)
kernel = GPy.kern.Matern52(input_dim=dims)
maximize_fkt = grid_search
model = GPyModel(kernel, optimize=True, noise_variance=1e-4, num_restarts=10)

# entropy = Entropy(model, X_upper= X_upper, X_lower=X_lower, sampling_acquisition= LogEI, Nb=10, Np=600, loss_function = logLoss)
entropy_mc = EntropyMC(model, X_upper=X_upper, X_lower=X_lower, compute_incumbent=compute_incumbent, sampling_acquisition=LogEI, Nb=10, Np=300, Nf=3500, loss_function=logLoss)
#ei = EI(model, X_upper=X_upper, X_lower=X_lower, par=0.3)
# pi = PI(model, X_upper= X_upper, X_lower=X_lower, par =0.3)

for acquisition_fkt in [entropy_mc]:
    bo = BayesianOptimization(acquisition_fkt=acquisition_fkt,
                              model=model,
                              maximize_fkt=maximize_fkt,
                              X_lower=X_lower,
                              X_upper=X_upper,
                              dims=dims,
                              objective_fkt=objective_funktion,
                              save_dir=None)
    next_x = bo.choose_next(initial_X, initial_Y)
    print model.m
    Visualization(bo,
                  next_x,
                  X=initial_X,
                  Y=initial_Y,
                  show_acq_method=False,
                  show_obj_method=True,
                  show_model_method=True,
                  resolution=1000,
                  dest_folder="./test_output")