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

В этом руководстве вы узнаете:

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

Некоторые определения, которые нам потребуются

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

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

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

  • Размер объекта - ширина в метрах², высота в сантиметрах и т. Д.
  • Категориальная мера объекта - Мужчина \ Женщина, Автомобиль \ Автобус \ Велосипед \ Грузовик и т. Д.
  • Цена, например цена продажи в долларах.
  • Значение цвета одного пикселя (0,0,0) - RGB с 3 функциями
  • Измерение сигнала в 1 временной точке - Амплитуда звукового сигнала (1 дБ) и т. Д.
  • Формы машинного обучения. В наши дни отраслевые тенденции определяют несколько различных форм машинного обучения:
  • Характеристика - отдельная точка данных в выборке, или, другими словами, определенная характеристика выборки данных. Примеры:

Технические соображения

Версия TL / DR

  • Эмпирическое правило: если человек смотрит на данные и не может распознать закономерность, машинное обучение, вероятно, тоже
  • Два типа алгоритмов - требует обучения или предварительно обучен
  • Алгоритмы неконтролируемого обнаружения или обнаружения аномалий редко работают, если у вас нет очень чистых данных
  • С другой стороны, есть простые реализации разделения групп для помеченных групп.
  • Чем больше обучающих данных, тем лучше, минимальный объем данных зависит от требований проекта и реализованных алгоритмов.
  • Форматирование, проверка и преобразование данных составляет примерно 70% работы.
  • Глубокое обучение не решит ваши проблемы, если только вы не будете заниматься зрением \ обработкой сигналов.
  • Убийственная особенность важнее алгоритма

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

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

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

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

Обучить или использовать предварительно обученный алгоритм

ML известен периодами обучения алгоритма: вы предоставляете свои собственные данные или какой-либо другой существующий набор данных и обучаете алгоритм распознавать закономерности в интересующих вас данных. . Иногда люди используют фразы «под присмотром» и «без присмотра»:

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

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

Обратите внимание, как контролируемые, так и неконтролируемые методы требуют обучения алгоритму.

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

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

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

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

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

Алгоритмы неконтролируемого обнаружения или обнаружения аномалий редко работают, если у вас нет очень чистых данных

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

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

Интересный пример кластеризации изображений рукописных цифр в разные группы без присмотра можно увидеть здесь:

Взято из этой ссылки тензорного потока

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

С другой стороны, есть простые реализации разделения групп для помеченных групп.

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

Сколько данных вам потребуется для обучения?

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

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

Некоторые тесты из нашего личного опыта:

  • При прогнозировании и анализе тенденций, чтобы иметь возможность распознать сезонную (годичную) тенденцию, требуется минимум f 2 лет выборки. Это связано с тем, что в целом один год используется для базовой оценки, а другой год - для оценки тенденций.
  • В 3D-моделировании (вы можете посмотреть в качестве примера наш средний пост) - Требуется не менее 5 000 3D-моделей конкретного объекта (5 000 моделей стульев).
  • Анализ видео. Когда мы работали над нашим стартапом по чтению по губам, мы увидели, что нам нужно как минимум 70000 часов видео с разговорами людей (это было около 10 терабайт данных), чтобы наша нейронная сеть могла чему-либо научиться.

Дело не только в том, сколько данных, но и в том, как они отформатированы.

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

В проектах 70% реальной работы находится на этом этапе переформатирования данных и тестирования.

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

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

Убийственная особенность важнее алгоритма

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

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

Сроки, цены и рекомендации по набору персонала

Первоначальная проверка данных занимает от 1 часа в простейшем случае до двух недель при полной занятости.

Время, необходимое для исследования конкретных алгоритмов или новых алгоритмов, выпущенных академическим сообществом:

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

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

Выполненные на заказ проекты могут быть дорогими, цены колеблются от 120 до 300 долларов за час работы.

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

Как распознать подходящую компанию \ консультанта \ найма ML

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

О нас

Мы - люди, стоящие за datask.co - Вы спрашиваете данные, мы отвечаем - машинного обучения как сервисной компании. Мы также ведем блог 2d3d.ai и консалтинговую компанию по машинному обучению abelians.com.

Первоначально опубликовано на https://2d3d.ai 13 апреля 2020 г.