Предсказать значение ошибки в наборе точек
Этот пример показывает оптимизацию функции, которая выдает ошибку, когда точка оценки имеет норму больше 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 итераций, чтобы модель ошибки стала хорошо обученной. Для воспроизводимости установите случайный seed и используйте '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
-by- 1
векторСреднее ограничение, связанное с ошибкой, возвращается как N
-by- 1
вектор, где N
количество строк XTable
. Среднее значение является апостериорным средним ограничением, связанным с ошибкой, в точках в XTable
.
bayesopt
считает вашу целевую функцию возвращать ошибку, если она возвращает что-либо, кроме конечного действительного скаляра. См. «Ошибки целевой функции».
sigma
- Стандартное отклонение ограничения, связанного с ошибкойN
-by- 1
векторСтандартное отклонение ограничения, связанного с ошибкой, возвращаемое как N
-by- 1
вектор, где N
количество строк XTable
.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.