Возобновление байесовской оптимизации
возобновляет произведенную оптимизацию 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


Модель целевой функции на этот раз намного ближе к истинной функции. Лучший момент ближе к истинному оптимуму.
results - Байесовские результаты оптимизацииBayesianOptimization объектРезультаты байесовской оптимизации, указанные как BayesianOptimization объект.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
resume(results,'MaxObjectiveEvaluations',60)Можно использовать любую пару имя-значение, принятую bayesopt за исключением тех, которые начинаются с Initial. См. раздел bayesopt
Входные аргументы.
Примечание
MaxObjectiveEvaluations и MaxTime пары имя-значение означают дополнительное время или оценки, выше чисел, сохраненных в results. Так, например, количество аналитических отчетов по умолчанию равно 30 в дополнение к исходной спецификации.
Кроме того, можно использовать следующую пару имя-значение.
'VariableDescriptions' - Изменить переменнуюOptimizableVariable объектИзменить переменную, заданную как 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';newresults - Результаты оптимизацииBayesianOptimization объектРезультаты оптимизации, возвращенные как BayesianOptimization объект.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.