BayesianOptimization

Байесовы результаты оптимизации

Описание

BayesianOptimization объект содержит результаты Байесовой оптимизации. Это - выход bayesopt или подходящая функция, которая принимает OptimizeHyperparameters пара "имя-значение" такой как fitcdiscr. Кроме того, BayesianOptimization объект содержит данные для каждой итерации bayesopt к этому могут получить доступ функция построения графика или выходная функция.

Создание

Создайте BayesianOptimization объект при помощи bayesopt функционируйте или одна из следующих подходящих функций с OptimizeHyperparameters аргумент значения имени.

Свойства

развернуть все

Свойства описания задачи

Это свойство доступно только для чтения.

ObjectiveFcn аргумент используется bayesoptВ виде указателя на функцию.

  • Если вы вызываете bayesopt непосредственно, ObjectiveFcn bayesopt аргумент целевой функции.

  • Если вы вызываете подходящую функцию, содержащую 'OptimizeHyperparameters' аргумент пары "имя-значение", ObjectiveFcn указатель на функцию, который возвращает misclassification уровень для классификации или возвращает логарифм одного плюс потеря перекрестной проверки для регрессии, измеренной пятикратной перекрестной проверкой.

Типы данных: function_handle

Это свойство доступно только для чтения.

VariableDescriptions аргумент, что bayesopt используемый в виде вектора из optimizableVariable объекты.

  • Если вы вызвали bayesopt непосредственно, VariableDescriptions bayesopt аргумент описания переменной.

  • Если вы вызвали подходящую функцию с OptimizeHyperparameters пара "имя-значение", VariableDescriptions вектор из гиперпараметров.

Это свойство доступно только для чтения.

Опции, что bayesopt используемый в виде структуры.

  • Если вы вызвали bayesopt непосредственно, Options опции, используемые в bayesopt, которые являются парами "имя-значение", Смотрите bayesopt Входные параметры.

  • Если вы вызвали подходящую функцию с OptimizeHyperparameters пара "имя-значение", Options значение по умолчанию bayesopt опции, измененные HyperparameterOptimizationOptions пара "имя-значение".

Options структура только для чтения, содержащая следующие поля.

Имя опцииЗначение
AcquisitionFunctionNameИмя функции захвата. Смотрите Типы Функции Захвата.
IsObjectiveDeterministictrue означает, что целевая функция детерминирована, false в противном случае.
ExplorationRatioИспользуемый только, когда AcquisitionFunctionName 'expected-improvement-plus' или 'expected-improvement-per-second-plus'. Смотрите плюс.
  
MaxObjectiveEvaluationsПредел оценки целевой функции.
MaxTimeОграничение по времени.
  
XConstraintFcnДетерминированные ограничения на переменные. Смотрите Детерминированные Ограничения — XConstraintFcn.
ConditionalVariableFcnУсловные переменные ограничения. Смотрите Условные Ограничения — ConditionalVariableFcn.
NumCoupledConstraintsКоличество двойных ограничений. Смотрите Двойные Ограничения.
CoupledConstraintTolerancesДвойные допуски ограничения. Смотрите Двойные Ограничения.
AreCoupledConstraintsDeterministicЛогический вектор, задающий, детерминировано ли каждое двойное ограничение.
  
VerboseУровень отображения командной строки.
OutputFcnФункция вызвана после каждой итерации. Смотрите Байесовы Выходные функции Оптимизации.
SaveVariableNameИмя переменной для @assignInBase выходная функция.
SaveFileNameИмя файла для @saveToFile выходная функция.
PlotFcnФункция построения графика называется после каждой итерации. Смотрите Байесовы Функции построения графика Оптимизации
  
InitialXТочки, где bayesopt выполненный целевая функция.
InitialObjectiveЗначения целевой функции в InitialX.
InitialConstraintViolationsДвойные ограничительные значения функции в InitialX.
InitialErrorValuesОшибочные значения в InitialX.
InitialObjectiveEvaluationTimesВремена оценки целевой функции в InitialX.
InitialIterationTimesВремя для каждой итерации, включая оценку целевой функции и другие расчеты.

Типы данных: struct

Свойства решения

Это свойство доступно только для чтения.

Минимальная наблюдаемая величина целевой функции в виде действительного скаляра. Когда существуют связанные ограничения или ошибки оценки, это значение является минимумом по всем наблюдаемым точкам, которые выполнимы согласно итоговому ограничению и моделям Error.

Типы данных: double

Это свойство доступно только для чтения.

Наблюдаемая точка с минимальным значением целевой функции в виде 1- D таблица, где D количество переменных.

Типы данных: table

Это свойство доступно только для чтения.

Предполагаемое значение целевой функции в XAtMinEstimatedObjectiveВ виде действительного скаляра.

MinEstimatedObjective среднее значение апостериорного распределения итоговой объективной модели. Программное обеспечение оценивает MinEstimatedObjective значение путем передачи XAtMinEstimatedObjective к объектной функции predictObjective.

Типы данных: double

Это свойство доступно только для чтения.

Точка с минимальной верхней доверительной границей значения целевой функции среди посещаемых точек в виде 1- D таблица, где D количество переменных. Программное обеспечение использует итоговую объективную модель, чтобы найти верхние доверительные границы посещаемых точек.

XAtMinEstimatedObjective совпадает с лучшей точкой, возвращенной bestPoint функция с критерием по умолчанию ('min-visited-upper-confidence-interval').

Типы данных: table

Это свойство доступно только для чтения.

Количество оценок целевой функции в виде положительного целого числа. Это включает начальные оценки, чтобы сформировать следующую модель, а также оценку во время итераций оптимизации.

Типы данных: double

Это свойство доступно только для чтения.

Общее прошедшее время оптимизации в секундах в виде положительной скалярной величины.

Типы данных: double

Это свойство доступно только для чтения.

Следующий вопрос, чтобы оценить, если оптимизация продолжается в виде 1- D таблица, где D количество переменных.

Типы данных: table

Проследите свойства

Это свойство доступно только для чтения.

Точки, где целевая функция была выполнена в виде T- D таблица, где T количество точек оценки и D количество переменных.

Типы данных: table

Это свойство доступно только для чтения.

Значения целевой функции в виде вектор-столбца длины T, где T количество точек оценки. ObjectiveTrace содержит историю оценок целевой функции.

Типы данных: double

Это свойство доступно только для чтения.

Времена оценки целевой функции в виде вектор-столбца длины T, где T количество точек оценки. ObjectiveEvaluationTimeTrace включает время в оценку двойных ограничений, потому что целевая функция вычисляет эти ограничения.

Типы данных: double

Это свойство доступно только для чтения.

Времена итерации в виде вектор-столбца длины T, где T количество точек оценки. IterationTimeTrace включает и время оценки целевой функции и другие издержки.

Типы данных: double

Это свойство доступно только для чтения.

Двойные ограничительные значения в виде T- K массив, где T количество точек оценки и K количество двойных ограничений.

Типы данных: double

Это свойство доступно только для чтения.

Ошибочные признаки в виде вектор-столбца длины T из -1 или 1 записи, где T количество точек оценки. Каждый 1 запись указывает что целевая функция или возвращенный NaN с ошибками на соответствующей точке в XTrace. Каждый -1 запись указывает, что значение целевой функции было вычислено.

Типы данных: double

Это свойство доступно только для чтения.

Признаки выполнимости в виде логического вектор-столбца длины T, где T количество точек оценки. Каждый 1 запись указывает, что итоговая ограничительная модель предсказывает выполнимость в соответствующей точке в XTrace.

Типы данных: логический

Это свойство доступно только для чтения.

Вероятность, что точка оценки выполнима в виде вектор-столбца длины T, где T количество точек оценки. Вероятности прибывают из итоговой ограничительной модели, включая ошибочную ограничительную модель, на соответствующих точках в XTrace.

Типы данных: double

Это свойство доступно только для чтения.

Какая оценка дала минимальную выполнимую цель в виде вектор-столбца целочисленных индексов длины T, где T количество точек оценки. Выполнимость определяется относительно ограничительных моделей, которые существовали в каждой итерации, включая ошибочную ограничительную модель.

Типы данных: double

Это свойство доступно только для чтения.

Минимальная наблюдаемая цель в виде вектор-столбца длины T, где T количество точек оценки.

Типы данных: double

Это свойство доступно только для чтения.

Предполагаемая цель в виде вектор-столбца длины T, где T количество точек оценки. Предполагаемая цель в каждой итерации определяется относительно объективной модели в той итерации. В каждой итерации программное обеспечение использует объектную функцию predictObjective оценить значение целевой функции в точке с минимальной верхней доверительной границей целевой функции среди посещаемых точек.

Типы данных: double

Это свойство доступно только для чтения.

Вспомогательные данные из целевой функции в виде массива ячеек длины T, где T количество точек оценки. Каждой записью в массиве ячеек является UserData возвращенный в третьем выходе целевой функции.

Типы данных: cell

Функции объекта

bestPointЛучше всего укажите в Байесовой оптимизации согласно критерию
plotПостройте Байесовы результаты оптимизации
predictConstraintsПредскажите связанные нарушения ограничений в наборе точек
predictErrorПредскажите ошибочное значение в наборе точек
predictObjectiveПредскажите целевую функцию при наборе точек
predictObjectiveEvaluationTimeПредскажите время выполнения целевой функции в наборе точек
resumeВозобновите Байесовую оптимизацию

Примеры

свернуть все

В этом примере показано, как создать BayesianOptimization объект при помощи bayesopt минимизировать потерю перекрестной проверки.

Оптимизируйте гиперпараметры классификатора KNN для ionosphere данные, то есть, находят гиперпараметры KNN, которые минимизируют потерю перекрестной проверки. Имейте bayesopt минимизируйте по следующим гиперпараметрам:

  • Размеры самого близкого окружения от 1 до 30

  • Расстояние функционирует 'chebychev', 'euclidean', и 'minkowski'.

Для воспроизводимости установите случайный seed, установите раздел и установите AcquisitionFunctionName опция к 'expected-improvement-plus'. Чтобы подавить итеративное отображение, установите 'Verbose' к 0. Передайте раздел c и подходящие данные X и Y к целевой функции fun путем создания fun как анонимная функция, которая включает эти данные. Смотрите Функции Параметризации.

load ionosphere
rng default
num = optimizableVariable('n',[1,30],'Type','integer');
dst = optimizableVariable('dst',{'chebychev','euclidean','minkowski'},'Type','categorical');
c = cvpartition(351,'Kfold',5);
fun = @(x)kfoldLoss(fitcknn(X,Y,'CVPartition',c,'NumNeighbors',x.n,...
    'Distance',char(x.dst),'NSMethod','exhaustive'));
results = bayesopt(fun,[num,dst],'Verbose',0,...
    'AcquisitionFunctionName','expected-improvement-plus')

Figure contains an axes object. The axes object with title Objective function model contains 5 objects of type line, surface, contour. These objects represent Observed points, Model mean, Next point, Model minimum feasible.

Figure contains an axes object. The axes object with title Min objective vs. Number of function evaluations contains 2 objects of type line. These objects represent Min observed objective, Estimated min objective.

results = 
  BayesianOptimization with properties:

                      ObjectiveFcn: [function_handle]
              VariableDescriptions: [1x2 optimizableVariable]
                           Options: [1x1 struct]
                      MinObjective: 0.1197
                   XAtMinObjective: [1x2 table]
             MinEstimatedObjective: 0.1213
          XAtMinEstimatedObjective: [1x2 table]
           NumObjectiveEvaluations: 30
                  TotalElapsedTime: 27.7297
                         NextPoint: [1x2 table]
                            XTrace: [30x2 table]
                    ObjectiveTrace: [30x1 double]
                  ConstraintsTrace: []
                     UserDataTrace: {30x1 cell}
      ObjectiveEvaluationTimeTrace: [30x1 double]
                IterationTimeTrace: [30x1 double]
                        ErrorTrace: [30x1 double]
                  FeasibilityTrace: [30x1 logical]
       FeasibilityProbabilityTrace: [30x1 double]
               IndexOfMinimumTrace: [30x1 double]
             ObjectiveMinimumTrace: [30x1 double]
    EstimatedObjectiveMinimumTrace: [30x1 double]

В этом примере показано, как минимизировать потерю перекрестной проверки в ionosphere данные с помощью Байесовой оптимизации классификатора SVM.

Загрузите данные.

load ionosphere

Оптимизируйте классификацию с помощью 'auto' параметры.

rng default % For reproducibility
Mdl = fitcsvm(X,Y,'OptimizeHyperparameters','auto')
|=====================================================================================================|
| Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   | BoxConstraint|  KernelScale |
|      | result |             | runtime     | (observed)  | (estim.)    |              |              |
|=====================================================================================================|
|    1 | Best   |     0.21937 |      15.886 |     0.21937 |     0.21937 |       64.836 |    0.0015729 |
|    2 | Accept |     0.35897 |     0.12347 |     0.21937 |     0.22807 |     0.036335 |       5.5755 |
|    3 | Best   |     0.13105 |      6.5879 |     0.13105 |     0.14149 |    0.0022147 |    0.0023957 |
|    4 | Accept |     0.35897 |     0.12384 |     0.13105 |     0.13108 |       5.1259 |        98.62 |
|    5 | Best   |     0.12536 |     0.15415 |     0.12536 |     0.12538 |    0.0010294 |     0.037239 |
|    6 | Accept |     0.12536 |     0.16645 |     0.12536 |     0.12438 |    0.0010315 |     0.015779 |
|    7 | Accept |     0.13105 |     0.97638 |     0.12536 |     0.12423 |     0.025736 |     0.022239 |
|    8 | Accept |     0.21083 |      16.622 |     0.12536 |     0.12335 |       925.73 |     0.075659 |
|    9 | Accept |     0.12536 |     0.15273 |     0.12536 |      0.1251 |    0.0010018 |     0.019314 |
|   10 | Accept |      0.1396 |     0.25382 |     0.12536 |     0.12441 |     0.001062 |    0.0084719 |
|   11 | Best   |     0.11681 |     0.16627 |     0.11681 |     0.12048 |     0.001015 |     0.025891 |
|   12 | Accept |     0.12536 |     0.16888 |     0.11681 |     0.12209 |     0.001004 |     0.027453 |
|   13 | Accept |     0.12821 |     0.12926 |     0.11681 |     0.12344 |    0.0010094 |     0.028817 |
|   14 | Accept |     0.33618 |     0.13133 |     0.11681 |     0.12271 |    0.0010009 |      0.51387 |
|   15 | Accept |     0.35897 |     0.10759 |     0.11681 |     0.12274 |        2.252 |       631.08 |
|   16 | Accept |     0.35897 |    0.099959 |     0.11681 |     0.12274 |    0.0010846 |       30.355 |
|   17 | Accept |     0.35897 |    0.099714 |     0.11681 |     0.12273 |    0.0010073 |       214.99 |
|   18 | Accept |     0.35897 |    0.096005 |     0.11681 |     0.12273 |    0.0010147 |       997.96 |
|   19 | Accept |     0.14245 |     0.10556 |     0.11681 |     0.12347 |    0.0010042 |      0.13018 |
|   20 | Accept |      0.1339 |     0.12193 |     0.11681 |     0.12308 |    0.0010072 |     0.071288 |
|=====================================================================================================|
| Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   | BoxConstraint|  KernelScale |
|      | result |             | runtime     | (observed)  | (estim.)    |              |              |
|=====================================================================================================|
|   21 | Accept |     0.12536 |     0.15268 |     0.11681 |     0.12354 |    0.0010259 |     0.022573 |
|   22 | Accept |     0.12536 |     0.15333 |     0.11681 |     0.12378 |    0.0010247 |     0.021897 |
|   23 | Accept |     0.33903 |     0.10192 |     0.11681 |     0.12377 |       1.2002 |       17.967 |
|   24 | Accept |     0.35897 |     0.12071 |     0.11681 |     0.12379 |    0.0010021 |       1.8669 |
|   25 | Accept |     0.35897 |      0.1189 |     0.11681 |     0.12377 |    0.0010005 |       11.471 |
|   26 | Accept |     0.35897 |     0.10255 |     0.11681 |     0.12375 |       894.24 |       999.76 |
|   27 | Accept |     0.14245 |     0.10639 |     0.11681 |     0.12384 |       997.61 |       272.78 |
|   28 | Accept |     0.14245 |     0.10966 |     0.11681 |     0.12384 |       999.84 |       146.94 |
|   29 | Accept |     0.12821 |     0.12809 |     0.11681 |     0.12384 |    0.0073473 |     0.086267 |
|   30 | Accept |     0.12251 |     0.16313 |     0.11681 |     0.12386 |    0.0070132 |      0.04651 |

Figure contains an axes object. The axes object with title Min objective vs. Number of function evaluations contains 2 objects of type line. These objects represent Min observed objective, Estimated min objective.

Figure contains an axes object. The axes object with title Objective function model contains 5 objects of type line, surface, contour. These objects represent Observed points, Model mean, Next point, Model minimum feasible.

__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 65.6535 seconds
Total objective function evaluation time: 43.5305

Best observed feasible point:
    BoxConstraint    KernelScale
    _____________    ___________

      0.001015        0.025891  

Observed objective function value = 0.11681
Estimated objective function value = 0.12386
Function evaluation time = 0.16627

Best estimated feasible point (according to models):
    BoxConstraint    KernelScale
    _____________    ___________

      0.001015        0.025891  

Estimated objective function value = 0.12386
Estimated function evaluation time = 0.15191
Mdl = 
  ClassificationSVM
                         ResponseName: 'Y'
                CategoricalPredictors: []
                           ClassNames: {'b'  'g'}
                       ScoreTransform: 'none'
                      NumObservations: 351
    HyperparameterOptimizationResults: [1x1 BayesianOptimization]
                                Alpha: [100x1 double]
                                 Bias: -4.5641
                     KernelParameters: [1x1 struct]
                       BoxConstraints: [351x1 double]
                      ConvergenceInfo: [1x1 struct]
                      IsSupportVector: [351x1 logical]
                               Solver: 'SMO'


  Properties, Methods

Подгонка достигла приблизительно 12%-й потери для 5-кратной перекрестной проверки по умолчанию.

Исследуйте BayesianOptimization объект, который возвращен в HyperparameterOptimizationResults свойство возвращенной модели.

disp(Mdl.HyperparameterOptimizationResults)
  BayesianOptimization with properties:

                      ObjectiveFcn: @createObjFcn/inMemoryObjFcn
              VariableDescriptions: [5x1 optimizableVariable]
                           Options: [1x1 struct]
                      MinObjective: 0.1168
                   XAtMinObjective: [1x2 table]
             MinEstimatedObjective: 0.1239
          XAtMinEstimatedObjective: [1x2 table]
           NumObjectiveEvaluations: 30
                  TotalElapsedTime: 65.6535
                         NextPoint: [1x2 table]
                            XTrace: [30x2 table]
                    ObjectiveTrace: [30x1 double]
                  ConstraintsTrace: []
                     UserDataTrace: {30x1 cell}
      ObjectiveEvaluationTimeTrace: [30x1 double]
                IterationTimeTrace: [30x1 double]
                        ErrorTrace: [30x1 double]
                  FeasibilityTrace: [30x1 logical]
       FeasibilityProbabilityTrace: [30x1 double]
               IndexOfMinimumTrace: [30x1 double]
             ObjectiveMinimumTrace: [30x1 double]
    EstimatedObjectiveMinimumTrace: [30x1 double]
Введенный в R2017b