Возобновите байесовскую оптимизацию
возобновляет оптимизацию, которая произвела 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
Модель целевой функции намного ближе к истинной функции на этот раз. Лучшая точка ближе к истинному оптимуму.
results
- Результаты байесовской оптимизацииBayesianOptimization
объектБайесовские результаты оптимизации, заданная как BayesianOptimization
объект.
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
resume(results,'MaxObjectiveEvaluations',60)
Вы можете использовать любую пару "имя-значение", принятую bayesopt
кроме тех, которые начинаются с Initial
. См. bayesopt
Входные параметры.
Примечание
The 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.