Общее объяснение алгоритма повышения

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

Мотивация

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

Объяснение повышения

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

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

  • x, y: данные обучения и фактическое значение.
  • f(x): набор слабых учеников на i итерации
  • M: количество добавляемых деревьев.
  • N: количество точек обучающих данных.
  • β: коэффициент расширения или «вес» последующего слабого ученика в коллекции.
  • b (x; γ): функция слабого обучаемого, характеризующаяся набором параметров γ
  • L (y, ŷ): функция потерь

Теперь давайте рассмотрим каждый шаг.

  1. Инициализируйте базовую коллекцию, чтобы предсказать 0 для всех данных обучения
  2. Для каждого последующего добавления слабых учеников в сборник:
  • a) Найдите оптимальный коэффициент расширения [β] и набор параметров [γ], которые минимизируют функцию потерь по обучающим данным. Обратите внимание, что функция потерь принимает фактическое значение и сумму выходных данных как из предыдущей коллекции [fₘ₋₁ (x)], так и из текущей функции слабого обучаемого [b (x; γ) ]
  • б) После нахождения оптимальных β и γ добавьте коэффициент со слабым учеником в коллекцию.

Самый важный шаг - 2a, который ищет оптимальную функцию слабого обучаемого для добавления в коллекцию. Когда квадрат ошибки выбран как функция потерь, формулу в 2a можно переписать как:

В этом выражении fₘ₋₁ представляет прогнозируемое значение из предыдущих деревьев. yᵢ представляет фактическое значение. yᵢ - fₘ₋₁ выведет остаток от предыдущих учащихся, rᵢₘ. Таким образом, чтобы минимизировать квадратные потери, каждый новый слабый ученик будет соответствовать остатку.

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

Итак, что насчет проблем с классификацией?

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

Спасибо за чтение!