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

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

Недавно я посетил Учебный курс Full-Stack Deep Learning Bootcamp в кампусе Калифорнийского университета в Беркли, это замечательный курс, который учит глубокому обучению full-stack production. Одна из лекций, прочитанных Джошем Тобином, представила основательное введение в то, как машинное обучение должно начинаться и структурироваться на протяжении его жизненного цикла на техническом уровне, но также и на уровне бизнеса. Я многое узнал о том, как взяться за проект машинного обучения, от требований и планирования до оценки ваших результатов в профессиональной среде. В этом сообщении в блоге я хотел бы поделиться 5 шагами, которые вы можете использовать, чтобы настроить свои проекты на успех, в качестве любезности из лекции Джоша.

1 - Понять жизненный цикл проекта

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

  • Этап 1 - Планирование и настройка проекта: На этом этапе мы хотим решить проблему, над которой нужно работать, определить требования и цели, а также выяснить, как правильно распределить ресурсы.
  • Этап 2 - Сбор данных и маркировка. На этом этапе мы хотим собрать обучающие данные (изображения, текст, таблицы и т. д.) и потенциально аннотировать их достоверными данными, в зависимости от конкретных источников, откуда они берутся. Мы можем обнаружить, что получить данные слишком сложно или что их проще пометить для другой задачи. В таком случае вернитесь к этапу 1.
  • Этап 3 - Обучение модели и отладка модели: На этом этапе мы хотим быстро внедрить базовые модели, найти и воспроизвести современные методы для проблемной области. , отладить нашу реализацию и улучшить производительность модели для конкретных задач. Мы можем понять, что нам нужно собрать больше данных или что маркировка данных ненадежна (поэтому вернемся к фазе 2). Или мы можем понять, что задача слишком сложная и что существует компромисс между требованиями проекта (таким образом, вернемся к фазе 1).
  • Этап 4 - Развертывание и тестирование модели. На этом этапе мы хотим опробовать модель в ограниченной среде (т. е. в лаборатории), написать тесты для предотвращения регрессов. , и запускайте модель в производство. Мы можем увидеть, что модель не работает должным образом в лабораторных условиях, поэтому мы хотим продолжать повышать точность модели (поэтому вернемся к фазе 3). Или мы можем захотеть исправить несоответствие между обучающими данными и производственными данными путем сбора большего количества данных и анализа сложных случаев (таким образом, вернемся к фазе 2). Или мы можем обнаружить, что выбранный показатель на самом деле не влияет на поведение последующих пользователей и / или производительность в реальном мире оставляет желать лучшего. В таких ситуациях мы хотим пересмотреть показатели и требования проектов (таким образом, вернемся к фазе 1).

2 - Знайте, какие проекты имеют высокий приоритет

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

Высокая степень воздействия - В книге Машины предсказания авторы (Аджай Агравал, Джошуа Ганс и Ави Голдфарб) предлагают красивую ментальную модель экономики искусственного интеллекта. Стоимость предсказания и предсказания является центральной для принятия решений, дешевое предсказание будет универсальным для проблем во всех сферах бизнеса. Поэтому вам следует искать проекты, в которых дешевые прогнозы будут иметь огромное влияние на бизнес.

Высокая осуществимость. В своем популярном сообщении в блоге Программное обеспечение 2.0 Андрей Карпати сравнивает программное обеспечение 1.0 (традиционные программы с явными инструкциями) и программное обеспечение 2.0 (люди определяют цели, а алгоритм ищет работающую программу. ). Программисты программного обеспечения 2.0 работают с наборами данных, которые компилируются с помощью оптимизации, которая работает лучше, в более общем плане и требует меньших вычислительных затрат. Следовательно, вам следует искать сложное программное обеспечение, основанное на правилах, где мы можем изучать правила, а не программировать их.

Короче говоря, вам нужно запомнить 2 ключевых момента:

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

3 - Определите архетип своего проекта

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

  • Проекты, которые улучшают существующий процесс: улучшают оптимизацию маршрутов в службе совместного использования поездок, создают индивидуальную модель предотвращения оттока клиентов, создают более совершенный ИИ видеоигр…
  • Проекты, которые дополняют ручной процесс: превращение макетов в пользовательский интерфейс приложения, создание функции автозаполнения предложений, помощь врачу в выполнении его / ее работы более эффективно…
  • Проекты, которые автоматизируют ручной процесс: разработка автономных транспортных средств, автоматизация обслуживания клиентов, автоматизация дизайна веб-сайтов…

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

  • Проекты, которые улучшают существующий процесс: действительно ли ваши модели повышают производительность? Приносит ли повышение производительности ценность для бизнеса? Приводят ли улучшения производительности к маховику данных?
  • Проекты, которые дополняют ручной процесс: Насколько хорошо должна быть система, чтобы прогноз был полезным? Как собрать достаточно данных, чтобы сделать их такими хорошими?
  • Проекты, автоматизирующие ручной процесс: Каков допустимый уровень отказов для системы? Как вы можете гарантировать, что частота отказов не превысит этого уровня? Насколько недорого вы можете пометить данные из системы?

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

  • Для проектов, которые улучшают существующий процесс, вы можете реализовать цикл данных, который позволит вам улучшить эту конкретную задачу и будущие.
  • Для проектов, которые дополняют ручной процесс, вам может потребоваться действительно хороший дизайн продукта, который поможет снизить потребность в точности. Эта статья Создание совместного ИИ - хорошее введение в то, как начать думать о том, как проектировать системы, в которых люди и ИИ работают вместе.
  • Для проектов, которые автоматизируют ручной процесс, вы можете добавить людей в цикл и ограничить начальный объем проектов.

4. Измеряйте важные показатели проекта

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

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

  • Первый способ - это простое среднее (или средневзвешенное) этих показателей (например, оценка F1 может быть хорошей мерой, если вы ищете баланс между точностью и отзывом).
  • Второй способ - выбрать метрику в качестве порогового значения и оценить это пороговое значение (например, оценить значение точности, когда значение отзыва больше 0,5). Метрики пороговой обработки зависят от вашего суждения в предметной области, но вы, вероятно, захотите выбрать те, которые наименее чувствительны к выбору модели и наиболее близки к желаемым значениям.
  • Третий способ - использовать более сложную формулу, зависящую от предметной области (например, средняя точность по всем классам). Надежный процесс в этом направлении - сначала начать перечисление всех требований проекта, затем оценить текущую производительность вашей модели, затем сравнить текущую производительность с требованиями и, наконец, пересмотреть метрику по мере улучшения ваших показателей.

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

5 - Выберите подходящие базовые параметры проекта

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

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

Так где же искать базовые модели?

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

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

Заключение

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

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

Надеюсь, этот пост предоставил вам полезную информацию для успешного выполнения проектов машинного обучения. В следующих публикациях в блоге я поделюсь дополнительными уроками, которые я извлек из участия в семинаре Full-Stack Deep Learning Bootcamp, так что следите за обновлениями!

Этот пост изначально опубликован на моем веб-сайте.

Если вы хотите следить за моей работой в области систем рекомендаций, глубокого обучения, MLOps и журналистики в области науки о данных, вы можете ознакомиться с моими Medium и GitHub, а также другими проектами на Https://jameskle.com/. Вы также можете написать мне в Твиттере, написать мне напрямую или найти меня в LinkedIn. Или «присоединяйтесь к моей рассылке, чтобы получать мои последние мысли прямо на ваш почтовый ящик!