acqo() now raises an error when
terminator or callbacks are combined with a
dictionary key as optimizer, because these arguments were
silently discarded before.AcqOptimizer now respects
warmstart_size when warm-starting a single-objective
acquisition function on a multi-objective archive, instead of evaluating
the entire non-dominated front.AcqOptimizer and its subclasses gained
$label and $man fields, so that
as.data.table(mlr_acqoptimizers) no longer errors.AcqOptimizer no longer attaches an
x_domain to the proposed candidates, so the archive stores
the transformed values computed by the instance instead of a stale or
untransformed x_domain, which was incorrect under a search
space transformation or after clipping out-of-bounds candidates to the
bounds.bayesopt_mpcl() now logs a warning when a
surrogate or acquisition function error is caught and a randomly sampled
point is proposed, consistent with the other loop functions.bayesopt_mpcl() no longer aborts when a batch
mixes model-based proposals and randomly sampled fallback points,
because the batch is now combined with filling missing columns.bayesopt_mpcl() and bayesopt_parego()
now advance the random interleaving counter per proposal instead of per
batch, so random interleaving also triggers for q > 1 as
documented.bayesopt_parego() now subsets the minimization
multiplier to the target columns, so the scalarization signs no longer
misalign when the codomain holds non-target columns.bayesopt_ego(), bayesopt_emo(),
bayesopt_mpcl(), bayesopt_parego(), and
bayesopt_smsego() no longer silently disable random
interleaving when the archive already contains a user-supplied initial
design and init_design_size is NULL.bayesopt_parego() no longer silently degrades to
random search when an objective is constant, because the zero-range
scaling now maps the constant objective to a constant value instead of
NaN.AcqFunctionAEI no longer errors during
$update() when the surrogate model is not a
"regr.km" model and now falls back to a noise variance of
0 as documented.AcqFunctionEHVI, AcqFunctionEHVIGH,
and AcqFunctionSmsEgo now apply the surrogate’s output
transformation to ys_front, so the front and the reference
point are compared on the same scale.AcqFunctionEHVIGH no longer prunes all
Gauss-Hermite nodes when their weights are tied, which previously made
the acquisition function identically 0 for
k = 2.AcqFunctionEHVIGH now computes the hypervolume
via the moocore package instead of emoa, which
is no longer a dependency (#186).AcqFunctionEI, AcqFunctionEILog,
AcqFunctionPI, and AcqFunctionStochasticEI now
ignore the missing outcomes of pending evaluations when determining the
best observed value, so y_best is no longer NA
on an asynchronous archive with more than one worker.AcqFunctionEIPS now correctly divides the expected
improvement by the predicted time instead of behaving like plain
expected improvement.AcqFunctionSmsEgo now accepts a
lambda below 1 during construction, consistent
with the lower bound of its constants parameter set.AcqFunctionMulti now raises an informative error
when the wrapped acquisition functions do not share the same domain
instead of failing with a cryptic type error.AcqFunctionMulti can now be deep cloned without
error and preserves the shared surrogate across the wrapped acquisition
functions.AcqFunctionStochasticCB now clears the sampled
lambda on $reset(), so a reused optimizer draws a fresh
initial lambda for each run as documented.AcqOptimizerDirect no longer supports
restarts and its restart_strategy and
max_restarts parameters have been removed, because the
deterministic NLOPT_GN_DIRECT_L algorithm ignores the
starting point, so restarts only repeated the identical search with a
smaller evaluation budget.AcqOptimizerDirect,
AcqOptimizerLbfgsb, AcqOptimizerLocalSearch,
and AcqOptimizerRandomSearch now support the
skip_already_evaluated parameter (default
TRUE) and reject an already evaluated candidate, so an
AcqOptimizerLbfgsb starting at the incumbent no longer
re-proposes and re-evaluates the same point every iteration.AcqOptimizerDirect,
AcqOptimizerLbfgsb, AcqOptimizerLocalSearch,
and AcqOptimizerRandomSearch can now be deep cloned without
error.AcqOptimizerDirect and
AcqOptimizerLbfgsb no longer expose the
minf_max parameter, which was not a valid
nloptr option and was silently ignored.AcqOptimizerDirect and
AcqOptimizerLbfgsb now accept maxeval = -1L to
deactivate the evaluation limit, as documented.AcqOptimizerDirect and
AcqOptimizerLbfgsb now raise an informative error for
non-numeric search spaces instead of failing confusingly inside
nloptr or silently degrading to random search under
catch_errors = TRUE.AcqOptimizerDirect and
AcqOptimizerLbfgsb now reset their state at
the start of each optimize() call and clear it on
reset(), so the state no longer grows
unboundedly across a Bayesian optimization loop.AcqOptimizerLbfgsb now raises a catchable
acquisition function optimizer error instead of an unrelated error when
no restart produces a valid solution, so the loop function can fall back
to a randomly sampled point.AcqOptimizerLbfgsb no longer fails when the
incumbent lies on a search space bound, which previously caused the
optimization to silently degenerate into random search.InputTrafoUnitcube now raises an informative error
for infinite bounds and maps degenerate parameters with equal lower and
upper bounds to a constant, instead of producing NaN
features that fail inside the surrogate learner.default_acqfunction() now raises an informative
error for unsupported instance classes instead of returning invisible
NULL.AcqOptimizerLocalSearch now populates its
state field with the result of the last
bbotk::local_search() call and clears it on
reset(), and no longer references the unavailable
cmaes package in its documentation.OptimizerADBO and TunerADBO now draw
the initial lambda from an exponential distribution as documented, so
that the lambda parameter has an effect.OptimizerMbo and TunerMbo now update
the surrogate a final time even when the optimization exits through a
termination error, e.g., when the archive is already at budget or the
terminator triggers between two evaluations.OptimizerMbo and OptimizerAsyncMbo no
longer abort a successful run when the final surrogate update fails with
a plain error, e.g., when the surrogate is configured with
catch_errors = FALSE.OptimizerAsyncMbo, OptimizerADBO,
TunerAsyncMbo, and TunerADBO now perform the
final surrogate update on the main process, so the user-facing surrogate
reflects all available data after optimization instead of remaining
untrained.OptimizerAsyncMbo now proposes a randomly sampled
point when the archive contains no finished evaluations yet, instead of
failing to train the surrogate on an empty archive.mlr_loop_functions$get() now raises an error when
additional arguments are passed, because loop functions are stored as
plain values and the arguments were silently discarded before.OutputTrafo$max_to_min now requires a named vector
whose names match $cols_y, so invalid assignments fail
immediately instead of causing a subscript error during the
transformation.OptimizerAsyncMbo and TunerAsyncMbo
now raise an informative error when the param_set
construction argument is not a ParamSet.OptimizerAsyncMbo no longer ignores its
id construction argument, so OptimizerADBO and
TunerADBO now correctly report the id "adbo"
instead of "async_mbo".OutputTrafoLog and
OutputTrafoStandardize no longer produce NaN
or Inf values when all observed outcomes are
identical.OutputTrafoLog$inverse_transform_posterior() no
longer errors on mean-only predictions of a response-only learner; the
mean is inverted with a variance of zero and no se column
is fabricated.OutputTrafoStandardize$inverse_transform_posterior() no
longer fabricates an all-NA se column for
mean-only predictions of a response-only learner.OutputTrafoLog no longer produces infinite values
when the range of the observed outcomes is tiny relative to their
magnitude, because the epsilon padding is now floored at the local
floating point precision.ResultAssignerSurrogate no longer errors when the
archive contains duplicated x-configurations.srlrn() now correctly unwraps a single learner
supplied in a list instead of erroring.srlrn() now implements the documented replication
of a single learner when cols_y or the archive
reference more than one target variable, returning a
SurrogateLearnerCollection with deep clones of the
learner.TunerAsyncMbo now accepts the documented
result_assigner construction argument and forwards it to
OptimizerAsyncMbo.Surrogate now provides default
output_trafo and
output_trafo_must_be_considered fields, so third-party
subclasses work with the acquisition functions without implementing
output transformation support.SurrogateLearner$predict() no longer modifies the
data.table passed as xdt by reference.SurrogateLearner and
SurrogateLearnerCollection now validate assignments to the
learner, input_trafo, and
output_trafo fields, so invalid values are rejected
immediately instead of failing later during updating or predicting.SurrogateLearner$predict() now always returns a
data.table with columns mean and
se as documented, instead of a bare named list in
configurations without an inverting output transformation.acqo() now correctly returns the
mlr_acqoptimizers dictionary when called with no arguments
(#211).AcqFunctionEILog now provides a more informative
error message when the surrogate is not configured with the correct
output transformation.AcqOptimizerDirect and
AcqOptimizerLbfgsb now correctly enforce the
max_restarts limit in all cases.SurrogateLearner and
SurrogateLearnerCollection now correctly apply their output
transformation after imputing running evaluations.Surrogate gained a $check() method
(#200).mlr_acqoptimizers dictionary with
pre-defined acquisition function optimizers
(AcqOptimizerDirect, AcqOptimizerLbfgsb,
AcqOptimizerLocalSearch,
AcqOptimizerRandomSearch).OptimizerMbo are now empirically
derived from a large-scale benchmark study, significantly improving
out-of-the-box optimization performance.Mlr3ErrorMbo* condition classes.expect_rush_reset changes related to rush
developments.InputTrafoUnitcube to work in mixed
spaces.SurrogateLearner and
SurrogateLearnerCollection.InputTrafo, OutputTrafo and the related
classes).test_AcqFunctionMulti, robustify helper and
loading.test_ResultAssignerArchive and
test_ResultAssignerSurrogate due to upcoming changes of
internal tuned values in mlr3tuning 1.3.1.OptimizerAsyncMbo,
OptimizerADBO, TunerAsyncMbo, and
TunerADBO if Redis is not available.SurrogateLearner and
SurrogateLearnerCollection to allow updating on an
asynchronous Archive.OptimizerAsyncMbo,
OptimizerADBO, TunerAsyncMbo, and
TunerADBO that allow for asynchronous optimization.AcqFunctionStochasticCB and
AcqFunctionStochasticEI that are useful for asynchronous
optimization.AcqFunctions and AcqOptimizer
gained a reset() method.AcqFunctionMulti that can wrap multiple
acquisition functions resulting in a multi-objective acquisition
function problem.AcqOptimizer.AcqFunctionEI to be adjusted by epsilon to
strengthen exploration.AcqOptimizer by setting
check_values = FALSE.OptimizerMbo and TunerMbo now update
the Surrogate a final time after the optimization process
finished to ensure that the Surrogate correctly reflects
the state of being trained on all data seen during optimization.AcqFunction domain construction now respects
Surrogate cols_x field.default_gp and default_rf
helpers that allow for construction of a default Gaussian Process and
random forest as for example used within
default_surrogate.default_gp and default_rf and therefore also
in default_surrogate). Gaussian Process now uses a
"matern5_2" kernel. Random forest now uses 100 trees. The
number of trees used in the fallback random forest was reduced to
10.mlr3tuning but import
instead.srlrn sugar function now can construct both a
SurrogateLearner and
SurrogateLearnerCollection; dropped
srlrnc.AcqFunctionSD, AcqFunctionEHVI
and AcqFunctionEHVIGH, introduced bayesopt_emo
loop function.AcqFunctions now include a $packages
field stating required packages which are checked for whether their
namespace can be loaded prior to optimization.fix_xdt_missing() helper
function.default_loopfun ->
default_loop_function, default_acqfun ->
default_acqfunction, default_acqopt ->
default_acqoptimizer.result_functions now replaced by
ResultAssigners.$model field of all
Surrogate classes to $learner.Surrogate and
AcquisitionFunction classes fields *_cols
renamed to cols_* (e.g., x_cols to
cols_x).mlr3mbo removes optimizers and tuners
from the dictionaries.default_surrogate now
respects this and gained an appropriate pipeline step.AcqFunctionAEI added.
Need a high-speed mirror for your open-source project?
Contact our mirror admin team at info@clientvps.com.
This archive is provided as a free public service to the community.
Proudly supported by infrastructure from VPSPulse , RxServers , BuyNumber , UnitVPS , OffshoreName and secure payment technology by ArionPay.