Как развернуть модель искусственного интеллекта, не написав ни единой строчки кода

Авторы Франческо Пальма и Исаак Росат

Сегодня вы можете читать газету, путешествуя по шоссе в своем беспилотном автомобиле, и покупать продукты без кассира. Но если вы пойдете к врачу, юристу или фермеру, ни одна интеллектуальная машина пока не поможет существенно их основной деятельности. Без суждения это кажется немного странным.

Ограниченный доступ к новым технологиям и нехватка специалистов - это проблемы, которые далеко не решены. Однако существует множество вариантов использования аналитики данных для традиционных профессиональных категорий, академических исследователей и профильных экспертов.

Хорошая новость заключается в том, что часть современных технологий, используемых сегодня для разработки приложений искусственного интеллекта, общедоступна. Рост числа библиотек с открытым исходным кодом и фреймворков глубокого обучения сделал возможным распространение таких технологий. С помощью трансферного обучения мы можем обучить модели глубокого обучения с меньшим количеством изображений или текстовых данных, чем когда-либо прежде. Это означает, что врачи могут использовать в своих рентгеновских снимках те же модели, что и в беспилотных автомобилях. Если вам интересно, вы можете посмотреть, как работают Fast.ai и Hugging Face.

Однако доступ к этим фреймворкам по-прежнему ограничен людьми с навыками программирования. Таким образом, несбалансированность между зрелостью технологии и ее доступностью для потенциальных пользователей породила растущую атмосферу в пользу искусственного интеллекта без кода.

Конечно, отсутствие кода по определению делает его менее сложным. Поскольку он менее сложен, чем кодирование приложений ИИ, он не обладает такими же возможностями и возможностями.

Платформа без кода никоим образом не может полностью заменить хорошо собранную команду специалистов по данным сегодня или завтра.

Основным ограничением искусственного интеллекта без кода является его строгость. Программы без кода не адаптированы к потребностям клиентов и могут не поддерживать рабочую нагрузку, необходимую для решения конкретной проблемы. Еще одним ограничением является сложность использования бизнес-знаний для повышения производительности или введения ограничений.

Помимо ограничений, в последние годы определенно возросло внимание к решениям без кода. Вы можете найти подробный обзор известных провайдеров здесь.

В этой статье мы опробуем Джотто на проекте классификации цветов. Giotto - это облачная платформа без кода, которая позволяет пользователям легко разрабатывать, развертывать и совместно использовать приложения AI, основанные на их собственных проблемах с данными. Он состоит из пяти этапов (от выбора данных до развертывания), и пользователю предоставляется возможность выбрать некоторые параметры или автоматизировать весь процесс. На сегодняшний день он поддерживает проблемы с классификацией изображений, но, как сообщается, в ближайшее время появятся дополнительные типы данных и задачи.

Данные и проблема

ИИ без кода не означает волшебный ИИ: предоставление хороших данных по-прежнему является приоритетом, иначе производительность модели легко ухудшится.

В этом примере мы выполнили задачу классификации 102 видов растений с использованием изображений их цветов. Цель классификации - дать возможность правильно оценить вид растения, загрузив изображение его цветов в программу.

Набор данных состоит из 5400 изображений цветов, приблизительно по 50 изображений на класс, всего 102 класса. Для данного изображения проблема состоит в том, чтобы правильно классифицировать его класс, т. Е. Вид цветка. Данные организованы в подпапки, каждая из которых содержит изображения отдельного / другого класса. Чтобы иметь возможность использовать Giotto, очень важно соблюдать такую ​​структуру папок (рисунок выше). Данные доступны здесь.

Выбор данных

После входа в систему и создания проекта нам предлагается выбрать тип данных и задачу. Для нашего приложения мы выбрали изображения и их классификацию.

Сразу после импорта данных мы можем быстро просмотреть их на этапе визуализации.

Предварительная обработка

Модели глубокого обучения работают хорошо, но, как известно, они требуют больших объемов данных. Даже если мы сделаем большой шаг к решению проблемы с переносным обучением, модель обычно будет работать лучше с большим количеством изображений для конкретных задач. Один из приемов, используемых в науке о данных, - это модификация исходных изображений для искусственного увеличения размера набора данных. Доступные модификации Giotto включают кадрирование, масштабирование, яркость, поворот и многое другое.

Не пытаясь быть капитаном очевидным, более яркая маргаритка все же остается ромашкой. Пока мы пытаемся отличить ромашки от других цветов, кормление модели оригинальной ромашкой И более яркой ромашкой должно увеличивать количество примеров ромашек, на которых модель может учиться. Таким образом, это также должно улучшить его производительность в большинстве случаев.

Более того, в некоторых случаях увеличение данных также может принести пользу модели, удалив систематический шум из данных. Представьте, что вы тренируете машину с набором данных, в котором все ромашки смотрят вправо, а все подсолнухи - влево. Как только машина научится, если вы дадите ей изображение подсолнуха, обращенного вправо, она может сказать вам, что это ромашка. Инструмент вращения (переворота) позволяет избежать этого, заставляя машину смотреть в обе стороны.

Даже если очень соблазнительно выбрать все преобразования для ваших данных, это не всегда лучшая идея. Например, если вы классифицируете что-то, для чего важны цвета, работа над яркостью может привести к снижению производительности.

В нашем случае мы выбрали все доступные дополнения данных, так как ни одно из них не повлияло на выполнение модели.

На следующем этапе визуализации вы можете взглянуть на образец измененных изображений (рисунок выше). Если преобразование выглядит плохо, вы всегда можете вернуться и удалить его.

Выбор модели

При выборе модели можно сделать два основных выбора: тип модели и гиперпараметры. В настоящее время Giotto соответственно поддерживает различные размеры resNet и диапазон количества эпох.

Размер resNet - это в основном количество слоев вашей сети. Например, resNet 34 будет означать 34 слоя нейронов. В общем, «чем глубже, тем лучше» применяется к выбору модели при условии, что вы вводите в модель достаточное количество данных. Однако более крупная сеть может также привести к увеличению времени работы и затрат.

Количество эпох - это количество раз, когда весь набор данных будет проходить через нейронную сеть. Или, другими словами, количество раз, когда сеть «увидит» данные. У Джотто есть классное правило ранней остановки: если производительность не улучшается от одной эпохи к другой, тренировка прекращается.

Наконец, вы можете выбрать метрику, которая лучше всего соответствует требованиям вашей задачи. Среди возможных вариантов у нас есть точность, AUC, оценка F1 и многое другое.

Что касается всех шагов, если вы не знаете, какие параметры выбрать, вы можете просто автоматизировать выбор и перейти к результатам.

В нашем случае мы выбрали resNet34 с 10 эпохами.

Полученные результаты

После того, как модель завершит работу, вы можете визуализировать ее работу. Важно уделить время тщательной проверке всех деталей здесь.

Сначала будет краткое изложение задачи, которое в основном описывает используемые данные. Затем следует сводка модели, в которой резюмируются параметры модели, которые были ранее выбраны. Наконец, у нас есть фактическая производительность обучения, такая как точность, изображения, которые сложнее всего классифицировать, и матрица неточностей. Также можно загрузить краткое изложение этой страницы в формате PDF.

В нашем случае тренировка машины с нашими настройками заняла всего 7 минут. Результаты были удовлетворительными, с точностью 95%, измеренной на проверочном наборе из 1180 изображений.

Развертывание

Теперь, когда модель обучена, у вас есть два варианта. Вы можете загрузить его как образ Docker и использовать в автономном режиме или развернуть в удобном веб-приложении, которым можно легко поделиться с другими пользователями. После развертывания (веб-приложение или Docker) модель можно использовать для классификации невидимых изображений.

В нашем случае мы развернули модель в веб-приложении, доступ к которому вы можете получить здесь (пароль: Loveflowers8).

Заключение

Мы показали, что можно достичь удовлетворительных результатов в задаче классификации изображений за несколько минут, не написав ни единой строчки кода. В результате получилось веб-приложение, которое можно использовать для создания новых изображений и делиться с другими пользователями.

ИИ без кода, вероятно, никогда не заменит специалистов по данным. Тем не менее, он остается надежной и удобной альтернативой для людей, у которых нет доступа к самым современным технологиям в области искусственного интеллекта.

Ссылки: