резюме

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

Синтаксис

newresults = resume(results,Name,Value)

Описание

пример

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.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.0516    1.1007


ans =

   -0.0227

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

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

свернуть все

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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