Настройка гиперпараметров — различия между версиями
AnneKsatn (обсуждение | вклад) (→Основная информация) |
AnneKsatn (обсуждение | вклад) (→SMBO) |
||
Строка 81: | Строка 81: | ||
=== SMBO === | === SMBO === | ||
− | |||
− | SMBO | + | ==== Основная информация ==== |
+ | |||
+ | SMBO (Sequential Model-Based Optimization) - методы, основанные на байесовской оптимизации | ||
+ | |||
+ | Когда используют SMBO? <br> | ||
+ | Когда оптимизация целевой функции будет стоить очень "дорого". Главная идея SMBO - замена целевой функции "суррогатной" функцией. | ||
− | На каждом шаге SMBO: | + | На каждом шаге работы SMBO: |
− | # | + | |
− | + | # Строится вероятностная модель (суррогатная функция) целевой функции. | |
− | + | # Подбираются гиперпараметры, которые лучше всего подходят для вероятностной модели. | |
+ | # Подобранные гиперпараметры применяются к целевой функции. | ||
+ | # Вероятностная модель перестраивается (обновляется). | ||
+ | # Шаги 2-4 повторяются столько раз, сколько задал пользователь. | ||
+ | |||
+ | |||
+ | Существует четыре ключевые аспекта SMBO: | ||
+ | * Сетка значений гиперпараметров (область поиска). | ||
+ | * Целевая функция (выводит оценку, которую мы хотим минимизировать или максимизировать). | ||
+ | * Вероятностная модель целевой функции (суррогатная функция). | ||
+ | * Критерий, называемый функцией выбора (для выбора следующих гиперпараметры по текущей вероятностной модели). | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Методы SMBO отличаются между собой вероятностными моделями и функциями выбора: <br> | |
− | + | Популярные вероятностные модели (суррогатные функции): | |
− | + | * Gaussian Processes | |
+ | * Tree Parzen Estimators (TPE) | ||
+ | * Random Forest Regressions | ||
+ | ==== Реализация ==== | ||
+ | * Random Forest Regressions: SMAC | ||
+ | * Tree Parzen Estimators: Hyperopt | ||
+ | * Gaussian Processes: Spearmint, Scikit-optimize | ||
=== TPE === | === TPE === |
Версия 13:38, 20 апреля 2020
Содержание
Гиперпараметры
Гиперпараметры - параметры, которые не настраиваются во время обучения модели.
Пример гиперпараметра - шаг градиентного спуска, он задается перед обучением.
Пример параметров - веса градиентного спуска, они изменяются и настраиваются во время обучения.
Для подбора гиперпараметров необходимо разделить датасет на три части:
- training set (тренировочный набор данных, для обучении модели)
- validation set (валидационный набор данных, для расчета ошибки и выбора наилучшей модели)
- test set (тестовый набор данных, для тестирования лучшей модели)
Зачем нам нужен и валидационный, и тестовый набор?
Дело в том, что модель может переучиться на валидационном наборе данных. Для выявления переобучения используется тестовый набор данных.
Рассмотрим модель KNeighborsClassifier из библиотеки sklearn. Все “параметры” данной модели, с точки зрения машинного обучения, являются гиперпараметрами, так как задаются до начала обучения.
Техники настройки гиперпараметров
Grid search
Общая информация
Grid search принимает на вход модель и различные значения гиперпараметров (сетку гиперпараметров). Далее, для каждого возможного сочетания значений гиперпараметров, метод считает ошибку и в конце выбирает сочетание, при котором ошибка минимальна.
Sklearn Grid search: использование
Пример использования Grid search из библиотеки scikit-learn:
- Создание экземпляра класса SGDClassifier (из sklearn)
- Создание сетки гиперпараметров. В данном случае будем подбирать коэффициент регуляризации, шаг градиентного спуска, количество итераций и параметр скорости обучения.
- Создание экземпляра класса кросс-валидации
- Создание экземпляра GridSearch (из sklearn). Первый параметр - модель, второй - сетка гиперпараметров, третий - функционал ошибки (используемый для контроля качества моделей по технике кросс-валидации), четвертый - кросс-валидация (можно задать количество фолдов, а можно передать экземпляр класса кросс - валидации)
- Запуск поиска по сетке.
Sklearn Grid search: важные атрибуты
- best_estimator_ - лучшая модель
- best_score_ - ошибка, полученная на лучшей модели.
- best_params_ - гиперпараметры лучшей модели
- cv_results_ - результаты всех моделей.
- доступ к массиву определенного параметра:
Реализация Grid search в библеотеках
- Katib
- scikit-learn
- Tune
- Talos
Random grid search
Основная информация
Вместо полного перебора, Random grid search работает с некоторыми, случайным образом выбранными, комбинациями. На основе полученных результатов, происходит сужение области поиска.
Когда random grid search будет гораздо полезнее, чем grid search?
В ситуации, когда гиперпараметров много, но сильно влияющих на конечную производительность алгоритма - мало.
Реализация Random grid
- hyperopt
- Katib
- scikit-learn
- Tune
- Talos
SMBO
Основная информация
SMBO (Sequential Model-Based Optimization) - методы, основанные на байесовской оптимизации
Когда используют SMBO?
Когда оптимизация целевой функции будет стоить очень "дорого". Главная идея SMBO - замена целевой функции "суррогатной" функцией.
На каждом шаге работы SMBO:
- Строится вероятностная модель (суррогатная функция) целевой функции.
- Подбираются гиперпараметры, которые лучше всего подходят для вероятностной модели.
- Подобранные гиперпараметры применяются к целевой функции.
- Вероятностная модель перестраивается (обновляется).
- Шаги 2-4 повторяются столько раз, сколько задал пользователь.
Существует четыре ключевые аспекта SMBO:
- Сетка значений гиперпараметров (область поиска).
- Целевая функция (выводит оценку, которую мы хотим минимизировать или максимизировать).
- Вероятностная модель целевой функции (суррогатная функция).
- Критерий, называемый функцией выбора (для выбора следующих гиперпараметры по текущей вероятностной модели).
Методы SMBO отличаются между собой вероятностными моделями и функциями выбора:
Популярные вероятностные модели (суррогатные функции):
- Gaussian Processes
- Tree Parzen Estimators (TPE)
- Random Forest Regressions
Реализация
- Random Forest Regressions: SMAC
- Tree Parzen Estimators: Hyperopt
- Gaussian Processes: Spearmint, Scikit-optimize
TPE
TPE - Tree-structured Parzen Estimator (Древовидная структура Парзена)
Методы SMBO отличаются тем, как они строят вероятностную модель p (y | x). В случае TPE, используется следующая функция:
формула
SMAC
расширяет подходы SMBO
В частности, разработаны подходы обработки данных:
- дискретные и условные пространства параметров (с учетом
оптимизация параметров категориального алгоритма и параметров, между которыми существуют зависимости);
- существенный негауссовский шум (из-за дисперсии в
распределение времени выполнения алгоритма по экземплярам задач и несколько независимых запусков на одном экземпляре);
- частично цензурированные оценки функций (из-за преждевременного
завершенные запуски алгоритма);
- бюджет на общее время, доступное для настройки алгоритма, а не на количество оценок функций;