resume

Возобновите Байесовую оптимизацию

Описание

пример

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;

Для воспроизводимости установите случайный seed и установите функцию захвата на '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.7902    3.2287


ans =

   -9.1194

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

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

  1x2 table

      x1         x2   
    _______    _______

    0.96022    0.92508


ans =

   -0.0095

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

Входные параметры

свернуть все

Байесовы результаты оптимизации в виде BayesianOptimization объект.

Аргументы name-value

Задайте дополнительные разделенные запятой пары 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 объект.

Смотрите также

|

Введенный в R2017b