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