BayesianOptimization

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

Описание

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

Создание

Создайте BayesianOptimization использование объекта bayesopt функция или функция аппроксимации с OptimizeHyperparameters Пара "имя-значение".

Свойства

расширить все

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

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

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

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

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

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

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

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

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

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

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

Опции, которые bayesopt используется, возвращается как структура.

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

  • Если вы вызвали функцию fit с 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

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

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

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

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

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

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

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

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

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

MinEstimatedObjective является тем же самым, что и CriterionValue результат bestPoint с критерием по умолчанию.

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

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

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

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

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

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

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

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

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

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

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

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

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

Свойства трассировки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Типы данных: 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. The axes 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. The axes 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: 85.9010
                         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.20513 |      21.603 |     0.20513 |     0.20513 |       64.836 |    0.0015729 |
|    2 | Accept |     0.35897 |     0.39269 |     0.20513 |     0.21471 |     0.036335 |       5.5755 |
|    3 | Best   |     0.13105 |      11.882 |     0.13105 |     0.14133 |    0.0022147 |    0.0023957 |
|    4 | Accept |     0.35897 |     0.23727 |     0.13105 |     0.13109 |       5.1259 |        98.62 |
|    5 | Best   |     0.12536 |     0.85649 |     0.12536 |     0.12538 |    0.0010035 |     0.022328 |
|    6 | Accept |     0.13105 |      0.5998 |     0.12536 |     0.12624 |    0.0010683 |     0.010111 |
|    7 | Accept |      0.1339 |     0.74139 |     0.12536 |     0.12546 |    0.0010422 |    0.0092339 |
|    8 | Accept |     0.13105 |      8.3916 |     0.12536 |     0.12545 |     0.073559 |     0.013649 |
|    9 | Accept |     0.12536 |     0.36602 |     0.12536 |     0.12536 |     0.004201 |     0.036641 |
|   10 | Accept |     0.12536 |     0.26415 |     0.12536 |      0.1251 |    0.0010019 |     0.048774 |
|   11 | Accept |     0.12821 |      0.4705 |     0.12536 |     0.12586 |    0.0010389 |     0.032236 |
|   12 | Accept |     0.12536 |     0.33724 |     0.12536 |     0.12485 |    0.0088035 |     0.050804 |
|   13 | Accept |     0.13105 |     0.31094 |     0.12536 |     0.12627 |     0.010612 |     0.039027 |
|   14 | Best   |     0.12251 |     0.32727 |     0.12251 |     0.12434 |    0.0010188 |     0.054959 |
|   15 | Accept |     0.12251 |     0.50242 |     0.12251 |     0.12341 |    0.0010193 |     0.060797 |
|   16 | Accept |     0.18234 |      27.658 |     0.12251 |     0.12339 |       982.41 |     0.061539 |
|   17 | Accept |     0.12536 |     0.23811 |     0.12251 |     0.12387 |    0.0011921 |     0.068996 |
|   18 | Accept |      0.1339 |     0.14245 |     0.12251 |      0.1238 |     0.001054 |     0.090485 |
|   19 | Accept |     0.12536 |     0.23321 |     0.12251 |     0.12369 |    0.0010318 |     0.048155 |
|   20 | Accept |     0.14245 |     0.16127 |     0.12251 |     0.12351 |    0.0033218 |      0.48658 |
|=====================================================================================================|
| Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   | BoxConstraint|  KernelScale |
|      | result |             | runtime     | (observed)  | (estim.)    |              |              |
|=====================================================================================================|
|   21 | Accept |      0.1396 |      0.1984 |     0.12251 |     0.12359 |    0.0011213 |      0.26917 |
|   22 | Accept |      0.1339 |     0.19936 |     0.12251 |     0.12362 |     0.090154 |      0.31906 |
|   23 | Accept |     0.35897 |     0.12703 |     0.12251 |     0.12365 |       4.7175 |       567.41 |
|   24 | Accept |     0.35897 |      0.1614 |     0.12251 |     0.12374 |       4.4477 |       998.29 |
|   25 | Accept |     0.13675 |     0.10585 |     0.12251 |     0.12336 |     0.026541 |       1.3348 |
|   26 | Accept |     0.12251 |     0.17536 |     0.12251 |     0.12337 |      0.22207 |      0.89524 |
|   27 | Accept |     0.12536 |     0.23248 |     0.12251 |     0.12338 |       3.4035 |       1.0021 |
|   28 | Accept |     0.12251 |     0.38345 |     0.12251 |     0.12338 |       1.7753 |      0.75668 |
|   29 | Accept |     0.12251 |     0.17042 |     0.12251 |     0.12244 |      0.40018 |      0.85004 |
|   30 | Accept |     0.12536 |     0.25447 |     0.12251 |     0.12311 |      0.53182 |      0.86058 |

Figure contains an axes. The axes 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. The axes 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: 153.2006 seconds
Total objective function evaluation time: 77.7245

Best observed feasible point:
    BoxConstraint    KernelScale
    _____________    ___________

      0.0010188       0.054959  

Observed objective function value = 0.12251
Estimated objective function value = 0.12338
Function evaluation time = 0.32727

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

       0.53182         0.86058  

Estimated objective function value = 0.12311
Estimated function evaluation time = 0.21175
Mdl = 
  ClassificationSVM
                         ResponseName: 'Y'
                CategoricalPredictors: []
                           ClassNames: {'b'  'g'}
                       ScoreTransform: 'none'
                      NumObservations: 351
    HyperparameterOptimizationResults: [1x1 BayesianOptimization]
                                Alpha: [109x1 double]
                                 Bias: -3.5170
                     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.1225
                   XAtMinObjective: [1x2 table]
             MinEstimatedObjective: 0.1231
          XAtMinEstimatedObjective: [1x2 table]
           NumObjectiveEvaluations: 30
                  TotalElapsedTime: 153.2006
                         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]
Введенный в R2016b