Astapov Ruslan Luterovich, Mukhamadeeva Renata Maratovna
National Research Nuclear University «MEPhI»
Moscow, Russia
SELECTION'S AUTOMATIZATION OF MACHINE LEARNING PARAMETERS AND TRAINING A MACHINE LEARNING MODEL
Аннотация
В данной работе рассматриваются вопросы машинного обучения, а именно задача автоматизации подбора параметров машинного обучения и обучение модели с помощью кросс-валидации. Описываются методы GridSearchCV и RandomizedSearchCV. Описываются варианты кросс-валидации и обосновывается выбор наиболее подходящего.
Abstract
This paper examines the machine learning issues, namely the task of automating the selection of machine learning parameters and training the model using cross-validation. Describes the GridSearchCV and RandomizedSearchCV methods. Describes the options of cross-validation and the choice of the most appropriate is justified.
Ключевые слова:
машинное обучение, гиперпараметры, кросс-валидация
Keywords:
machine learning, hyperparameters, cross-validation
В силу наличия множества гиперпараметров, влияющих на качество и точность обучения на каждой обучающей выборке, подбор данных параметров вручную для каждого из случаев – это достаточно долгий и трудоемкий процесс. Таким образом, возникает потребность в автоматизации подбора параметров модели машинного обучения. Следующим этапом является обучение модели. В этой статье будут описаны варианты кросс-валидации и обоснован выбор одного из них.
Для автоматизации поиска наиболее оптимальных гиперпараметров моделей существуют такие методы как GridSearchCV и RandomizedSearchCV, реализация которых имеется в библиотеке scikit-learn [1].
Обычно два этих метода используют в комбинации, и сначала идет поиск с помощью RandomizedSearchCV, а после с GridSearchCV. Такая последовательность обусловлена тем, что GridSearchCV ищет наилучшую комбинацию гиперпараметров из всех переданных ему на вход гиперпараметров, а RandomizedSearchCV разбивает входные гиперпараметры на несколько сэмплов случайным образом и среди них ищет лучшую комбинацию.
В таблице 1 приведены основные параметры, которые принимают методы GridSearchCV и RandomizedSearchCV.
| Параметр | Описание | GridSearchCV | RandomizedSearchCV |
|---|---|---|---|
| estimator | Модель для обучения | + | + |
| param_distributions | Словарь, ключами которого являются названия гиперпараметров, а значения — массив возможных значений параметра | + | + |
| n_jobs | Число процессов, запускаемых параллельно | + | + |
| n_iter | Число сэмплов, на которые нужно разбить входные гиперпараметры | - | + |
Таблица 1 — основные параметры, которые принимают методы GridSearchCV и RandomizedSearchCV
Обучение модели происходит с помощью кросс-валидации. Кросс-валидация — эмпирическое оценивание обобщающей способности алгоритма. С помощью кросс-валидации эмулируется наличие тестовой выборки, которая не участвует в обучении.
Введем некоторые обозначения:
Существует несколько вариантов кросс-валидации, обоснование выбора конкретного варианта будет приведено в следующих разделах.
Валидация на отложенных данных, она же HOV, разбивает обучающую выборку один раз случайным образом на две части: Tl = Tt ∪ Tl−t. После чего решается оптимизационная задача:
Пример разбиения приведен на рисунке 1.
Рисунок 1 — Пример разбиения обучающей выборки при валидации на отложенных данных
Главным недостатком этого метода является то, что оценка сильно зависит от разбиения, а не от обучающего алгоритма.
При полной кросс-валидации (CCV) выбирается значение t и выборка разбивается всеми возможными способами на две части: Tl = Tt ∪ Tl−t. После разбиения решается задача оптимизации:
где Cll−t — число разбиений, которое становится большим даже при небольших значениях t, что делает этот метод практически не реализуемым. Пример разбиения обучающей выборки при полной кросс-валидации представлен на рисунке 2.
Рисунок 2 — Пример разбиения обучающей выборки при полной кросс-валидации
При K-fold кросс-валидации (KFCV) обучающая выборка разбивается на k одинаковых по объему и непересекающихся частей, затем производится k итераций, на каждой итерации происходит обучение на k − 1 части обучающей выборки и тестируется на части, не попавшей в обучение. Задача оптимизации выглядит следующим образом:
где Fi — часть, не попавшая в обучение при i-ом разбиении. Пример разбиения приведен на рисунке 3.
Рисунок 3 — Пример разбиения обучающей выборки при K-fold кросс-валидации
Repeated K-fold кросс-валидация (RKFCV) повторяет K-fold кросс-валидацию r раз. Каждый раз выборка случайным образом разбивается на k непересекающихся и одинаковых по объему блоков. Этот способ наследует все преимущества K-fold, при этом появляется дополнительная возможность увеличивать число разбиений, и задача оптимизации выглядит следующим образом:
где F(i,j) — часть, не попавшая в обучение на j-ой итерации, при i-ом разбиении.
Данный вариант кросс-валидации является стандартной методикой тестирования и сравнения алгоритмов классификации. Реализация Repeated K-fold кросс-валидации имеется в библиотеке scikit-learn [1] — RepeatedKFold. RepeatedKFold принимает на вход параметры n_splits — число блоков, на которое нужно разбить обучающую выборку и n_repeats — число раз, сколько раз нужно повторить кросс-валидацию.
В работе были исследованы методы автоматизированного подбора параметров машинного обучения, а именно GridSearchCV и RandomizedSearchCV. Были представлены основные параметры, которые принимают методы GridSearchCV и RandomizedSearchCV, а также способы их использования. Также были исследованы варианты кросс-валидации и выбрана Repeated K-fold кросс-валидация.