コード例 #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()
コード例 #2
0
from robo.acquisition.Entropy import Entropy
from robo.maximizers.maximize import grid_search
from robo.recommendation.incumbent import compute_incumbent

from robo import BayesianOptimization


def objective_function(x):
        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)
model = GPyModel(kernel, optimize=True, noise_variance=1e-4, num_restarts=10)
proposal_measurement = EI(model, X_upper=X_upper, X_lower=X_lower, compute_incumbent=compute_incumbent, par=0.1)
acquisition_func = Entropy(model, X_lower, X_upper, sampling_acquisition=proposal_measurement)
maximizer = grid_search

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=10)
コード例 #3
0
ファイル: mini_example.py プロジェクト: stokasto/RoBO
    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,
コード例 #4
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)
model = GPyModel(kernel, optimize=True, noise_variance=1e-4, num_restarts=10)
proposal_measurement = EI(model,
                          X_upper=X_upper,
                          X_lower=X_lower,
                          compute_incumbent=compute_incumbent,
                          par=0.1)
acquisition_func = Entropy(model,
                           X_lower,
                           X_upper,
                           sampling_acquisition=proposal_measurement)
maximizer = grid_search

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=10)
コード例 #5
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")
コード例 #6
0
    
X_lower = np.array([-5,0])
X_upper = np.array([10,15])
alpha=10
beta=10
dims = 2

model=NeuralNet(net,X_train,y_train,alpha,beta)
acquisition_func = EI(model, X_upper=X_upper, X_lower=X_lower, compute_incumbent=compute_incumbent, par=0.1)
maximizer = stochastic_local_search


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


start_time=time.time()
bo.run(num_iterations=5,X=X_train,Y=y_train)
end_time=time.time()


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