Автор статьи: Сергей Артамонов - DS Wildberries, Research Engineer Skoltech, аспирант мехмата МГУ, преподаватель Школы Высшей Математики
Автоматическое машинное обучение (AutoML) – это область исследований, целью которой является автоматизация ручных процессов настройки ML-пайплайнов, то есть полных циклов обработки данных при помощи ML-алгоритмов. Можно выделить основные этапы работы с данными в рамках стандартных подходов ML: сбор данных, их первичный анализ, предобработка (нормализация, кодирование признаков, оценка их важности и фильтрация, заполнение пропусков, поиск шумных признаков и выбросов в данных), выбор оптимальных моделей для решения задачи, возможные варианты комбинирования и ансамблирования моделей, оценка и внедрение итогового решения. Каждый элемент этой последовательности представляет из себя отдельную сложную задачу, требующую вложения труда специалистов. При этом та часть этих задач, которая представляет из себя подбор взаимозаменяемых элементов и оценку их производительности, может быть автоматизирована. Речь не идет об автоматизации сбора данных в широком смысле слова – слишком уж сложна и неоднородна эта задача – но автоматизация выбора наиболее оптимального набора моделей классического машинного обучения среди стандартного набора с учетом заранее поставленных ограничений кажется вполне решаемой проблемой. Методы оптимального поиска таких пайплайнов и решения ряда сложностей, возникающих в связи с такой широкой постановкой, называются автоматическим машинным обучением.
Несколько иначе ставится задача автоматического поиска нейронных архитектур (Neural Architecture Search, NAS). Фундаментально, проблема та же, что и в случае с AutoML – слишком много сил обычно требуется для точного подбора оптимальной архитектуры нейронной сети. При этом возникает своя специфика: элементы архитектуры нейронной сети обладают сложными характеристиками, подробное изучение которых часто выносится в отдельные учебные курсы, а время, затрачиваемое на проведение одного вычислительного эксперимента, обычно очень велико. Обе эти области, AutoML и NAS, часто воспринимаются в контексте более широкой задачи. Речь идет о задаче автоматического подбора оптимальных гиперпараметров. Фрагменты ML-пайплайнов, равно как и нейронные архитектуры, часто могут быть закодированы в виде числовой последовательности, которую можно интерпретировать как большой набор гиперпараметров алгоритма. Если в случае с классическим машинным обучением такое кодирование задаётся более-менее очевидным способом – естественной нумерацией всех возможных конструкционных элементов ML-пайплайна и их комбинированием, то в случае с NAS сам способ кодирования архитектуры не так очевиден и обычно сопряжен с набором допущений и ограничений, в рамках которой работает NAS-система. Как бы там ни было, область оптимизации гиперпараметров оказала сильное влияние и на AutoML, и на NAS.
Оптимизация гиперпараметров
Существует несколько общепринятых подходов к оптимизации гиперпараметров. Выбор конкретного подхода зависит от сложности проведения эксперимента по оценке эффективности конкретного набора гиперпараметров. Задача ставится следующим образом: существует алгоритм , зависящий от набора гиперпараметров
. Требуется найти такой набор гиперпараметров
, что ожидаемое качество работы такого алгоритма превысит некоторый порог (либо же просто будет максимально возможным). Считается, что мы можем оценить качество работы алгоритма A на любом конкретном наборе гиперпараметров – для этого мы обучаем такой алгоритм на имеющемся наборе данных и измеряем качество на отложенной выборке, однако сложность состоит в том, что:
а) этот процесс может быть довольно долгим, в связи с чем нам доступно лишь ограниченное количество таких оценок за выделенный временной бюджет
б) тем, что каждый гиперпараметр имеет принципиально разную природу и может быть определен на совершенно разных множествах.
Качество алгоритма зависит не от каждого параметра по отдельности, а от их комбинаций. Гиперпараметров же часто довольно много. Иногда даже больше, чем возможное число попыток оценки качества.
Простейшей идеей подбора комбинаций гиперпараметров кажется перебор всех возможных значений по сетке фиксированной, то есть перебор всех возможных комбинаций хначений гиперапараметров, где для каждого из них заранее определено ограниченное фиксированное множество возможных значений. То есть, если есть гиперпараметры и
, для каждого из них выбираются множества конкретных значений
и
, и оценивается качество алгоритма при всех возможных комбинациях:
. К достоинству такого метода можно отнести тот факт, что, выполнив этот перебор, мы получим представление о том, как каждый гиперпараметр влияет на качество итогового результата, поскольку для каждого гиперпараметра получим срез его индивидуального влияния на целевую функцию качества. Столь же очевиден один из недостатков такого метода: для сетки, состоящей из
гиперпараметров, для каждого из которых мы хотим проверить
значений, придется перебрать
комбинаций, что очень много даже для сравнительно небольших значений n и h. Скажем, если мы обучаем градиентный бустинг и хотим перебрать значения лишь основных гиперпараметров: число деревьев
и максимальная глубина
, то нам потребуется
комбинации. Если же мы добавим сюда еще один гиперпараметр всего с двумя возможными значениями, это число моментально увеличится до
. Экспоненциальная сложность не единственный недостаток этого метода. Менее очевидным является проблема неадаптивности перебора к важности гиперпараметров. Скажем, мы хотим подобрать комбинацию из двух гиперпараметров, один из которых на самом деле является важным, определяющим качество работы алгоритма, а второй обладает значительно меньшей важностью для решения данной задачи. Тогда перебор по сетке существенно ограничивает множество значений важного гиперпараметра, перераспределяя попытки в пользу измерения разных значений маловажного. Это наблюдение было описано в статье [1]. В той же статье был предложен альтернативный метод перебора, называемый random search. Этот метод предполагает простую модификацию перебора фиксированной сетки: генерация случайного множества комбинаций гиперпараметров. Этот метод распространен намного больше.

Между тем, оба метода обладают двумя важными недостатками: необходимостью перебора большого количества комбинаций и игнорированием результатов предыдущих измерений при выборе следующей комбинации для проверки. Кажется, что во время подбора комбинаций имеет смысл ориентироваться на прошлые измерения. Скажем, если мы видим устойчивую закономерность снижения качества при увеличении значения определенного гиперпараметра, не имеет смысла дальше проверять комбинации с большим значением этого гиперпараметра, вместо этого следует проверять комбинации с его меньшим значением. Существует область теории оптимизации, решающая обе эти проблемы. Эта область называется Байесовской оптимизацией.
Байесовская оптимизация – это дисциплина, изучающая оптимизацию сложно вычислимых функций. Предполагается, что у нас есть ограниченное, причем очень небольшое, число возможных оценок значения оптимизируемой функции. На основании этих измерений требуется найти наиболее вероятную точку экстремума. Методы байесовской оптимизации основаны на построении так называемой acqusion function – функции, моделирующую плотность вероятности найти минимум искомой функции в соответствующей точке. Делается это следующим образом: пусть мы имеем на руках небольшое количество измерений функции . У нас есть возможность сделать еще как минимум одно измерение, и мы выбираем точку
, в которой это измерение требуется провести. Для того, чтобы определить эту точку, мы построим большое количество случайных функций, моделирующих регрессию на основании уже измеренных значений
. Обычно в качестве базовых функций для построения такой рандомизированной регрессии выбирается одно из двух семейств функций: гауссовские процессы или случайные леса. Не ошибусь, если скажу, что 99% применений байесовской оптимизации основаны на одном из двух этих семейств. Построив большое число рандомизированных функций, проходящих через известные пары значений
, возможно определить вероятность нахождения минимума в любом интервале, по сути, простым построением гистограммы по минимумам случайных функций. Помимо вероятности нахождения минимума в любом диапазоне, мы можем оценить разброс значений построенных функций в каждой точке. Логика подсказывает, что если этот разброс велик, надежность прогноза в этом диапазоне мала, и наоборот – если разброс значений невелик, это значит, что вероятность получить спрогнозированное значение при измерении целевой функции очень велика, то есть мы и так заранее почти наверняка знаем, какое значение получим при измерении. Таким образом, существует две стратегии выбора следующей точки для измерения – exploration и exploitation. Первая предполагает снижение uncertaincy (неуверенности) в определенном диапазоне аргумента, а вторая – поиск минимума по наиболее вероятному значению. То есть, следуя первой стратегии, мы выберем для последующего измерения точку с наибольшей дисперсией значений построенных рандомизированных функций, а второй – выберем точку с наибольшим значением вероятности найти там минимум. Существуют также и некоторые комбинации этих подходов.

В случае, если существенных ограничений на число измерений целевой функции не существует, можно пользоваться популярными фреймворками, проводящими разумный перебор на основании алгоритмов дискретной и градиентной оптимизации. Одним из примеров таких фреймворков является optuna. Optuna – это один из наиболее популярных фреймворков, позволяющих перебирать большое число комбинаций гиперпараметров на основании серии последовательных измерений. Базовые алгоритмы optuna оценивают, какой вклад вносит изменение каждого гиперпараметра в изменение значения целевой функции и адаптируют следующие измерения так, чтобы снизить ожидаемое значение оптимизируемой функции.
AutoML
Автоматическое машинное обучение активно эксплуатирует описанные методы оптимизации гиперпараметров, используя их для подбора оптимальных пайплайнов, закодированных в виде последовательности категориальных и численных параметров, описывающих включение того или иного элемента в ML-пайплайна также значение собственных гиперпараметров этих элементов. Такие векторы могут достигать огромных размерностей в силу большого количества популярных инструментов обработки данных. Одним из вариантов является ограничение числа параметров для перебора. По этому пути пошли разработчики одного из самых известных открытых российских automl-решений – lightautoml. Они сильно ограничили множество перебираемых моделей и инструментов предобработки данных, аргументируя это тем, что в подавляющем большинстве случаев, оптимальными являются заранее прогнозируемые решения в виде градиентных бустингов или линейных моделей. Основная задача в этом случае – подобрать оптимальные гиперпараметры и способы ансамблирования этих моделей. Подбор гиперпараметров осуществляется при помощи optuna с учетом заданных ограничений по времени.
Другой вариант решения этой проблемы – создание ограниченного числа заранее определенных фиксированных пайплайнов, среди которых выбирается один под каждый конкретный датасет. Этой стратегии следуют создатели фреймворка autosklearn. Фреймворк претерпел две крупные итерации своего развития. На первой итерации авторы развивали концепцию metalearning. Metalearning – это методология поиска оптимальных решений по обработке данного датасета, основываясь на информации о том, какие пайплайны были лучшими для обработки схожих датасетов на основании проведенных заранее экспериментов. Каждый датасет описывается набором своих метапризнаков. Существует очень много возможных признаковых описаний датасетов. Чаще всего в них включаются различные статистические и теоретико-информационные характеристики датасетов: различные статистики по признакам в рамках датасета, кросс-корреляции, взаимная информация и т.п. Проблема состоит в принципиальной невозможности описать при помощи одного и того же набора признаков различные по своему формату датасетов, однако, накладывая некоторые ограничения, это сделать возможно. Далее предполагается однократное измерение качества работы каждого пайплайна на каждом датасете и формирование метаобучающей выборки в формате (метаописание датасета – лучший пайплайн). На этой метавыборке производится обучение обычных алгоритмов машинного обучения. Хорошим выбором, например, здесь является алгоритм KNN. Каждый раз, когда на вход такой системе подается новый датасет, он описывается в виде набора метапризнаков и подается в обученный алгоритм ML, подбирающий оптимальный пайплайн или набор оптимальных пайплайнов, среди которых перебором выбирается лучший. Metalearning имеет хорошие перспективы к развитию в контексте автоматического машинного обучения, однако, как отмечают и сами авторы autosklearn, на сегодняшний день неясно, как бороться с проблемами формирования корректного и универсального метаописания датасетов, в связи с чем алгоритмы automl, работающие на metalearning, показывают посредственное качество подбора оптимальных пайплайнов. Это побудило трансформировать autosklearn в autosklearn 2.0. Обновленная система все еще производит подбор одного из N возможных вариантов пайплайнов, однако делает это за счет разумного перебора и модификации вычислительного алгоритма выбора пайплайнов, которые вообще следует рассматривать в качестве кандидатов.

Существуют и другие решения из области автоматического машинного обучения, однако все они представляют из себя ту или иную форму одного из этих двух вариантов, либо какие-то их комбинации. Совсем иначе развивается технология автоматического подбора нейронных архитектур.
NAS
Принципиальное отличие NAS от AutoML состоит в том, что нейронные архитектуры задаются широким спектром практически неограниченных параметров, то есть они намного более вариативны. Также обычно тестирование результативности одной архитектуры занимает больше времени, чем в случае с AutoML, хотя это и не всегда так. К параметрам, определяющим нейронную архитектуру, обычно относят число слоев определенного типа, их размеры, связи между ними, наличие или отсутствие регуляризаторов и их численные характеристики. Одна из первых попыток оптимизации нейронной архитектуры, ставшая сегодня классикой NAS, - модель Genetic CNN[6], основанная на применении генетических алгоритмов оптимизации. Авторы работы предложили специальную структуру кодирования параметров сверточных слоев нейронной сети для классификации изображений в виде последовательности бинарных векторов, а затем применили генетический алгоритм для поиска наиболее удачной комбинации этих бинарных векторов. Генетические алгоритмы оптимизации – интересная и широкая область сама по себе. Это семейство алгоритмов оптимизации вдохновлено идеей эволюции и естественного отбора. Предполагается, что поставлена задача оптимизации некоторой функции , зависящей от вектор-параметра
, обычно дискретного. Предлагается определить способы случайного изменения параметров
(мутации), критерии отбора некоторого вектора x по значению измерения
, а также методы скрещивания двух произвольных векторов
и
. Тогда типичный генетический алгоритм устроен следующим образом: задается популяция векторов
, претерпевающая последовательные изменения: отбираются векторы популяции, прошедшие по заданным заранее критериям отбора, скрещиваются и подвергаются мутации, формируя новое поколение популяции. Ожидается, что спустя несколько этапов изменения популяции при правильно выбранных критериях отбора и механизмах скрещивания и мутации, популяция будет состоять из наиболее удачных векторов
, дающих оптимальные значения функции
. Для определенных задач генетические алгоритмы подходят, для других – лучше использовать альтернативные методы. Применение генетических алгоритмов к задаче NAS оказалось сравнительно успешным и задало целое направление исследований.
Другой подход к решению задачи NAS – дифференцируемые методы подбора нейронных архитектур. Примером такого подхода может служить архитектура DARTS [7], разработанная в 2018 году. Авторы работы предлагают дифференцируемый алгоритм выбора операций на ребрах графа, определяющего ячейку нейронной архитектуры. Структура этой ячейки фиксирована и определена заранее авторами работы. Задача состоит в автоматическом подборе операций, производимых с сигналом при обработки в рамках этой ячейки, причем число операций фиксировано. Авторы сводят задачу NAS к своеобразной задачи многоклассовой классификации, решая её при помощи градиентных методов.
Третий, и последний из наиболее распространенных, подход к решению задачи NAS – обучение систем на основе RL. Обычно, работы, посвященные этому методу, предлагают условному агенту последовательно выстроить архитектуру нейронной сети, ограничивая его некоторыми правилами. Эта схема похожа на генерацию текста современными языковыми моделями. В работе Neural architecture search with reinforcement learning [8] в качестве такого агента рассматривается рекуррентная нейронная сеть, генерирующая на каждом шаге своей работы представление нового слоя генерируемой нейронной архитектуры. В конце эта архитектура оценивается посредством решения целевой задачи, и по результатам оценки производится шаг градиентного спуска для обучения модели-генератора при помощи Q-уравнения Беллмана, широко применяющимся в RL.
На сегодняшний день все еще нет общепринятых подходов к решению задачи NAS и AutoML. Существуют наработки, экспериментальные фреймворки и развивающиеся идеи. Основная сложность работы с такими технологиями – высокие затраты времени и реурсов, необходимые для осуществления практически любого алгоритма NAS и AutoML. Между тем, стоит помнить, что эти алгоритмы базово основаны на методах оптимизации гиперпараметров.
[1] – Bergstra J., Bengio Y. Random search for hyper-parameter optimization //The journal of machine learning research. – 2012. – Т. 13. – №. 1. – С. 281-305.
[2] – Frazier P. I. A tutorial on Bayesian optimization //arXiv preprint arXiv:1807.02811. – 2018.
[3] – Akiba T. et al. Optuna: A next-generation hyperparameter optimization framework //Proceedings of the 25th ACM SIGKDD international conference on knowledge discovery & data mining. – 2019. – С. 2623-2631.
[4] – Vakhrushev A. et al. Lightautoml: Automl solution for a large financial services ecosystem //arXiv preprint arXiv:2109.01528. – 2021.
[5] – Feurer M. et al. Auto-sklearn 2.0: The next generation //arXiv preprint arXiv:2007.04074. – 2020. – Т. 24. – №. 8.
[6] – Genetic CNN, Lingxi Xie, Alan Yuille; Proceedings of the IEEE International Conference on Computer Vision (ICCV), 2017, pp. 1379-1388
[7] - Liu, H., Simonyan, K., & Yang, Y. (2018). Darts: Differentiable architecture search. arXiv preprint arXiv:1806.09055
[8]- Zoph, B., & Le, Q. V. (2016). Neural architecture search with reinforcement learning. arXiv preprint arXiv:1611.01578
Автор: alexlyk314