Улучшение методов машинного обучения: повышение точности и уменьшение ошибок

Опубликовано: 2025-01-16

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

Оглавление

  • Что такое повышение?
  • Смещение против дисперсии
  • Бустирование и бэггинг
  • Как работает повышение
  • Типы алгоритмов повышения
  • Применение бустинга
  • Преимущества буста
  • Проблемы и ограничения бустинга

Что такое повышение?

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

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

Работайте умнее с Grammarly
Партнер по написанию ИИ для всех, у кого есть работа

Смещение против дисперсии

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

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

Предвзятость

Смещение — это мера того, насколько неверна модель в среднем. Если дом на самом деле был продан за 400 000 долларов, а модель предсказала 300 000 долларов, смещение для этой точки данных составит -100 000 долларов. Усредните смещение по всему набору обучающих данных, и вы получите смещение модели.

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

Дисперсия

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

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

Компромисс смещения и дисперсии

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

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

Повышение улучшает смещение и дисперсию

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

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

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

Бустирование и бэггинг

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

Упаковка Повышение
Модельное обучение Модели обучаются параллельно на разных подмножествах данных. Модели обучаются последовательно, при этом каждая модель фокусируется на ошибках предыдущей модели.
Фокус на уменьшении ошибок Уменьшает дисперсию Уменьшает предвзятость
Общие алгоритмы Случайный лес, деревья решений в мешках AdaBoost, повышение градиента, XGBoost
Риск переобучения Меньший риск переобучения из-за случайной выборки Более высокий риск переобучения
Сложность вычислений Ниже Выше

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

Как работает повышение

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

  1. Взвешивание обучающих данных по ошибкам
  2. Обучение новой модели на этом наборе данных взвешенных ошибок
  3. Добавление новой модели в ансамбль

Для начала предположим, что мы обучили исходную модель (ансамбль из одной модели).

Взвешивание обучающих данных по ошибкам

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

Обучение новой модели

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

Внедрение новой модели

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

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

Для задач регрессии прогноз ансамбля представляет собой средневзвешенное значение прогноза каждой модели.

На этом этапе процесс может повториться, если смещение все еще слишком велико.

Типы алгоритмов повышения

Существует несколько вариантов алгоритмов повышения, между которыми есть существенные различия. Наиболее популярными являются адаптивное повышение (AdaBoost), повышение градиента, усиление экстремального градиента (XGBoost) и повышение кота. Мы рассмотрим каждый по очереди.

АдаБуст

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

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

Повышение градиента

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

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

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

XGBoost

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

XGBoost даже более эффективен, чем повышение градиента, и был одним из самых популярных алгоритмов машинного обучения в 2010-х годах. Но его также сложнее интерпретировать, и его выполнение требует гораздо больше вычислительных затрат.

CatBoost

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

  • Да-нет данных (например, есть ли в доме гараж?)
  • Цветовые категории (например, красный, синий, зеленый)
  • Категории товаров (например, электроника, одежда, мебель)

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

Применение бустинга

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

Классификация и регрессия

Классификация и регрессия — две основные задачи ML. Пользователь может захотеть предсказать, содержит ли изображение собаку или кошку (классификация), или предсказать цену продажи дома (регрессия). Повышение хорошо работает для обеих задач, особенно когда базовые модели слабы или несложны.

Рекомендации по контенту

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

Обнаружение мошенничества

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

Преимущества буста

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

Уменьшение смещения и дисперсии

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

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

Требуется меньше данных

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

Больше контроля над переоснащением

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

Проблемы и ограничения бустинга

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

Более длительное время обучения

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

Чувствительность к выбросам

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

Дополнительная настройка гиперпараметров

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