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

Что вы делаете в первую очередь, когда начинаете новый проект машинного обучения?
Я задавал этот вопрос различным лидерам в области машинного обучения в стартапах и получил несколько разных ответов. Вот несколько из них, без определенного порядка:
- Попробуйте одну из наших существующих моделей, чтобы узнать, работает ли она для новой задачи.
- Начните исследовать и понимать данные.
- Изучите научные публикации, чтобы узнать, что уже было сделано до этого.
Обратите внимание, что ни один из этих первых шагов не связан с написанием кода и обучением новой модели. И ни один из них не связан с разработкой конвейера предварительной обработки данных.
Каждый из этих трех подходов имеет свои преимущества. Если новый проект достаточно похож на то, что уже было моделировано ранее (и данные, и задача), то использование уже реализованных моделей может быть очень быстрым способом установить базовый уровень для задачи. При этом вы также можете обнаружить новые проблемы, которые должны быть учтены при предварительной обработке данных или моделировании.
- Обучение мягким навыкам в области науки о данных с использованием симуляций реальной жизни подход с использованием двухчатботов в ролевой игре
- Хотите стать специалистом по обработке данных? Часть 1 10 трудных навыков, которые вам понадобятся
- Исследователи Amazon представили метод HandsOff, который устраняет необходимость вручную аннотировать синтетические изображения.
Это может привести вас к шагу №2: исследованию и пониманию данных. Или вы могли начать с этого. Важно понимать особенности нового набора данных. Возможно, предварительная обработка или аннотация должны быть выполнены по-другому. Возможно, в данных есть артефакты, которые нужно устранить, или метки не всегда корректны. Понимание проблем, с которыми предварительная обработка и моделирование будут иметь дело, является важным.
Но шаг, который пропускают некоторые команды и который является наиболее важным для успеха проекта, – это поиск литературы. Были ли моделированы аналогичные задачи на аналогичных данных кем-то другим? Если тип данных, с которыми вы работаете, общеизвестен, то вы можете применить очень жесткое определение “аналогичности”. Но если вы работаете с новым типом изображений, например, или решаете новую задачу, вам может потребоваться расширить определение “аналогичности”, чтобы найти соответствующие исследования.
Все три эти первых шага важны в процессе планирования нового проекта: Машинный обучение Roadmap.
Когда я работаю с клиентами над новым проектом, Roadmap является первым шагом. Roadmap уточняет объем работы на остальной период проекта. Он уменьшает неопределенность относительно того, что нужно реализовать. Также он уменьшает вероятность зацикливания или потери времени на неудачные подходы. Он экономит время и деньги, определяя наличие уже существующих инструментов перед тем, как что-то реализовать с нуля. И он увеличивает вероятность успеха проекта.
Что включает в себя ML Roadmap? Позвольте мне рассказать вам о ключевых компонентах.
1) Определение проблемы
Начните с ясного определения проблемы, которую вы хотите решить с помощью машинного обучения. И пока вы этим занимаетесь, отойдите на шаг назад и подумайте, подходит ли МО вообще для вашей проблемы. Это является основой всего проекта и помогает гарантировать достижение желаемых результатов.
Определение проблемы включает выявление бизнес-проблемы, данных, которые вам необходимо собрать, и целевой переменной. Четкое определение проблемы и определенные цели помогут избежать ненужных экспериментов и сосредоточиться на самых важных аспектах проблемы.
Установление критериев успеха является ключевым. Это может включать метрики оценки, но больше относится к намеренному использованию.
Некоторые вещи, которые следует учесть:
- Является ли ваше решение актуальным? Будет ли оно интегрировано в текущие рабочие процессы таким образом, что решит текущие узкие места или проблемы?
- Насколько точным должно быть решение, чтобы улучшить текущий процесс?
- Какими сценариями должна обобщаться модель? Это может включать такие вещи, как различные устройства съемки, пациенты или условия освещения.
- Насколько важно, чтобы модель была объяснимой? Понимание работы модели значительно облегчает выявление областей для улучшения. Но это также может быть важным для построения доверия или получения регуляторного одобрения.
- Будут ли ограничения вычислительных ресурсов после развертывания модели? Понимание любых ограничений обработки или памяти заранее может сузить возможные подходы.
Посвящение времени для определения проблемы заранее создает условия для успешного проекта машинного обучения, достигающего желаемых результатов.
2) Исследование связанной работы
Исследование связанной работы является критическим шагом в любом проекте МО. Оно помогает выявить существующие решения для аналогичных проблем и понять современное состояние области.
Вы можете начать с выполнения обзора литературы. Это включает чтение научных статей, материалов конференций и другой соответствующей литературы в данной области.
Важно отслеживать источники, которые вы прочитали, и основные результаты каждого источника. Это поможет вам структурировать свои мысли и выявить закономерности и пробелы в существующих решениях.
- С какими типами данных они работали?
- Сколько пациентов, изображений и т. д. было использовано?
- Как они разметили и структурировали свои обучающие данные?
- Какую архитектуру модели они использовали?
- Как они обучали свою модель?
- С какими сложностями они столкнулись?
- Были ли проблемы с качеством или количеством изображений или меток?
- Как они собрали независимые данные для проверки?
Все эти аспекты важно понять перед началом разработки вашего собственного решения.
Исследование связанной работы также может помочь найти существующие кодовые базы, наборы данных или предобученные модели, которые могут ускорить ваш проект и сэкономить время и ресурсы.
3) Понимание данных
Понимание данных является важным шагом в начале любого проекта машинного обучения. Это связано с тем, что качество и актуальность данных значительно влияют на производительность модели машинного обучения.
Для некоторых проектов данные могут уже быть собраны. Для других проектов необходимо сначала определить и выполнить процесс сбора данных. Ваш обзор литературы может помочь определить, какой тип данных вам следует собирать и сколько данных вам может потребоваться для вашего проекта.
После сбора данных, скорее всего, потребуется их аннотация – также задача, которую можно осветить с помощью обзора литературы.
- Какие виды аннотаций требуются? Самыми распространенными являются аннотации на уровне пикселей, патчей и изображений.
- Какие инструменты использовались для помощи в аннотации? Можно ли использовать аннотации из другого источника? Например, анализ молекул в биологическом образце или существующий набор аннотаций, такой как Open Street Map для спутниковых изображений.
- Насколько субъективны ваши аннотации? Исследование или проведение собственного эксперимента для оценки согласованности между наблюдателями может показать степень этой проблемы.
Также необходимо понять качество ваших данных. Это включает проверку на отсутствующие значения, выбросы и несоответствия в данных. Это могут быть артефакты подготовки тканей, дефекты изображения, такие как шум или размытость, или сценарии, не являющиеся предметом изучения. Выявляя проблемы с качеством данных, вы можете адекватно предварительно обработать и очистить их и спланировать какие-либо проблемы, которые вы не сможете устранить заранее.
Предварительная обработка данных может включать нормализацию, масштабирование или другие преобразования. Для больших изображений обычно требуется разбиение на маленькие патчи. Данные и аннотации должны храниться в формате, который эффективен для обучения модели.
Понимание данных также помогает выявить любые смещения, которые могут повлиять на производительность и надежность модели. Смещения могут быть связаны с отсутствием обучающих данных для конкретной подгруппы или ложной корреляцией. Партийные эффекты, связанные с техническими различиями, такими как различия в обработке в разных лабораториях или географические различия. Или даже примеры, размеченные различными аннотаторами.
Для большинства приложений следует проконсультироваться с экспертами в области изучения данных:
- Как были собраны данные?
- Что они представляют?
- Какие особенности изучаются при изучении данных?
- Какие вариации присутствуют или могут ожидаться при использовании данных в реальном мире?
- Какие артефакты или проблемы с качеством могут быть присутствующими и могут запутать модель?
Некоторые из этих аспектов могут быть довольно сложными и неочевидными для неподготовленного человека в определенной области.
Этот критический шаг понимания данных помогает оценить качество и актуальность данных, выявить и решить проблемы смещения данных и определить соответствующие методы предварительной обработки.
4) Планирование валидации
Составление плана валидации на ранней стадии проекта важно для выявления любых неожиданных проблем. Окончательная модель должна показывать свои возможности в реальном мире, и тестирование ее способностей является важным.
Первым вариантом валидации, который следует рассмотреть, является разделение обучающих данных на обучающую, валидационную и тестовую выборки. Обучающая выборка обычно является самой большой частью данных и используется для обучения модели. Валидационная выборка используется для настройки гиперпараметров модели, таких как скорость обучения или сила регуляризации. Тестовая выборка используется для оценки производительности модели, обеспечивая объективную оценку обобщающей способности модели на невидимых данных. Тестовую выборку следует полностью отделять от обучающих и валидационных выборок в процессе разработки модели.
Обычно обучающие, валидационные и тестовые выборки выбираются случайным образом из доступных данных с сохранением желаемого распределения классов или целевых переменных, чтобы избежать непреднамеренного смещения. Когда данные состоят из разных групп, таких как несколько изображений от каждого пациента, выборки, собранные из разных медицинских центров или изображения из разных географических регионов, требуется более тщательное стратификация групп для оценки обобщающей способности модели. Все примеры из одной группы должны быть включены в обучающую, валидационную или тестовую выборку и никогда не распределяться между ними.
Техники перекрестной проверки, такие как k-сложная или оставить-n-из, также могут быть использованы для получения более надежных оценок производительности путем систематического вращения данных между обучающими, валидационными и тестовыми наборами. Эта настройка особенно распространена для небольших наборов данных.
Оценка производительности модели включает вычисление одной или нескольких метрик на обучающих, валидационных и тестовых наборах. Подходящие метрики зависят от конкретного применения, но могут включать точность, чувствительность, специфичность, F1-меру, AUC-меру, DICE и многие другие. Каждая из этих метрик сравнивает предсказания модели с истинными значениями.
В некоторых случаях вычисление метрик на тестовом наборе может быть достаточной валидацией. В других случаях эта отложенная часть данных может быть недостаточно похожей на реальный сценарий. Возможно, ваша модель должна работать с пациентами из другого географического региона или медицинского центра, чем она была обучена, и у вас нет доступных аннотированных обучающих данных. Вам все равно необходимо проверить вашу модель на внешней группе, чтобы симулировать ее производительность в реальном мире и способность к обобщению.
5) Разработка базовой модели
После тщательного планирования и исследования вы, наконец, готовы приступить к моделированию. Но я не советую начинать с самой сложной модели глубокого обучения. Начните с простого. Сначала разработайте простую базовую модель. Это позволит вам протестировать обработку данных, аннотацию и валидацию, выявить любые неожиданные проблемы.
Существует множество подходящих алгоритмов для конкретного проекта, и выбор лучшего может быть сложным. Самой простой базовой моделью может быть линейный классификатор или регрессор, построенный на простых признаках. Или это может быть использование передачи обучения без настройки для минимизации времени обучения признаков. Не тратьте слишком много времени на тонкую настройку гиперпараметров на этом этапе; значения по умолчанию могут быть достаточными для этого первого шага.
Разработка базовой модели помогает установить показатель производительности, который может быть использован для оценки эффективности будущих моделей. Он помогает установить реалистичные ожидания производительности для вашего проекта и позволяет определить, насколько необходимо улучшить модель, чтобы достичь желаемого уровня производительности.
Эту базовую модель не следует считать конечной моделью. Скорее, ее следует использовать как отправную точку для разработки более сложных моделей, способных достичь лучшей производительности.
6) Итерация и улучшение
Итерация необходима для улучшения производительности модели до достижения желаемого уровня точности.
Первый шаг – проанализировать производительность модели. Это включает изучение нескольких аспектов:
- Анализ метрик обучения и валидации для выявления признаков переобучения или проблем с сходимостью модели.
- Стратификация метрик валидации по разным подгруппам для выявления областей для улучшения или возможных предубеждений.
- Классификация режимов отказа для выявления областей для улучшения.
- Обзор результатов с экспертами в области для получения обратной связи о важных недостатках.
После анализа производительности модели вам необходимо сформулировать гипотезы о причинах ее плохой производительности и о том, как можно решить проблемы. Решения могут быть ориентированы на данные, такие как сбор дополнительных данных или изменение процедур очистки, или ориентированы на модель, такие как изменения в архитектуре модели или гиперпараметрах. Просмотрите заметки из литературного поиска для получения идей.
Следующий шаг – протестировать ваши гипотезы, реализуя изменения и оценивая производительность модели на валидационных данных. Приоритизируйте свою работу, исправляя проблемы, которые наиболее вредны для вашей модели или которые можно легко исправить сначала.
Итерация и улучшение модели машинного обучения – это непрерывный процесс. Вам необходимо продолжать тестирование и совершенствование модели до достижения желаемого уровня точности. Держите эти итерации плотно, чтобы вы могли скорректировать курс как можно скорее, особенно если исправление требует трудоемких изменений в сборе данных или аннотации.
7) Внедрение, мониторинг и поддержка
После того, как у вас есть модель, которая соответствует вашему желаемому уровню производительности, вы можете развернуть ее в рабочей среде. Это включает интеграцию модели в ваше приложение или систему и уверенность в том, что она работает как ожидается.
Первый шаг – определить требования к развертыванию модели. Это может включать такие факторы, как производительность, масштабируемость, безопасность и пользовательский интерфейс. Вам также нужно выбрать платформу развертывания; типичными вариантами являются облачные сервисы или локальная инфраструктура.
Следующий шаг – упаковать модель в формат, который можно развернуть, и протестировать развертывание, чтобы убедиться, что оно работает правильно. Это может включать тестирование производительности, масштабируемости и безопасности модели. После развертывания модели вам необходимо отслеживать ее производительность и вносить необходимые корректировки.
Развертывание модели машинного обучения – это непрерывный процесс, и вам необходимо непрерывно улучшать модель, чтобы она оставалась эффективной со временем.
Наконец, важно документировать все изменения, внесенные в модель или ее процесс обучения. Это обеспечивает прозрачность и воспроизводимость модели с течением времени.
Резюме
Проекты машинного обучения являются сложными и итеративными. Этот процесс дорожной карты позволяет вам спланировать каждый аспект вашего проекта. Хотя детали могут измениться, общие компоненты останутся прежними. От определения проблемы до поддержки вашей модели, каждый шаг требует тщательного планирования. Возможно, где это возможно, вы также должны думать о том, как ваш планируемый подход может потерпеть неудачу и какие решения могут быть применены для решения возможных проблем.