Мнения 11 мая 2023

Как создавать нейросети с помощью AutoML: 5 лучших библиотек для этого

Далее

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