Beispiel #1
0
def test_ccmaes():
    x = np.zeros(1)
    opt = CCMAESOptimizer(x, random_state=0)
    opt.init(1, 1)
    r = eval_loop(x, opt, n_evals=1000)
    assert_less(-1e-7, r.max())
    return r
def test_cmaes_no_initial_params():
    opt = CCMAESOptimizer()
    opt.init(10, 5)
    params = np.empty(10)
    opt.set_context(np.zeros(5))
    opt.get_next_parameters(params)
def test_linear_contextual_sphere():
    random_state = np.random.RandomState(0)
    n_params = 3
    n_context_dims = 2
    obj = LinearContextualSphere(random_state, n_params, n_context_dims)

    opt = CCMAESOptimizer(context_features="affine", random_state=random_state,
                          log_to_stdout=False)
    opt.init(n_params, n_context_dims)
    params = np.empty(n_params)
    for i in range(1000):
        context = random_state.rand(n_context_dims) * 2.0 - 1.0
        opt.set_context(context)
        opt.get_next_parameters(params)
        opt.set_evaluation_feedback([obj.feedback(params, context)])
    policy = opt.best_policy()
    mean_reward = evaluate(policy, obj)
    assert_greater(mean_reward, -1e-4)
def test_cmaes_diagonal_cov():
    opt = CCMAESOptimizer(covariance=np.zeros(10))
    opt.init(10, 5)
    params = np.empty(10)
    opt.set_context(np.zeros(5))
    opt.get_next_parameters(params)
def test_cmaes_dimensions_mismatch():
    opt = CCMAESOptimizer(initial_params=np.zeros(5))
    assert_raises_regexp(ValueError, "Number of dimensions", opt.init, 10, 5)
    plt.contourf(params,
                 contexts,
                 rewards,
                 cmap=plt.cm.Blues,
                 levels=np.linspace(rewards.min(), rewards.max(), 50))
    plt.setp(plt.gca(), xticks=(), yticks=(), xlim=(-5, 5), ylim=(-5, 5))


random_state = np.random.RandomState(0)
initial_params = 4.0 * np.ones(1)
n_samples_per_update = 30
variance = 0.03
context_features = "quadratic"
ccmaes = CCMAESOptimizer(initial_params=initial_params,
                         n_samples_per_update=n_samples_per_update,
                         variance=variance,
                         context_features=context_features,
                         random_state=0)
creps = CREPSOptimizer(initial_params=initial_params,
                       n_samples_per_update=n_samples_per_update,
                       train_freq=n_samples_per_update,
                       variance=variance,
                       epsilon=2.0,
                       context_features=context_features,
                       random_state=0)
opts = {"C-CMA-ES": ccmaes, "C-REPS": creps}
for opt in opts.values():
    opt.init(1, 1)
n_generations = 16
n_rows = 4