mlr_acqfunctions_ei_log {mlr3mbo}R Documentation

Acquisition Function Expected Improvement on Log Scale

Description

Expected Improvement assuming that the target variable has been modeled on log scale. In general only sensible if the SurrogateLearner uses an OutputTrafoLog without inverting the posterior predictive distribution (invert_posterior = FALSE). See also the example below.

Dictionary

This AcqFunction can be instantiated via the dictionary mlr_acqfunctions or with the associated sugar function acqf():

mlr_acqfunctions$get("ei_log")
acqf("ei_log")

Parameters

Super classes

bbotk::Objective -> mlr3mbo::AcqFunction -> AcqFunctionEILog

Public fields

y_best

(numeric(1))
Best objective function value observed so far. In the case of maximization, this already includes the necessary change of sign.

Methods

Public methods

Inherited methods

Method new()

Creates a new instance of this R6 class.

Usage
AcqFunctionEILog$new(surrogate = NULL, epsilon = 0)
Arguments
surrogate

(NULL | SurrogateLearner).

epsilon

(numeric(1)).


Method update()

Update the acquisition function and set y_best.

Usage
AcqFunctionEILog$update()

Method clone()

The objects of this class are cloneable with this method.

Usage
AcqFunctionEILog$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

See Also

Other Acquisition Function: AcqFunction, mlr_acqfunctions, mlr_acqfunctions_aei, mlr_acqfunctions_cb, mlr_acqfunctions_ehvi, mlr_acqfunctions_ehvigh, mlr_acqfunctions_ei, mlr_acqfunctions_eips, mlr_acqfunctions_mean, mlr_acqfunctions_multi, mlr_acqfunctions_pi, mlr_acqfunctions_sd, mlr_acqfunctions_smsego, mlr_acqfunctions_stochastic_cb, mlr_acqfunctions_stochastic_ei

Examples

if (requireNamespace("mlr3learners") &
    requireNamespace("DiceKriging") &
    requireNamespace("rgenoud")) {
  library(bbotk)
  library(paradox)
  library(mlr3learners)
  library(data.table)

  fun = function(xs) {
    list(y = xs$x ^ 2)
  }
  domain = ps(x = p_dbl(lower = -10, upper = 10))
  codomain = ps(y = p_dbl(tags = "minimize"))
  objective = ObjectiveRFun$new(fun = fun, domain = domain, codomain = codomain)

  instance = OptimInstanceBatchSingleCrit$new(
    objective = objective,
    terminator = trm("evals", n_evals = 5))

  instance$eval_batch(data.table(x = c(-6, -5, 3, 9)))

  learner = default_gp()

  output_trafo = ot("log", invert_posterior = FALSE)

  surrogate = srlrn(learner, output_trafo = output_trafo, archive = instance$archive)

  acq_function = acqf("ei_log", surrogate = surrogate)

  acq_function$surrogate$update()
  acq_function$update()
  acq_function$eval_dt(data.table(x = c(-1, 0, 1)))
}

[Package mlr3mbo version 0.3.0 Index]