«Все — гении. Но если судить о рыбе по ее способности взбираться на дерево, она всю жизнь проживет, считая себя глупой».

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

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

Как избежать кризиса воспроизводимости

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

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

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

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

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

Единороги против Full Stack ML Teams

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

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

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

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

Чтобы обеспечить сотрудничество и устранить разрозненность, вам следует рассмотреть следующие тактики:

  • Что касается прототипирования, поддержка полиглотов в Jupyter Notebook (Python, R, Julia и многие другие) означает, что все члены команды могут вносить свой вклад в прототипы на том языке, который они предпочитают.
  • Для разработки установите стандартную версию Python для всех команд, чтобы уменьшить количество ошибок «работает на моей машине».
  • Из-за популярности машинного обучения Python является одним из самых быстроразвивающихся языков в программном обеспечении, а это означает, что новые версии пакетов и уязвимости появляются каждый день. Убедитесь, что все заинтересованные стороны могут выявлять и устранять уязвимости в процессе разработки, тестирования и производства, чтобы избежать незащищенных разрозненных хранилищ.

Платформа ActiveState была разработана для работы со многими из этих аспектов, от управления полиглотом до стандартного развертывания дистрибутива Python и централизованной информации/обновлений безопасности для всех заинтересованных сторон.

Для получения дополнительной информации см. Обзор платформы ActiveState.