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.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 Входные параметры.

Примечание

The 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