exponenta event banner

резюме

Возобновление байесовской оптимизации

Описание

пример

newresults = resume(results,Name,Value) возобновляет произведенную оптимизацию results с дополнительными опциями, указанными одним или несколькими Name,Value аргументы пары.

Примеры

свернуть все

В этом примере показано, как возобновить байесовскую оптимизацию. Оптимизация предназначена для детерминированной функции, известной как функция Розенброка, которая является известным тестовым случаем нелинейной оптимизации. Функция имеет глобальное минимальное значение 0 в точке [1,1].

Создание двух вещественных переменных, ограниченных -5 и 5.

x1 = optimizableVariable('x1',[-5,5]);
x2 = optimizableVariable('x2',[-5,5]);
vars = [x1,x2];

Создайте целевую функцию.

function f = rosenbrocks(x)

f = 100*(x.x2 - x.x1^2)^2 + (1 - x.x1)^2;

fun = @rosenbrocks;

Для воспроизводимости задайте случайное начальное число и задайте для функции обнаружения значение 'expected-improvement-plus' в оптимизации.

rng default
results = bayesopt(fun,vars,'Verbose',0,...
    'AcquisitionFunctionName','expected-improvement-plus');

Просмотрите наилучшую найденную точку и наилучшую смоделированную цель.

results.XAtMinObjective
results.MinEstimatedObjective
ans =

  1x2 table

      x1        x2  
    ______    ______

    1.2421    1.5299


ans =

   -9.5402

Наилучшая точка несколько близка к оптимальной, но функциональная модель неточна. Возобновите оптимизацию еще для 30 точек (всего 60 точек), на этот раз сообщив оптимизатору, что целевая функция детерминирована.

newresults = resume(results,'IsObjectiveDeterministic',true,'MaxObjectiveEvaluations',30);
newresults.XAtMinObjective
newresults.MinEstimatedObjective
ans =

  1x2 table

      x1        x2  
    ______    ______

    1.0473    1.1002


ans =

   -0.0066

Модель целевой функции на этот раз намного ближе к истинной функции. Лучший момент ближе к истинному оптимуму.

Входные аргументы

свернуть все

Результаты байесовской оптимизации, указанные как BayesianOptimization объект.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: resume(results,'MaxObjectiveEvaluations',60)

Можно использовать любую пару имя-значение, принятую bayesopt за исключением тех, которые начинаются с Initial. См. раздел bayesopt Входные аргументы.

Примечание

MaxObjectiveEvaluations и MaxTime пары имя-значение означают дополнительное время или оценки, выше чисел, сохраненных в results. Так, например, количество аналитических отчетов по умолчанию равно 30 в дополнение к исходной спецификации.

Кроме того, можно использовать следующую пару имя-значение.

Изменить переменную, заданную как OptimizableVariable объект.

При оптимизации можно изменить только следующие свойства переменной.

  • Range вещественных или целых переменных. Например,

    xvar = optimizableVariable('x',[-10,10]);
    % Modify the range:
    xvar.Range = [1,5];
  • Type между 'integer' и 'real'. Например,

    xvar.Type = 'integer';
  • Transform вещественных или целых переменных между 'log' и 'none'. Например,

    xvar.Transform = 'log';

Выходные аргументы

свернуть все

Результаты оптимизации, возвращенные как BayesianOptimization объект.

См. также

|

Представлен в R2016b