ПОЛНОЕ РУКОВОДСТВО

Введение в машинное обучение - для менеджеров

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

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

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

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

Для кого эта статья?

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

Что такое машинное обучение и почему оно важно?

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

Что такое машинное обучение?

Машинное обучение - это, в конечном счете, поиск закономерностей в структурированных данных и составление прогнозов. Это могут быть (и часто бывают) прогнозы о том, что произойдет в будущем. Но это не единственный способ использования термина прогнозы в решениях для машинного обучения. Часто это также означает предсказание ответов на такие вопросы, как: Что за собака на этом изображении? Последний вид предсказания - это не предсказание, основанное на времени (взгляд в будущее), а скорее предсказание в терминах: Какой ответ дал бы всезнающий оракул, если бы задал этот конкретный вопрос?

Чем машинное обучение отличается от традиционного программного обеспечения?

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

Традиционные программные решения построены на дедукции, в то время как решения машинного обучения построены на индукции.

Чем машинное обучение отличается от ИИ?

Кроме того, в этой статье мы будем использовать термин машинное обучение, но вместо этого часто используются термины искусственный интеллект или ИИ. Более подробное обсуждение см. В разделе «Машинное обучение против искусственного интеллекта. Они не одинаковы".

Почему так важно машинное обучение?

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

  • Обработка изображений (например, распознавание лиц);
  • Обработка звука (например, автоматическое добавление субтитров к видео);
  • Обработка текста (например, перевод между разными естественными языками);
  • Обработка временных рядов (например, прогнозирование использования энергии в будущем);
  • Численное моделирование (например, оценка справедливой цены дома или вероятности того, что конкретный покупатель купит определенный продукт).

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

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

Подходит ли машинное обучение для вашей компании и проекта?

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

Как бизнес-менеджер вы сталкиваетесь с двумя рисками:

  • Внедрение машинного обучения в решение, где оно не может повысить ценность, чтобы оставаться современным и актуальным;
  • Неспособность использовать машинное обучение в решении, которое повысило бы ценность.

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

Общие признаки того, что решение для машинного обучения может подойти.

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

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

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

Как на самом деле выглядит работающее в производственной среде решение машинного обучения?

Может возникнуть соблазн потратить 2–3 недели и составить PoC (доказательство концепции): модель, которая может использовать некоторые данные, имеющиеся в вашей компании, и давать некоторые потенциально полезные прогнозы. Существуют миллионы руководств, в которых показано, как достичь этого с помощью нескольких строк кода с использованием некоторых стандартных библиотек, и есть соблазн думать, что создание вашей модели будет легким. Не будет. Хотя многие люди могут подумать, что создание первой модели ведет их 80% пути к решению для машинного обучения, люди, которые ранее создавали и внедряли решения для машинного обучения, будут знать, что PoC ближе к 10% пути .

  • Данные: используются для поиска существующих шаблонов и построения модели;
  • Код: используется для определения и обслуживания модели, а также ее интеграции с другими службами;
  • Модель: используется для создания прогнозов.

Все решения машинного обучения можно условно разделить на три концепции:

Все три из них выглядят очень по-разному при сравнении PoC и производственного решения.

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

Какая команда вам нужна для создания решения для машинного обучения?

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

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

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

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

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

Стоит ли вам найти или создать команду машинного обучения?

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

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

Хорошая команда машинного обучения полагается не только на опыт разработки машинного обучения. Опыт в разработке программного обеспечения, DevOps и управлении одинаково важны, и общая структура может выглядеть так:

В Data Revenue каждый в нашей команде является инженером по машинному обучению. Это дает нам преимущество перед компаниями, которые рассматривают машинное обучение как средство для достижения цели, а не как самоцель. Но нам все же потребовалось 2 года проб и ошибок, чтобы создать хорошую команду, и 4 года, чтобы добраться до точки, когда мы полностью доверяем нашему процессу найма инженеров по машинному обучению (теперь мы нанимаем 1 из каждых 150 квалифицированных кандидатов).

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

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

Какая идеальная структура для проекта машинного обучения?

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

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

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

С самого начала вам следует тщательно структурировать и ограничить сроки фазы исследования и экспериментов. Важно, чтобы все знали, что цель: «Какую лучшую модель мы можем получить за x дней?» а не «Какая лучшая модель, которую мы можем получить?» В противном случае вы навсегда застрянете в цикле «еще один эксперимент».

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

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

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

Почему вы все равно можете потерпеть неудачу: распространенные ошибки

  • Люди могут не доверять вашей модели. Даже если ваша модель дает очень точные прогнозы, может быть трудно завоевать доверие вашей команды и клиентов, если вы не можете объяснить, как вы получаете ответ. Вы должны понимать все жесткие требования, касающиеся объяснимости и интерпретируемости, прежде чем переходить к решению для машинного обучения. В некоторых областях, таких как фармакология, объяснимость также может быть требованием закона.
  • Вы можете создать неустранимое решение: недостаточно иметь модель, которая работает сейчас. Ваше решение нужно будет обслуживать, обновлять и исправлять. Вам понадобится хороший конвейер, чтобы вносить изменения в модель, код и данные в производство в будущем, иначе вы останетесь с моделью, которая работает сегодня, но не завтра, и не может быть исправлена, когда ваши потребности изменятся. Хороший способ избежать этого - иметь опытную команду, которая уже совершила эти ошибки и извлекла уроки из них.
  • Ваша модель может быть слишком сложной. Даже если ваша модель дает правильные результаты, на удивление часто обнаруживается гораздо более простое решение после всей работы, которая идет на создание решение машинного обучения готово. Например, ваше исследование может обнаружить, что вы можете предсказать цену, просто посмотрев на цену на тот же день год назад. Поэтому, прежде чем строить какую-либо модель, вы должны сначала создать наиболее разумную базовую линию и использовать ее в качестве эталонного теста во время проекта.
  • Ваша модель может навредить или угрожать определенному бизнес-подразделению. Хотя машинное обучение часто дополняет, а не заменяет человеческий талант, в некоторых случаях люди могут воспринимать ваше решение как угрозу своей работе. Например, вся карьера финансового профессионала может вращаться вокруг поиска закономерностей в данных, и, возможно, ваша модель автоматизирует каждый аспект этого. Будьте откровенны с тем, на что направлена ​​ваша модель и повлияет ли она на существующие роли в вашей компании. Поговорите со своими командами о том, как могут измениться их роли, и как использование машинного обучения для некоторых из наиболее утомительных задач может освободить их, чтобы они могли сосредоточиться на том, чего не может сделать алгоритм.
  • Внешние факторы могут измениться. Решения машинного обучения, естественно, очень чувствительны к данным, на которых они обучаются. Если внешнее событие означает, что текущие данные сильно отличаются от исторических данных, вы можете увидеть резкое снижение надежности вашей модели. Например, модели, обученные на временных данных за апрель 2019 года, могут быть очень неточными в апреле 2020 года, поскольку кризис COVID-19 сломал многие модели и ожидания.
  • Ваша модель может отображать предвзятость. Человеческие предубеждения часто присутствуют в данных, на которых обучается машинное обучение. Например, система COMPAS, используемая в судебном процессе США для определения того, кого из заключенных следует освободить досрочно, обнаружила значительную расовую предвзятость. Если ваше решение для машинного обучения страдает предвзятостью, важно обнаружить это как можно раньше, а не закрывать весь проект после того, как он попадает в производство.

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

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

Первоначально опубликовано на https://www.datarevenue.com.