Обеспечение существенных дебатов и предотвращение неминуемого провала проекта.

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

Предположительно, согласно отчету Gartner, 85% проектов машинного обучения потерпят неудачу. Что ж, я не слишком удивлен.

Но. Есть лекарство, о чем мы поговорим позже в этом блоге.

Эта проблема

Проблема не в том, что между командами и внутри команд недостаточно дискуссий.

Скорее проблема в том, что:

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

Короче говоря, это может быть беспорядок!

Почему?

Простой ответ: предположения

Решение

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

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

Фон

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

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

Желаемый результат

Желаемый результат концепции Марра:

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

Реализация ML

Марр (1982) определил трехуровневую иерархию для описания и анализа вычислительной системы:

Вычислительный уровень:

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

Алгоритмический уровень:

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

Уровень реализации:

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

Примечание

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

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

Заключение

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

Спасибо за прочтение! Хорошего дня!