Байесов рабочий процесс оптимизации

Что такое байесова оптимизация?

Оптимизация, в ее самой общей форме, является процессом определения местоположения точки, которая минимизирует действительную функцию, названную objective function. Байесова оптимизация является именем одного такого процесса. Байесова оптимизация внутренне обеспечивает Гауссову модель процесса целевой функции и использует оценки целевой функции, чтобы обучить модель. Инновациями в Байесовой оптимизации является использование acquisition function, который использование алгоритма определить следующий вопрос, чтобы оценить. Функция захвата может сбалансировать выборку в точках, которые низко смоделировали целевые функции и области исследования, которые еще не были смоделированы хорошо. Для получения дополнительной информации см. Байесов Алгоритм Оптимизации.

Байесова оптимизация является частью Statistics and Machine Learning Toolbox™, потому что это является подходящим к оптимизации hyperparameters алгоритмов регрессии и классификации. Гиперпараметр является внутренним параметром классификатора или функции регрессии, такой как ограничение поля машины опорных векторов или скорость обучения устойчивого ансамбля классификации. Эти параметры могут строго влиять на эффективность классификатора или регрессора, и все же это обычно затрудняет или длительно, чтобы оптимизировать их. Смотрите Байесовы Характеристики Оптимизации.

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

Способы выполнить байесовую оптимизацию

Можно выполнить Байесовую оптимизацию несколькими способами:

  • fitcauto и fitrauto — Передайте предиктор и данные об ответе к fitcauto или fitrauto функция, чтобы оптимизировать через выбор типов модели и гиперзначений параметров. В отличие от других подходов, с помощью fitcauto или fitrauto не требует, чтобы вы задали одну модель перед оптимизацией; выбор модели является частью процесса оптимизации. Оптимизация минимизирует потерю перекрестной проверки, которая моделируется с помощью multi-TreeBagger модель в fitcauto и multi-RegressionGP модель в fitrauto, вместо одной Гауссовой модели регрессии процесса, как используется в других подходах. Смотрите Байесовую Оптимизацию для fitcauto и байесова оптимизация для fitrauto.

  • Classification Learner и приложения Regression Learner — модели Choose Optimizable в приложениях машинного обучения и автоматически настраивают их гиперзначения параметров при помощи Байесовой оптимизации. Оптимизация минимизирует потерю модели на основе выбранных опций валидации. Этот подход имеет меньше настраивающихся опций, чем использование подходящей функции, но позволяет вам выполнять Байесовую оптимизацию непосредственно в приложениях. Смотрите Гипероптимизацию параметров управления в Приложении Classification Learner и Гипероптимизацию параметров управления в Приложении Regression Learner.

  • Подходящая функция — Включает OptimizeHyperparameters аргумент значения имени во многих подходящих функциях, чтобы применить Байесовую оптимизацию автоматически. Оптимизация минимизирует потерю перекрестной проверки. Этот подход дает вам меньше настраивающихся опций, чем использование bayesopt, но позволяет вам выполнить Байесовую оптимизацию более легко. Смотрите, что Байесова Оптимизация Использует Подходящую Функцию.

  • bayesopt — Осуществите большую часть контроля своей оптимизацией путем вызова bayesopt непосредственно. Этот подход требует, чтобы вы записали целевую функцию, которая не должна представлять потерю перекрестной проверки. Смотрите, что Байесова Оптимизация Использует bayesopt.

Байесова оптимизация Используя подходящую функцию

Чтобы минимизировать ошибку в перекрестном подтвержденном ответе через Байесовую оптимизацию, выполните эти шаги.

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

  2. Выберите гиперпараметры, чтобы оптимизировать, и передать их в OptimizeHyperparameters аргумент значения имени. Для каждой подходящей функции можно выбрать из набора гиперпараметров. Смотрите Имеющие право Гиперпараметры для Подходящих Функций или используйте hyperparameters функция, или консультируются с подходящей страницей ссылки на функцию.

    Можно передать массив ячеек названий параметра. Можно также установить 'auto' как OptimizeHyperparameters значение, которое выбирает типичный набор гиперпараметров, чтобы оптимизировать, или 'all' оптимизировать все доступные параметры.

  3. Поскольку ансамбль соответствует функциям fitcecoc, fitcensemble, и fitrensemble, также включайте параметры слабых учеников в OptimizeHyperparameters cellArray.

  4. Опционально, создайте структуру опций для HyperparameterOptimizationOptions аргумент значения имени. См. Опции Оптимизации Гиперпараметра для Подходящих Функций.

  5. Вызовите подходящую функцию с соответствующими аргументами name-value.

Для примеров смотрите, Оптимизируют Подгонку Классификатора Используя Байесовую Оптимизацию и Оптимизируют Повышенный Ансамбль Регрессии. Кроме того, каждая подходящая страница ссылки на функцию содержит Байесов пример оптимизации.

Байесова оптимизация Используя bayesopt

Выполнять Байесово использование оптимизации bayesopt, выполните эти шаги.

  1. Подготовьте свои переменные. Смотрите Переменные для Байесовой Оптимизации.

  2. Создайте свою целевую функцию. Смотрите Байесовы Целевые функции Оптимизации. При необходимости создайте ограничения, также. Смотрите Ограничения в Байесовой Оптимизации. Чтобы включать дополнительные параметры в целевую функцию, смотрите Функции Параметризации.

  3. Выберите опции, означая bayseopt Name,Value пары. Вы не обязаны передавать любые опции bayesopt но вы обычно делаете, особенно при попытке улучшить решение.

  4. Вызвать bayesopt.

  5. Исследуйте решение. Можно решить возобновить оптимизацию при помощи resume, или перезапустите оптимизацию, обычно с модифицированными опциями.

Для примера смотрите, Оптимизируют перекрестный Подтвержденный Классификатор Используя bayesopt.

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

Байесовы алгоритмы оптимизации подходят лучше всего для этих проблемных типов.

ХарактеристикаДетали
Низкая размерность

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

Дорогая цель

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

Низкая точность

Байесова оптимизация не обязательно дает очень точные результаты. Если у вас есть детерминированная целевая функция, можно иногда улучшать точность путем запуска стандартного алгоритма оптимизации с bayesopt решение.

Глобальное решение

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

Гиперпараметры

Байесова оптимизация является подходящей к оптимизации hyperparameters другой функции. Гиперпараметр является параметром, который управляет поведением функции. Например, fitcsvm функция подбирает модель SVM к данным. Это имеет гиперпараметры BoxConstraint и KernelScale для его 'rbf' KernelFunction. Поскольку пример Байесовой оптимизации применился к гиперпараметрам, смотрите, Оптимизируют перекрестный Подтвержденный Классификатор Используя bayesopt.

Параметры, доступные для подходящих функций

Имеющие право гиперпараметры для подходящих функций

FunctionName Имеющие право параметры
fitcdiscrDelta
Gamma
DiscrimType
fitcecocCoding
имеющие право fitcdiscr параметры для 'Learners','discriminant'
имеющие право fitckernel параметры для 'Learners','kernel'
имеющие право fitcknn параметры для 'Learners','knn'
имеющие право fitclinear параметры для 'Learners','linear'
имеющие право fitcsvm параметры для 'Learners','svm'
имеющие право fitctree параметры для 'Learners','tree'
fitcensembleMethod
NumLearningCycles
LearnRate
имеющие право fitcdiscr параметры для 'Learners','discriminant'
имеющие право fitcknn параметры для 'Learners','knn'
имеющие право fitctree параметры для 'Learners','tree'
fitcgamInitialLearnRateForInteractions
InitialLearnRateForPredictors
Interactions
MaxNumSplitsPerInteraction
MaxNumSplitsPerPredictor
NumTreesPerInteraction
NumTreesPerPredictor
fitckernelLearner
KernelScale
Lambda
NumExpansionDimensions
fitcknnNumNeighbors
Distance
DistanceWeight
Exponent
Standardize
fitclinearLambda
Learner
Regularization
fitcnbDistributionNames
Width
Kernel
fitcnetActivations
Lambda
LayerBiasesInitializer
LayerWeightsInitializer
LayerSizes
Standardize
fitcsvmBoxConstraint
KernelScale
KernelFunction
PolynomialOrder
Standardize
fitctreeMinLeafSize
MaxNumSplits
SplitCriterion
NumVariablesToSample
fitrensembleMethod
NumLearningCycles
LearnRate
имеющие право fitrtree параметры для 'Learners','tree':
MinLeafSize
MaxNumSplits
NumVariablesToSample
fitrgamInitialLearnRateForInteractions
InitialLearnRateForPredictors
Interactions
MaxNumSplitsPerInteraction
MaxNumSplitsPerPredictor
NumTreesPerInteraction
NumTreesPerPredictor
fitrgpSigma
BasisFunction
KernelFunction
KernelScale
Standardize
fitrkernelLearner
KernelScale
Lambda
NumExpansionDimensions
Epsilon
fitrlinearLambda
Learner
Regularization
fitrnetActivations
Lambda
LayerBiasesInitializer
LayerWeightsInitializer
LayerSizes
Standardize
fitrsvmBoxConstraint
KernelScale
Epsilon
KernelFunction
PolynomialOrder
Standardize
fitrtreeMinLeafSize
MaxNumSplits
NumVariablesToSample

Опции гипероптимизации параметров управления для подходящих функций

При оптимизации использования подходящей функции вы имеете эти опции в наличии в HyperparameterOptimizationOptions аргумент значения имени. Дайте значение как структуру. Все поля в структуре являются дополнительными.

Имя поляЗначенияЗначение по умолчанию
Optimizer
  • 'bayesopt' — Используйте Байесовую оптимизацию. Внутренне, эта установка вызовы bayesopt.

  • 'gridsearch' — Используйте поиск сетки с NumGridDivisions значения на размерность.

  • 'randomsearch' — Поиск наугад среди MaxObjectiveEvaluations 'points'.

'gridsearch' поисковые запросы в произвольном порядке, с помощью универсальной выборки без замены от сетки. После оптимизации можно получить таблицу в порядке сетки при помощи команды sortrows(Mdl.HyperparameterOptimizationResults).

'bayesopt'
AcquisitionFunctionName

  • 'expected-improvement-per-second-plus'

  • 'expected-improvement'

  • 'expected-improvement-plus'

  • 'expected-improvement-per-second'

  • 'lower-confidence-bound'

  • 'probability-of-improvement'

Захват функционирует, чьи имена включают per-second не приводите к восстанавливаемым результатам, потому что оптимизация зависит от времени выполнения целевой функции. Захват функционирует, чьи имена включают plus измените их поведение, когда они сверхиспользуют область. Для получения дополнительной информации смотрите Типы Функции Захвата.

'expected-improvement-per-second-plus'
MaxObjectiveEvaluationsМаксимальное количество оценок целевой функции.30 для 'bayesopt' и 'randomsearch', и целая сетка для 'gridsearch'
MaxTime

Ограничение по времени в виде положительного действительного скаляра. Ограничение по времени находится в секундах, как измерено tic и toc. Время выполнения может превысить MaxTime потому что MaxTime не делает оценок функции обработки прерываний.

Inf
NumGridDivisionsДля 'gridsearch', количество значений в каждой размерности. Значение может быть вектором из положительных целых чисел, дающих количество значений для каждой размерности или скаляр, который применяется ко всем размерностям. Это поле проигнорировано для категориальных переменных.10
ShowPlotsЛогическое значение, указывающее, показать ли графики. Если true, это поле строит лучшее наблюдаемое значение целевой функции против номера итерации. Если вы используете Байесовую оптимизацию (Optimizer 'bayesopt'), затем это поле также строит лучшее предполагаемое значение целевой функции. Лучшие наблюдаемые значения целевой функции и лучше всего оцененные значения целевой функции соответствуют значениям в BestSoFar (observed) и BestSoFar (estim.) столбцы итеративного отображения, соответственно. Можно найти эти значения в свойствах ObjectiveMinimumTrace и EstimatedObjectiveMinimumTrace из Mdl.HyperparameterOptimizationResults. Если проблема включает один или два параметра оптимизации для Байесовой оптимизации, то ShowPlots также строит модель целевой функции против параметров.true
SaveIntermediateResultsЛогическое значение, указывающее, сохранить ли результаты когда Optimizer 'bayesopt'. Если true, это поле перезаписывает переменную рабочей области под названием 'BayesoptResults' в каждой итерации. Переменной является BayesianOptimization объект.false
Verbose

Отображение в командной строке:

  • 0 — Никакое итеративное отображение

  • 1 Итеративное отображение

  • 2 — Итеративное отображение с дополнительной информацией

Для получения дополнительной информации смотрите bayesopt Verbose аргумент значения имени и пример Оптимизируют Подгонку Классификатора Используя Байесовую Оптимизацию.

1
UseParallelЛогическое значение, указывающее, запустить ли Байесовую оптимизацию параллельно, которая требует Parallel Computing Toolbox™. Из-за невоспроизводимости синхронизации параллели, параллельная Байесова оптимизация не обязательно приводит к восстанавливаемым результатам. Для получения дополнительной информации смотрите Параллельную Байесовую Оптимизацию.false
Repartition

Логическое значение, указывающее, повторно разделить ли перекрестную проверку в каждой итерации. Если этим полем является false, оптимизатор использует один раздел для оптимизации.

Установка true обычно дает большинство устойчивых результатов, потому что это принимает шум разделения во внимание. Однако для хороших результатов, true требует, по крайней мере, вдвое большего количества вычислений функции.

false
Используйте не больше, чем одну из следующих трех опций.
CVPartitioncvpartition объект, как создано cvpartition'Kfold',5 если вы не задаете поле перекрестной проверки
HoldoutСкаляр в области значений (0,1) представление части затяжки
KfoldЦелое число, больше, чем 1

Смотрите также

|

Похожие темы