Прогнозирование значения ошибки в наборе точек
В этом примере показана оптимизация функции, которая выдает ошибку, когда точка вычисления имеет норму, превышающую 2. Модель ошибок для целевой функции распознает это поведение.
Создать переменные с именем x1 и x2 которые находятся в диапазоне от -5 кому 5.
var1 = optimizableVariable('x1',[-5,5]); var2 = optimizableVariable('x2',[-5,5]); vars = [var1,var2];
Следующая целевая функция выдает ошибку, когда норма x = [x1,x2] превышает 2:
function f = makeanerror(x)
f = x.x1 - x.x2 - sqrt(4-x.x1^2-x.x2^2);
fun = @makeanerror;
Постройте график модели ошибки и минимальной цели по мере оптимизации. Оптимизируйте для 60 итераций, чтобы модель ошибок стала хорошо обученной. Для воспроизводимости задайте случайное начальное число и используйте 'expected-improvement-plus' функция приобретения.
rng default results = bayesopt(fun,vars,'Verbose',0,'MaxObjectiveEvaluations',60,... 'AcquisitionFunctionName','expected-improvement-plus',... 'PlotFcn',{@plotMinObjective,@plotConstraintModels});



Спрогнозировать ошибку в точках на линии x1 = x2. Если бы модель ошибки была идеальной, она имела бы значение -1 в каждой точке, где норма x не более 2, и стоимость 1 во всех остальных моментах.
x1 = (-5:0.5:5)'; x2 = x1; XTable = table(x1,x2); error = predictError(results,XTable); normx = sqrt(x1.^2 + x2.^2); [XTable,table(normx,error)]
ans =
21x4 table
x1 x2 normx error
____ ____ _______ _________
-5 -5 7.0711 0.94663
-4.5 -4.5 6.364 0.97396
-4 -4 5.6569 0.99125
-3.5 -3.5 4.9497 1.0033
-3 -3 4.2426 1.0018
-2.5 -2.5 3.5355 0.99627
-2 -2 2.8284 1.0043
-1.5 -1.5 2.1213 0.89886
-1 -1 1.4142 0.4746
-0.5 -0.5 0.70711 0.0042389
0 0 0 -0.16004
0.5 0.5 0.70711 -0.012397
1 1 1.4142 0.30187
1.5 1.5 2.1213 0.88588
2 2 2.8284 1.0872
2.5 2.5 3.5355 0.997
3 3 4.2426 0.99861
3.5 3.5 4.9497 0.98894
4 4 5.6569 0.98941
4.5 4.5 6.364 0.98956
5 5 7.0711 0.95549
results - Байесовские результаты оптимизацииBayesianOptimization объектРезультаты байесовской оптимизации, указанные как BayesianOptimization объект.
XTable - Точки прогнозированияТочки прогнозирования, указанные как таблица со столбцами D, где D - количество переменных в задаче. Функция выполняет свои прогнозы по этим точкам.
Типы данных: table
error - Среднее значение ограничения, связанного с ошибкойNоколо-1 векторСреднее значение ограничения, связанного с ошибкой, возвращаемое как Nоколо-1 вектор, где N - количество строк XTable. Среднее - это заднее среднее ограничения, связанного с ошибкой, в точках в XTable.
bayesopt считает, что ваша целевая функция возвращает ошибку, если она возвращает что-либо, кроме конечного вещественного скаляра. См. раздел Ошибки целевой функции.
sigma - Стандартное отклонение ограничения, связанного с ошибкойNоколо-1 векторСтандартное отклонение ограничения, связанного с ошибкой, возвращаемое как Nоколо-1 вектор, где N - количество строк XTable.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.