Кто никогда не слышал о сайте соревнований Kaggle? Любой, кто интересуется наукой о данных или машинным обучением, знает Kaggle или аналогичные платформы.

Что ж, если вы только что присоединились к этому удивительному сообществу и не знаете, что такое Kaggle, позвольте мне обобщить для вас: это платформа, которая дает компаниям возможность позволить лучшим статистикам мира, специалистам по данным и инженерам по машинному обучению работать с огромным объемом своих данных, чтобы решить конкретное определение проблемы с данными (например, алгоритмы компьютерного зрения, проблемы НЛП, классификация текста и т. д.).

Задача должна быть решена как соревнование, и все участники являются конкурентами, борющимися либо за награду за соревнование (до 1 000 000 §), либо за известность и славу.

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

Этапы реального проекта машинного обучения

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

Рассмотрим в качестве примера систему обнаружения спама и сосредоточимся на каждом из основных этапов ее реализации.

  1. Понимание потребностей бизнеса

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

  • Зачем разрабатывать такую ​​систему?
  • Как это может помочь нашему клиенту?
  • Какую цель бизнес хочет достичь с помощью такой системы?
  • И т.д…

2. Формализация определения системной проблемы

Затем система должна быть разбита на функциональные составляющие:

  • Какое определение для СПАМ?
  • Что мы действительно хотим прогнозировать благодаря разрабатываемой системе
  • И т.д…

3. Сбор данных

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

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

4. Предварительная обработка данных

Затем нам нужно найти способ предварительной обработки данных, если это необходимо. В большинстве случаев данные необходимо предварительно обработать, прежде чем использовать их в качестве входных данных для алгоритмов. Если мы вернемся к нашей системе спама, нам может потребоваться «очистить» электронные письма, преобразовав все слова в буквы нижнего регистра или применив принципы обработки естественного языка (NLP) с точки зрения предварительной обработки данных (например, методы лемматизации или стемминга и т. д.). )

5. Моделирование

На этом этапе мы строим модель (модели), и снова необходимо ответить на правильные вопросы:

  • Какое семейство моделей лучше всего подходит для выполнения такого рода задач?
  • Как измерить производительность моей модели (моделей)?
  • Как выбрать лучшую модель среди реализуемых?
  • И т.д…

6. Тестирование модели

После того, как лучшая модель выбрана, ее необходимо протестировать в реальном мире, чтобы проверить, действительно ли она эффективна в реальном сценарии. Это помогает проверить ожидаемое поведение и подтвердить, что на этапе обучения модели не было внесено смещения (см. Смещение против дисперсии). После этого мы должны быть в состоянии ответить на следующие вопросы:

  • Действительно ли модель блокирует СПАМ?
  • Сколько раз система блокирует письмо, которое не является СПАМом?
  • И т.д…

7. Производство

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

Можно подумать, что мы все закончили, но на самом деле это только начало:

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

Этапы конкурса Data Science

Мы должны признать, что это гораздо проще, когда речь идет о конкурсе по науке о данных:

  • бизнес-требования уже понятны
  • проблема уже формализована
  • данные уже собраны и предоставлены конкурентам

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

  • предварительно обработать данные
  • выбрать модели для реализации
  • выберите лучший(е) (т.е. тот(е), которые оптимизируют целевые показатели)

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

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

В итоге, когда дело доходит до конкурса по науке о данных, нужно выполнить меньше шагов по сравнению с проектом «реального мира», потому что большая часть работы уже проделана самими участниками конкурса. Кроме того, эти задачи обычно самые сложные (определение целевой метрики, формализация проблемы и т. д.). Кроме того, вопросы развертывания выходят за рамки конкуренции. Единственное, на чем должны сосредоточиться конкуренты, — это модель, которую необходимо внедрить, и целевое значение метрики, которое нужно оптимизировать, чтобы получить лучший результат в таблице лидеров.

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

Подведем итоги

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

Эта статья основана на курсе Coursera Как выиграть конкурс по науке о данных по специализации Расширенное машинное обучение.