exponenta event banner

BayesianOptimization

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

Описание

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

Создание

Создать BayesianOptimization с использованием bayesopt функцию или функцию аппроксимации с помощью OptimizeHyperparameters пара имя-значение.

Свойства

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

Свойства определения проблемы

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

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

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

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

Типы данных: 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Детерминированные ограничения для переменных. См. раздел Детерминированные ограничения - XConstringFcn.
ConditionalVariableFcnОграничения условной переменной. См. раздел Условные зависимости - УсловияFcn.
NumCoupledConstraintsКоличество связанных зависимостей. См. раздел Связанные зависимости.
CoupledConstraintTolerancesДопуски связанных зависимостей. См. раздел Связанные зависимости.
AreCoupledConstraintsDeterministicЛогический вектор, указывающий, является ли каждое связанное ограничение детерминированным.
  
VerboseУровень отображения командной строки.
OutputFcnФункция, вызываемая после каждой итерации. См. раздел Функции вывода байесовской оптимизации.
SaveVariableNameИмя переменной для @assignInBase функция вывода.
SaveFileNameИмя файла для @saveToFile функция вывода.
PlotFcnФункция печати, вызываемая после каждой итерации. См. Функции графика байесовской оптимизации
  
InitialXТочки, где bayesopt оценивали целевую функцию.
InitialObjectiveЗначения целевой функции при InitialX.
InitialConstraintViolationsЗначения связанной функции ограничения при InitialX.
InitialErrorValuesЗначения ошибок в InitialX.
InitialObjectiveEvaluationTimesВремя оценки целевой функции в InitialX.
InitialIterationTimesВремя для каждой итерации, включая оценку целевой функции и другие вычисления.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Типы данных: 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.

Типы данных: 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'.

Для воспроизводимости задайте случайное начальное число, задайте раздел и установите значение 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% потерь для пятикратной перекрестной проверки по умолчанию.

Осмотрите 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