AutoML — это подход, который позволяет создавать решения на основе искусственного интеллекта и машинного обучения либо полностью автоматически (без участия человека в экспериментах и разработке нейронной сети), либо полуавтоматически.
Для чего нужен AutoML
Как выглядит работа с нейронными сетями? Мы берем простые типовые задачи — классификацию изображения, классификацию текстов, классификацию или оценку табличных данных, прогнозирование временных рядов. Например, мы хотим:
- классифицировать снимки КТ легких и определять, болен человек или здоров;
- классифицировать обращения в техподдержку;
- классифицировать сердечные заболевания по симптомам в виде таблицы со значением колонок да/нет;
- оценивать стоимость недвижимости по объявлению;
- прогнозировать тренд временного ряда — например, продажи компании или количество поломок оборудования.
Обычно для решения подобных типовых задач разработчик ИИ собирает нейронную сеть (или берет классический алгоритм машинного обучения), запускает ее в обучение и смотрит точность. Далее он в течение нескольких недель проводит эксперименты с этой нейронной сетью, подбирает архитектуру нейронной сети, параметры, количество слоев, количество нейронов, активационные функции, размеры батча при обучении и другие параметры, чтобы нейронка выдала хорошую точность. Обычно ты начинаешь с точности 87% и за несколько недель доходишь до желаемой точности в 99%, проводя много экспериментов. Много — это чаще всего десятки и сотни экспериментов с интеллектуальным подбором архитектуры нейронной сети.
Сейчас эта работа уходит на второй план. Набирают популярность фреймворки, которые позволяют полностью автоматически подбирать архитектуру нейронных сетей, причем с хорошей точностью. Мы проводили сравнение: группа из пяти разработчиков в течение недели по одному-два часа в день экспериментировала с нейронками и добилась точности в 99%, при этом алгоритм AutoML AutoKeras буквально за пару часов собрал нейронку, которая показала точность 99,3%.
Таким образом, AutoML:
- значительно сокращает время разработки нейронной сети;
- выдает точность не ниже, чем человек, а иногда и выше;
- упрощает вход в профессию: для создания нейронки с помощью AutoML достаточно гораздо меньших компетенции и опыта, чем если экспериментировать вручную.
С какими задачами справляется AutoML
Возможности AutoML не безграничны. Он справляется с простыми типовыми задачами — классификация изображений, текстов, табличных данных, регрессия табличных данных, прогнозирование временного ряда, сегментация изображений с помощью U-net.
AutoML не справляется со сложными большими задачами — object detection, распознаванием речи, сложными генеративными сетками. К счастью, как мы видим на рынке, порядка 50% всех задач — типовые, с которыми AutoML справляется. А наш опыт — это сотни реальных проектов наших студентов для российских компаний от крупных холдингов до мелких стартапов.
Библиотеки AutoML
На рынке существует несколько AutoML-библиотек. Для ML есть две основные библиотеки: Keras и PyTorch. Keras — это как машина с коробкой-автоматом, более проста для освоения и позволяет выполнять практически все типовые проекты. PyTorch — как машина с механической коробкой передач. Она требует больше усилий для освоения, но в некоторых случаях позволяет выполнять более сложные задачи, более тонкие настройки. Все топовые сетки — например, от OpenAI — пишутся на PyTorch. Мы перечислим AutoML-библиотеки для Keras, но есть похожие для PyTorch.
Пять библиотек AutoML показались нам самыми функциональными и удобными. Возможно, кто-то назовет другие — мы не претендуем на абсолютную справедливость. Мы с уверенностью говорим, что AutoML — очень важный тренд, и это стоит уметь и знать, а подборку фреймворков каждый определяет для себя. Мы выбрали эти пять, активно ими пользуемся для решения наших задач.
AutoKeras
AutoKeras — это базовая библиотека для AutoML на Keras. В чем плюс AutoKeras? Мы даем ей датасет, говорим, что нам нужно — классификацию изображений, текстов или табличных данных, — и AutoKeras полностью сама собирает архитектуру нейронки. У нее есть настройки (какой тип тюнера использовать, какой тип поиска, как много попыток вы ей даете), а дальше вы просто говорите ей работать. AutoKeras сама переберет сетки, соберет разные архитектуры, будет использовать разные слои, предобученные сетки. Она очень умная. За полчаса, час или два часа она собирает и отдает готовую достойную сетку с хорошей точностью.
AutoKeras чрезвычайно удобна. Вам можно не знать, что такое нейронные сети и что такое архитектура — просто подготовить и отдать датасет, и AutoKeras сделает все сама, отдаст готовую нейронку, которую вы можете выложить и создать API для продакшн-разработчиков.
KerasTuner
KerasTuner — это часть AutoKeras. Этот фреймворк не создаст за вас архитектуру с нуля, вы выбираете ее сами. Например, вы говорите: будут сверточные слои, потом maxpooling-слои, flatten-слой, dense-слои — вы собираете архитектуру сверточной нейронной сети, а KerasTuner подберет параметры. Вы говорите ему: подбери, пожалуйста, сколько сделать нейронов, какие ядра свертки, какие активационные функции. Он автоматически подберет все параметры на основе той архитектуры, которую вы создали.
Чем KerasTuner хуже AutoKeras? Вам надо обладать компетенцией и понимать, как пишутся на Keras нейронки и какую архитектуру написать. При этом KerasTuner, если вы ему создали U-net-архитектуру для сегментации изображений, запросто подберет подходящие параметры подходящие, а AutoKeras не позволяет создать U-net-архитектуру для сегментации изображений. В этом плюс KerasTuner, но все-таки это чуть менее центральный инструмент для работы.
Talos
Библиотека Talos чуть проще по синтаксису работы, но решает примерно те же задачи, что и KerasTuner. Вы сами создаете архитектуру, и она подбирает параметры. Плюс Talos в том, что она позволяет подбирать чуть больше параметров, чем KerasTuner — например, размеры батчей в процессе обучения нейронки.
Auto-Sklearn
Sklearn — известная библиотека для классического машинного обучения, а Auto-Sklearn — это фреймворк AutoML, который позволяет создавать на Sklearn автоматические модели. Он создает не нейронки, а именно модели классического машинного обучения — например, деревья решений и другие подобные — используя алгоритмы классического машинного обучения. Он полностью сам собирает модель, но ограничен функционалом классического машинного обучения. Например, сегментацию изображений на нем не сделаешь.
Генетические алгоритмы
В нашем университете был разработан собственный фреймворк, который работает на генетических алгоритмах и так же, как AutoKeras, полностью автоматически собирает архитектуру нейронной сети. Но у него другой принцип: применяется эволюционное моделирование, и сотни ботов конкурируют друг с другом, собирают различные архитектуры нейронок. Худшие выбывают из игры, а лучшие выживают и оставляют потомство со своими признаками, и за некоторый объем итераций собирается нейронная сеть. Когда мы запускали сравнение, наш собственный фреймворк оказался по скорости работы и по точности идентичен с AutoKeras. Он так же позволяет, не зная ничего, с нуля собирать архитектуру и параметры нейронных сетей и выдает готовую модель. Единственный минус — этот фреймворк доступен только для наших студентов.
Почему нужно изучать AutoML
AutoML — не панацея, но в значительном проценте случаев он сильно ускоряет и упрощает разработку нейронных сетей, а AutoKeras или фреймворки на основе генетических алгоритмов по подбору архитектур нейронных сетей позволяют с меньшей компетенцией войти в сферу ML и AI и создать обученную нейронную сеть.
Я уверен, что в 2023 году AutoML — направление, которое обязательно нужно изучить и рассмотреть как крайне важный инструмент, если вы занимаетесь ML и AI или если вы хотите внедрить нейронки в свою работу, но не готовы всерьез углубляться в изучение AI. AutoML не решит все задачи, но во многих из них сильно упростит работу. Желаю удачи в работе в сфере AI и ML и в создании AI-проектов.
Читать далее:
Посмотрите на Землю в самом высоком разрешении: фото сделал спутник третьего поколения
Планетологи установили, что находится в центре Луны
Две суперземли нашли на краю обитаемой зоны: на одной из них комфортная температура
Изображение от kjpargeter на Freepik