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

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

Прежде чем вы начнете создавать модели

Уделите время изучению своих данных

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

Не смотрите на все ваши тестовые данные

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

Убедитесь, что у вас достаточно данных

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

Поговорите с экспертами в области домена

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

Изучите литературу

  • Вы, вероятно, не первый, кто бросает ML в конкретную проблемную область, поэтому важно понимать, что было и что не было сделано ранее.
  • Сделайте обзор литературы, прежде чем приступить к работе; если вы оставите это слишком поздно, это может означать, что вам придется изо всех сил пытаться объяснить, почему вы работаете над одним и тем же или не опираетесь на существующие знания.

Подумайте о том, как ваша модель будет развернута

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

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

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

Не допускайте утечки тестовых данных в процесс обучения

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

Попробуйте разные модели

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

Не используйте неподходящие модели

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

Оптимизируйте гиперпараметры ваших моделей

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

Будьте осторожны, когда вы оптимизируете гиперпараметры и выбираете функцию

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

Ссылка

  1. Как избежать ловушек машинного обучения: руководство для ученых-исследователей, Майкл А. Лоунс, 2021 г., arXiv