Как избежать ловушек машинного обучения: руководство для начинающих исследователей и практиков машинного обучения
В этом посте вы найдете список частых ошибок, совершаемых при использовании методов машинного обучения, а также то, что вы можете сделать, чтобы их избежать. Первоначально он обсуждается в [1].
Прежде чем вы начнете создавать модели
Уделите время изучению своих данных
- Убедитесь, что данные поступают из надежных источников
- Не думайте, что, поскольку набор данных использовался в ряде статей, он хорошего качества.
- Если вы обучаете свою модель, используя неверные данные, то, скорее всего, вы сгенерируете неверную модель: процесс, известный как мусор из мусора.
- Проведите предварительный анализ данных. Ищите отсутствующие или противоречивые записи или примеры
Не смотрите на все ваши тестовые данные
- Изучая данные, вы обнаружите закономерности и сделаете выводы, которые помогут вам в моделировании. Однако важно, чтобы вы не делали непроверяемых предположений, которые впоследствии будут использоваться в вашей модели.
- Даже если вы делаете предположения, они должны учитываться только при обучении модели, а не при тестировании. Поэтому избегайте внимательного изучения каких-либо тестовых данных на начальном этапе исследовательского анализа. В противном случае вы можете сознательно или бессознательно сделать предположения, которые ограничивают универсальность вашей модели.
Убедитесь, что у вас достаточно данных
- Без достаточного количества данных невозможно обучить модель, которая обобщает
- Если вы не можете получить больше данных, лучше используйте существующие данные с помощью перекрестной проверки.
- Используйте увеличение данных в задачах классификации, когда у вас меньше выборок в одних классах, чем в других; ситуация, известная как дисбаланс классов
Поговорите с экспертами в области домена
- В начале проекта эксперты в предметной области могут помочь вам понять данные и указать на функции, которые могут быть предиктивными.
Изучите литературу
- Вы, вероятно, не первый, кто бросает ML в конкретную проблемную область, поэтому важно понимать, что было и что не было сделано ранее.
- Сделайте обзор литературы, прежде чем приступить к работе; если вы оставите это слишком поздно, это может означать, что вам придется изо всех сил пытаться объяснить, почему вы работаете над одним и тем же или не опираетесь на существующие знания.
Подумайте о том, как ваша модель будет развернута
- Почему вы хотите построить модель ML? Для многих исследований конечной целью является создание модели машинного обучения, которую можно развернуть в реальной ситуации. Например, если он будет развернут в среде с ограниченными ресурсами, такой как датчик или робот, это может наложить ограничения на сложность модели.
Как надежно строить модели
Построение моделей — одна из самых приятных частей машинного обучения. С современными фреймворками машинного обучения легко применять всевозможные подходы к вашим данным и смотреть, что из них приживется. Однако это может привести к неорганизованному беспорядку экспериментов, который трудно оправдать и трудно описать. Поэтому важно подходить к построению модели организованно.
Не допускайте утечки тестовых данных в процесс обучения
- Сохраняйте тестовые данные, чтобы измерить, насколько хорошо ваша модель обобщает
- Когда информация о тестовых данных просачивается в процесс обучения, тестовые данные больше не обеспечивают надежную меру общности.
- Это распространенная причина, по которой опубликованные модели машинного обучения часто не могут быть обобщены на реальные данные.
- Во время подготовки данных использование информации о средних значениях и диапазонах переменных во всем наборе данных для выполнения масштабирования переменных приводит к утечке информации о тестовом наборе в обучающий набор.
- Чтобы предотвратить утечку информации, такая обработка должна выполняться только с обучающим набором.
- Другими распространенными примерами утечки информации являются выбор признаков перед разделением данных и использование одних и тех же тестовых данных для оценки общности нескольких моделей.
- Лучшее, что вы можете сделать, чтобы предотвратить эти проблемы, — это разделить подмножество ваших данных прямо в начале вашего проекта и использовать этот независимый набор тестов только один раз для измерения общности одной модели в конце проекта.
Попробуйте разные модели
- Единой лучшей модели машинного обучения не существует.
- Ни один подход ML не лучше другого, если рассматривать все возможные проблемы.
- Найдите модель машинного обучения, которая хорошо работает для вашей конкретной проблемы
- Попробуйте несколько моделей, чтобы узнать, какая из них лучше всего подходит для вас
Не используйте неподходящие модели
- Доступность моделей с открытым исходным кодом с небольшими трудностями также позволяет легко применять неподходящие модели к вашим данным.
- Применение моделей, которые ожидают категориальные признаки к набору данных, состоящему из числовых признаков, или попытка применить модель, которая предполагает отсутствие зависимостей между переменными, к данным временных рядов, являются примерами неподходящих моделей.
- Другим примером является использование модели, которая излишне сложна, например, глубокая нейронная сеть — хороший выбор, если у вас ограниченные данные, если знание предметной области предполагает, что базовый шаблон довольно прост, или если модель должна быть интерпретируемой.
- Не используйте новизну в качестве оправдания выбора модели: старые, зарекомендовавшие себя модели часто работают лучше, чем новые
Оптимизируйте гиперпараметры ваших моделей
- Многие модели имеют гиперпараметры, т. е. числа или настройки, влияющие на конфигурацию модели.
- Многие из этих гиперпараметров существенно влияют на производительность модели, и, как правило, не существует универсального решения.
- Используйте какую-то стратегию оптимизации гиперпараметров
- Базовые стратегии включают случайный поиск и поиск по сетке, но они плохо масштабируются для большого количества гиперпараметров.
- Можно использовать методы AutoML для оптимизации как выбора модели, так и ее гиперпараметров.
Будьте осторожны, когда вы оптимизируете гиперпараметры и выбираете функцию
- Рассматривайте оптимизацию гиперпараметров и выбор функций как часть обучения модели, а не что-то более общее, что вы делаете перед обучением модели.
- Особенно распространенной ошибкой является выбор признаков для всего набора данных до начала обучения модели, но это приведет к утечке информации из тестового набора в процесс обучения.
- Распространенным методом для этого является вложенная перекрестная проверка (также известная как двойная перекрестная проверка), которая включает оптимизацию гиперпараметров и выбор функций в качестве дополнительного цикла внутри основного цикла перекрестной проверки.
Ссылка
- Как избежать ловушек машинного обучения: руководство для ученых-исследователей, Майкл А. Лоунс, 2021 г., arXiv