Оптимизация в наиболее общем виде - это процесс нахождения точки, которая минимизирует действительную функцию, называемую целевой функцией. Байесовская оптимизация - это название одного такого процесса. Байесовская оптимизация внутренне поддерживает гауссову модель процесса целевой функции и использует оценки целевой функции для обучения модели. Одним из нововведений байесовской оптимизации является использование функции обнаружения, которую алгоритм использует для определения следующей точки для оценки. Функция сбора может сбалансировать выборку в точках, имеющих низкие моделируемые целевые функции, и исследовать области, которые еще не были хорошо смоделированы. Дополнительные сведения см. в разделе Алгоритм байесовской оптимизации.
Байесовская оптимизация является частью Toolbox™ статистики и машинного обучения, поскольку она хорошо подходит для оптимизации гиперпараметров алгоритмов классификации и регрессии. Гиперпараметр - это внутренний параметр классификатора или регрессионной функции, такой как ограничение бокса машины опорных векторов или скорость обучения надежного классификационного ансамбля. Эти параметры могут сильно влиять на производительность классификатора или регрессера, и, тем не менее, оптимизировать их обычно трудно или требует много времени. См. раздел Байесовские характеристики оптимизации.
Как правило, оптимизация гиперпараметров означает, что вы пытаетесь минимизировать потерю перекрестной проверки классификатора или регрессии.
Байесовскую оптимизацию можно выполнить несколькими способами:
fitcauto и fitrauto - Передача данных предиктора и ответа в fitcauto или fitrauto для оптимизации выбора типов моделей и значений гиперпараметров. В отличие от других подходов, использование fitcauto или fitrauto не требует указания одной модели перед оптимизацией; выбор модели является частью процесса оптимизации. Оптимизация минимизирует потери при перекрестной проверке, которые моделируются с использованием много-TreeBagger модель в fitcauto и много-RegressionGP модель в fitrauto, а не одна модель регрессии гауссова процесса, как используется в других подходах. См. байесовскую оптимизацию для fitcauto и байесовская оптимизация для fitrauto.
Приложения Classification Learner и Regression Learner - выбирайте оптимизируемые модели в приложениях для машинного обучения и автоматически настраивайте их значения гиперпараметров с помощью байесовской оптимизации. Оптимизация минимизирует потери модели на основе выбранных опций проверки. Этот подход имеет меньше опций настройки, чем использование функции подгонки, но позволяет выполнять байесовскую оптимизацию непосредственно в apps. См. Hyperparameter Optimization in Classification Learner App и Hyperparameter Optimization in Regression Learner App.
Функция посадки - Включить OptimizeHyperparameters пара имя-значение во многих функциях фитинга для автоматического применения байесовской оптимизации. Оптимизация минимизирует потери при перекрестной проверке. Этот подход дает меньше возможностей настройки, чем использование bayesopt, но позволяет выполнять байесовскую оптимизацию проще. См. раздел Байесовская оптимизация с использованием функции подгонки.
bayesopt - Максимально контролируйте оптимизацию, позвонив по телефону bayesopt непосредственно. Этот подход требует записи целевой функции, которая не должна представлять потери при перекрестной проверке. См. раздел Байесовская оптимизация с использованием байесопта.
Чтобы минимизировать ошибку в перекрестно проверенном ответе с помощью байесовской оптимизации, выполните следующие действия.
Выберите решатель классификации или регрессии среди fitcdiscr, fitcecoc, fitcensemble, fitckernel, fitcknn, fitclinear, fitcnb, fitcsvm, fitctree, fitrensemble, fitrgp, fitrkernel, fitrlinear, fitrsvm, или fitrtree.
Определите гиперпараметры для оптимизации и передайте их в OptimizeHyperparameters пара имя-значение. Для каждой функции подгонки можно выбрать один из наборов гиперпараметров. См. раздел Подходящие гиперпараметры для функций подгонки или используйте hyperparameters или обратитесь к странице ссылки на fit function.
Можно передать массив ячеек имен параметров. Также можно задать 'auto' в качестве OptimizeHyperparameters значение, которое выбирает типичный набор гиперпараметров для оптимизации, или 'all' для оптимизации всех доступных параметров.
Для функций подбора ансамбля fitcecoc, fitcensemble, и fitrensemble, также включают параметры слабых учащихся в OptimizeHyperparameters массив ячеек.
При необходимости создайте структуру опций для HyperparameterOptimizationOptions пара имя-значение. См. раздел Параметры оптимизации гиперпараметров для функций подгонки.
Вызовите функцию посадки с соответствующими парами имя-значение.
Примеры см. в разделе Оптимизация вписывания классификатора SVM с использованием байесовской оптимизации и оптимизация усиленного ансамбля регрессии. Кроме того, каждая страница ссылки на функцию посадки содержит пример байесовской оптимизации.
bayesoptВыполнение байесовской оптимизации с помощью bayesoptвыполните следующие действия.
Подготовьте переменные. См. раздел Переменные для байесовской оптимизации.
Создайте целевую функцию. См. раздел Целевые функции байесовской оптимизации. При необходимости также создайте зависимости. См. раздел Ограничения в байесовской оптимизации. Сведения о включении дополнительных параметров в целевую функцию см. в разделе Параметризация функций.
Решите варианты, то есть bayseopt Name,Value пар. Вы не обязаны передавать какие-либо параметры bayesopt но вы обычно это делаете, особенно при попытке улучшить решение.
Звонить bayesopt.
Осмотрите решение. Можно принять решение о возобновлении оптимизации с помощью resumeили перезапустите оптимизацию, как правило, с измененными параметрами.
Пример см. в разделе Оптимизация кросс-проверенного классификатора SVM с помощью байесопта.
Байесовские алгоритмы оптимизации лучше всего подходят для этих типов задач.
| Особенность | Подробнее |
|---|---|
| Низкий размер | Байесовская оптимизация лучше всего работает в малом количестве размеров, обычно 10 или менее. Хотя байесовская оптимизация может решить некоторые задачи с несколькими десятками переменных, она не рекомендуется для размеров выше примерно 50. |
| Дорогостоящая цель | Байесовская оптимизация предназначена для объективных функций, которые медленно оцениваются. Он имеет значительные издержки, обычно несколько секунд для каждой итерации. |
| Низкая точность | Байесовская оптимизация не обязательно дает очень точные результаты. При наличии детерминированной целевой функции иногда можно повысить точность, запустив стандартный алгоритм оптимизации из |
| Глобальное решение | Байесовская оптимизация - это глобальная техника. В отличие от многих других алгоритмов, для поиска глобального решения не нужно запускать алгоритм с различных начальных точек. |
| Гиперпараметры | Байесовская оптимизация хорошо подходит для оптимизации гиперпараметров другой функции. Гиперпараметр - это параметр, управляющий поведением функции. Например, |
Подходящие гиперпараметры для функций подгонки
При оптимизации с использованием функции посадки эти опции доступны в HyperparameterOptimizationOptions пара имя-значение. Задайте значение как структуру. Все поля в структуре являются необязательными.
| Имя поля | Ценности | Дефолт |
|---|---|---|
Optimizer |
| 'bayesopt' |
AcquisitionFunctionName |
Функции приобретения, имена которых включают | 'expected-improvement-per-second-plus' |
MaxObjectiveEvaluations | Максимальное количество оценок целевой функции. | 30 для 'bayesopt' или 'randomsearch'и вся сетка для 'gridsearch' |
MaxTime | Ограничение по времени, указанное как положительный реал. Ограничение по времени в секундах, измеренное | Inf |
NumGridDivisions | Для 'gridsearch', количество значений в каждом измерении. Значение может быть вектором положительных целых чисел, дающим количество значений для каждого измерения, или скаляром, который применяется ко всем измерениям. Это поле игнорируется для категориальных переменных. | 10 |
ShowPlots | Логическое значение, указывающее, показывать ли графики. Если trueв этом поле отображается наилучшее значение целевой функции относительно номера итерации. Если имеется один или два параметра оптимизации, и если Optimizer является 'bayesopt', то ShowPlots также строит график модели целевой функции по параметрам. | true |
SaveIntermediateResults | Логическое значение, указывающее, сохранять ли результаты при Optimizer является 'bayesopt'. Если true, это поле перезаписывает переменную рабочей области с именем 'BayesoptResults' на каждой итерации. Переменная является BayesianOptimization объект. | false |
Verbose | Отображение в командной строке.
Для получения более подробной информации см. | 1 |
UseParallel | Логическое значение, указывающее, выполнять ли байесовскую оптимизацию параллельно, что требует Toolbox™ параллельных вычислений. Из-за непродуктивности параллельной синхронизации параллельная байесовская оптимизация не обязательно дает воспроизводимые результаты. Дополнительные сведения см. в разделе Параллельная байесовская оптимизация. | false |
Repartition | Логическое значение, указывающее, следует ли перераспределять перекрестную проверку при каждой итерации. Если
| false |
| Используйте не более одного из следующих трех имен полей. | ||
CVPartition | A cvpartition объект, созданный cvpartition. | 'Kfold',5 если не указано какое-либо поле перекрестной проверки |
Holdout | Скаляр в диапазоне (0,1) представляет собой удерживающую фракцию. | |
Kfold | Целое число больше 1. | |
BayesianOptimization | bayesopt