Как разработать дорожную карту проекта машинного обучения

Что вы делаете в первую очередь, начиная новый проект по машинному обучению?

Я задавал этот вопрос различным лидерам ML в стартапах и получил несколько разных ответов. В произвольном порядке:

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

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

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

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

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

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

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

Что включает в себя дорожная карта ML? Позвольте мне рассказать вам об основных компонентах.

1) Определите проблему

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

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

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

Некоторые вещи, которые следует учитывать:

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

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

2) Исследовательская работа

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

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

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

  • С каким типом данных они работали?
  • Сколько пациентов, изображений и т. д.?
  • Как они аннотировали и структурировали данные обучения?
  • Какую модель архитектуры они использовали?
  • Как они обучали свою модель?
  • С какими проблемами они столкнулись?
  • Были ли проблемы с качеством или количеством изображений или этикеток?
  • Как они собирали независимые данные для проверки?

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

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

3) Понять данные

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

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

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

  • Какие аннотации необходимы? Наиболее распространены уровни пикселей, патчей и изображений.
  • Какие инструменты использовались для создания аннотаций? Могут ли аннотации исходить из какой-то другой модальности? Возможно, на основе молекулярного анализа биологического образца или существующего набора аннотаций, таких как Open Street Map для спутниковых изображений.
  • Насколько субъективны ваши аннотации? Исследование или проведение собственного эксперимента для оценки согласия между наблюдателями может выявить масштабы этой проблемы.

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

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

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

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

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

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

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

4) План проверки

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

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

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

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

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

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

5) Разработайте базовую модель

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

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

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

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

6) Повторяйте и улучшайте

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

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

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

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

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

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

7) Развертывание, мониторинг и обслуживание

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

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

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

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

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

Краткое содержание

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