Может ли автоматизированное машинное обучение превзойти модели, созданные вручную?

Тестирование моделей Auto-Keras на реальном наборе данных

Автоматическое машинное обучение (AutoML) можно использовать для автоматического поиска и обучения моделей машинного обучения. Вам больше не нужно создавать модель самостоятельно - алгоритмы AutoMl проанализируют ваши данные и автоматически выберут лучшую модель.

Но насколько хороши эти модели на самом деле? Можно ли их сравнить с нестандартными моделями или они даже лучше? Неужели нам больше никогда не придется вручную выбирать другую модель? Давайте разберемся!

Введение: Auto-Keras

Такие компании, как Google, уже предлагают продукты AutoML, но с Auto-Keras для этого также есть решение с открытым исходным кодом. В официальном примере начала работы Auto-Keras используется для поиска лучшей нейронной архитектуры для набора данных MNIST. Когда я попробовал этот пример, получившаяся модель набрала ~ 98%. Это довольно впечатляюще, поэтому я решил использовать Auto-Keras, чтобы попробовать себя в Kaggle Titanic Dataset.

Моя лучшая оценка в этом соревновании составляет примерно 80%, что в настоящее время ставит меня в число 900 лучших среди всех участников. Это достаточно приличный результат, так что давайте посмотрим, сможет ли Auto-Keras превзойти меня!

Вы можете найти Блокнот с полным кодом здесь

Настраивать

Я использовал Google Colab для этого проекта. Чтобы установить Auto-Keras в Google Colab, просто запустите:

!pip install autokeras

Если вы хотите запустить это локально, вы можете просто установить Auto-Keras из командной строки с помощью pip.

Данные

В этом примере я использовал набор данных, который вы можете скачать с Kaggle Competition. Чтобы использовать данные в модели Auto-Keras, вам необходимо импортировать их в виде массива numpy. Поскольку данные Титаника содержат текстовые данные, нам нужно сначала выполнить некоторую предварительную обработку:

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

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

Поиск подходящей модели

После того, как вы получили x_train, y_train, x_test и y_test для своего набора данных, вы можете использовать fit , чтобы найти лучшую модель и обучить ее:

Вот и все - две строчки кода - это все, что вам нужно. Все остальное происходит автоматически.

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

После обучения модели я использовал ее для создания прогнозов и загрузил прогнозы в Kaggle. Я получил оценку 0,79904. Это немного хуже, чем моя ручная модель, но нужно учитывать, что Auto-Keras все еще очень новый. TabularClassifier в настоящее время поддерживает только LGBMClassifier, что не идеально для этого набора данных. Если проект будет продолжен в будущем, мы, вероятно, сможем ожидать еще лучших результатов. Также найти модель было невероятно быстро и легко, так что я считаю это очень хорошим и многообещающим результатом!

За и против

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

Модели «черного ящика» уже активно обсуждаются в проектах машинного обучения, но при использовании AutoML весь процесс становится еще более черным ящиком - вы просто добавляете некоторые данные и надеетесь на лучшее.

Это некоторые риски, о которых вам необходимо знать при внедрении AutoML в свои проекты машинного обучения.

Значение для будущей работы

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

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