УДК 004

Астапов Руслан Лютерович, Мухамадеева Рената Маратовна

Национальный исследовательский ядерный университет «МИФИ»

Москва, Россия

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. После чего решается оптимизационная задача:

HOV(μ, Tt, Tl−t) = Q(μ(Tt), Tl−t) → min   (1)

Пример разбиения приведен на рисунке 1.

Пример разбиения обучающей выборки при валидации на отложенных данных

Рисунок 1 — Пример разбиения обучающей выборки при валидации на отложенных данных

Главным недостатком этого метода является то, что оценка сильно зависит от разбиения, а не от обучающего алгоритма.

Полная кросс-валидация

При полной кросс-валидации (CCV) выбирается значение t и выборка разбивается всеми возможными способами на две части: Tl = Tt ∪ Tl−t. После разбиения решается задача оптимизации:

CCV = 1/Clt ∑ Q(μ(Tt), Tl−t) → min   (2)
Tl = Tt ∪ Tl−t

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

Пример разбиения обучающей выборки при полной кросс-валидации

Рисунок 2 — Пример разбиения обучающей выборки при полной кросс-валидации

K-fold кросс-валидация

При K-fold кросс-валидации (KFCV) обучающая выборка разбивается на k одинаковых по объему и непересекающихся частей, затем производится k итераций, на каждой итерации происходит обучение на k − 1 части обучающей выборки и тестируется на части, не попавшей в обучение. Задача оптимизации выглядит следующим образом:

KFCV = 1/ki=1k Q(μ(Tl\Fi), Fi) → min   (3)

где Fi — часть, не попавшая в обучение при i-ом разбиении. Пример разбиения приведен на рисунке 3.

Пример разбиения обучающей выборки при K-fold кросс-валидации

Рисунок 3 — Пример разбиения обучающей выборки при K-fold кросс-валидации

Repeated K-fold кросс-валидация

Repeated K-fold кросс-валидация (RKFCV) повторяет K-fold кросс-валидацию r раз. Каждый раз выборка случайным образом разбивается на k непересекающихся и одинаковых по объему блоков. Этот способ наследует все преимущества K-fold, при этом появляется дополнительная возможность увеличивать число разбиений, и задача оптимизации выглядит следующим образом:

RKFCV = 1/r×kj=1ri=1k Q(μ(Tl\F(i,j)), F(i,j)) → min   (4)

где F(i,j) — часть, не попавшая в обучение на j-ой итерации, при i-ом разбиении.

Данный вариант кросс-валидации является стандартной методикой тестирования и сравнения алгоритмов классификации. Реализация Repeated K-fold кросс-валидации имеется в библиотеке scikit-learn [1] — RepeatedKFold. RepeatedKFold принимает на вход параметры n_splits — число блоков, на которое нужно разбить обучающую выборку и n_repeats — число раз, сколько раз нужно повторить кросс-валидацию.

Заключение

В работе были исследованы методы автоматизированного подбора параметров машинного обучения, а именно GridSearchCV и RandomizedSearchCV. Были представлены основные параметры, которые принимают методы GridSearchCV и RandomizedSearchCV, а также способы их использования. Также были исследованы варианты кросс-валидации и выбрана Repeated K-fold кросс-валидация.

Список использованных источников

  1. Официальный сайт библиотеки scikit-learn – URL: https://scikit-learn.org/

Астапов Руслан Лютерович, Мухамадеева Рената Маратовна – Национальный исследовательский ядерный университет «МИФИ», Москва, Россия.