AdaBoost - AdaBoost

AdaBoost, Короче для Адаптивный Повышение, это машинное обучение мета-алгоритм сформулировано Йоав Фройнд и Роберт Шапир, победивший в 2003 году Премия Гёделя за их работу. Его можно использовать вместе со многими другими типами алгоритмов обучения для повышения производительности. Выходные данные других алгоритмов обучения («слабые ученики») объединяются во взвешенную сумму, которая представляет собой окончательный результат усиленного классификатора. AdaBoost является адаптивным в том смысле, что последующие слабые ученики настраиваются в пользу тех экземпляров, которые были неправильно классифицированы предыдущими классификаторами. AdaBoost чувствителен к зашумленным данным и выбросы.[1] В некоторых проблемах он может быть менее восприимчив к переоснащение проблема, чем другие алгоритмы обучения. Отдельные учащиеся могут быть слабыми, но до тех пор, пока производительность каждого из них немного лучше, чем случайное предположение, можно доказать, что окончательная модель сходится к сильному учащемуся.

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

Обзор

Проблемы в машинном обучении часто страдают от проклятие размерности - каждый образец может состоять из огромного количества потенциальных признаков (например, их может быть 162 336 Особенности Хаара, как используется Среда обнаружения объектов Виолы – Джонса, в окне изображения 24 × 24 пикселя), а оценка каждой функции может снизить не только скорость обучения и выполнения классификатора, но и фактически уменьшить предсказательную силу.[4] в отличие нейронные сети и SVM, процесс обучения AdaBoost выбирает только те функции, которые, как известно, улучшают прогнозирующую способность модели, уменьшая размерность и потенциально улучшая время выполнения, поскольку нерелевантные функции не нужно вычислять.

Подготовка

AdaBoost относится к определенному методу обучения усиленного классификатора. Классификатор повышения - это классификатор в форме

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

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

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

Взвешивание

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

Вывод

Этот вывод следует за Рохасом (2009):[5]

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

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

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

Сдача и для , у нас есть:

Мы можем разделить это суммирование между теми точками данных, которые правильно классифицированы по (так ) и ошибочно классифицированные (так ):

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

Определить желаемый вес что сводит к минимуму с что мы только что определили, мы различаем:

Установив это на ноль и решив для дает:

Доказательство —

потому что не зависит от

Мы вычисляем взвешенную частоту ошибок слабого классификатора как , отсюда следует, что:

которая представляет собой функцию отрицательного логита, умноженную на 0,5.

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

Статистическое понимание бустинга

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

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

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

При выборе функции потерь допускается большая гибкость. Пока функция потерь монотонный и непрерывно дифференцируемый, классификатор всегда стремится к более чистым решениям.[6] Чжан (2004) предоставляет функцию потерь, основанную на наименьших квадратах, модифицированную Функция потерь Хубера:

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

Повышение как градиентный спуск

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

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

Пример алгоритма (дискретный AdaBoost)

С участием:

  • Образцы
  • Желаемые результаты
  • Начальные веса установлен в
  • Функция ошибки
  • Слабые ученики

Для в :

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

Выбор αт

выбран, поскольку аналитически показано, что он является минимизатором экспоненциальной функции ошибок для Discrete AdaBoost.[8]

Свести к минимуму:

Используя выпуклость экспоненциальной функции и предполагая, что у нас есть:

Затем мы дифференцируем это выражение относительно и установите его в ноль, чтобы найти минимум верхней границы:

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

Варианты

Реальный AdaBoost

Результатом деревьев решений является оценка вероятности класса , вероятность того, что находится в положительном классе.[6] Фридман, Хасти и Тибширани выводят аналитический минимизатор для для некоторых фиксированных (обычно выбирается с использованием взвешенной ошибки наименьших квадратов):

.

Таким образом, вместо того, чтобы умножать результат всего дерева на какое-то фиксированное значение, каждый листовой узел изменяется на вывод половины логит преобразование своего предыдущего значения.

LogitBoost

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

где

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

Когда p приближается к 1 или 0, значение становится очень маленьким и z термин, который является большим для неправильно классифицированных образцов, может стать численно нестабильный, из-за ошибок округления точности станка. Это можно преодолеть, установив некоторые ограничения на абсолютное значение z и минимальное значениеш

Нежный AdaBoost

В то время как предыдущие алгоритмы повышения выбирают GentleBoost, жадно сводя к минимуму общую ошибку теста на каждом этапе, имеет ограниченный размер шага. выбран, чтобы минимизировать , и никакой дополнительный коэффициент не применяется. Таким образом, в случае, если слабый ученик демонстрирует отличные характеристики классификации, GentleBoost выбирает точно равно , а алгоритмы наискорейшего спуска пытаются установить . Эмпирические наблюдения о хорошей производительности GentleBoost, по-видимому, подтверждают замечание Шапира и Зингера о том, что допускаются слишком большие значения может привести к снижению производительности обобщения.[8][9]

Раннее прекращение

Метод ускорения обработки усиленных классификаторов, раннее завершение относится только к тестированию каждого потенциального объекта с таким количеством уровней окончательного классификатора, которое необходимо для соответствия некоторому порогу достоверности, ускоряя вычисления в тех случаях, когда класс объекта можно легко определить. Одна из таких схем - это среда обнаружения объектов, представленная Виолой и Джонсом:[10] в приложении со значительно большим количеством отрицательных образцов, чем положительных, обучается каскад отдельных буст-классификаторов, выходные данные каждого этапа смещены таким образом, что некоторая приемлемо небольшая часть положительных образцов ошибочно маркируется как отрицательная, а все образцы, отмеченные как отрицательные после каждого этапа, отброшен. Если 50% отрицательных выборок отфильтровываются на каждом этапе, только очень небольшое количество объектов будет проходить через весь классификатор, что сокращает объем вычислений. С тех пор этот метод был обобщен с формулой для выбора оптимальных пороговых значений на каждом этапе для достижения желаемого количества ложноположительных и ложноотрицательных результатов.[11]

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

Полностью корректирующие алгоритмы

Для самых крутых версий AdaBoost, где выбирается на каждом слое т чтобы минимизировать ошибку теста, следующий добавленный слой называется максимально независимый слоя т:[13] вряд ли выберет слабого ученика т + 1 это похоже на ученика т. Однако остается возможность, что т + 1 производит информацию, аналогичную некоторым другим более ранним слоям. Полностью корректирующие алгоритмы, такие как LPBoost, оптимизируйте значение каждого коэффициента после каждого шага, чтобы новые добавляемые слои всегда были максимально независимы от каждого предыдущего уровня. Этого можно добиться путем переоборудования, линейное программирование или каким-то другим способом.

Обрезка

Сокращение - это процесс удаления неэффективных слабых классификаторов для улучшения памяти и затрат времени выполнения усиленного классификатора. Самыми простыми методами, которые могут быть особенно эффективными в сочетании с полностью корректирующим обучением, являются усечение веса или маржи: когда коэффициент или вклад в общую ошибку теста некоторого слабого классификатора падает ниже определенного порога, этот классификатор упал. Марджинеанту и Диеттерих[14] предложить альтернативный критерий для обрезки: следует выбирать слабые классификаторы так, чтобы разнообразие ансамбля было максимальным. Если два слабых ученика производят очень похожие результаты, эффективность можно повысить, удалив одного из них и увеличив коэффициент оставшегося слабого ученика.[15]

Смотрите также

использованная литература

  1. ^ «Алгоритмы повышения: AdaBoost, Gradient Boosting и XGBoost». hackernoon.com. 5 мая 2018 г.. Получено 2020-01-04.
  2. ^ Кегл, Балаж (20 декабря 2013 г.). «Возвращение AdaBoost.MH: мультиклассовые деревья Хэмминга». arXiv:1312.6086 [cs.LG ].
  3. ^ Йоглекар, Сачин. "adaboost - блог Сачина Джоглекара". codeachin.wordpress.com. Получено 3 августа 2016.
  4. ^ Хьюз, Г.Ф. (Январь 1968 г.). «О средней точности статистических распознавателей образов». IEEE Transactions по теории информации. 14 (1): 55–63. Дои:10.1109 / TIT.1968.1054102. S2CID  206729491.
  5. ^ Рохас, Р. (2009). AdaBoost и супер чаша классификаторов - введение в адаптивное повышение. Свободный университет, Берлин, Tech. Rep.
  6. ^ а б Фридман, Джером; Хасти, Тревор; Тибширани, Роберт (1998). «Аддитивная логистическая регрессия: статистический взгляд на повышение». CiteSeerX  10.1.1.51.9525. Цитировать журнал требует | журнал = (Помогите)
  7. ^ Чжан, Т. (2004). «Статистическое поведение и последовательность методов классификации, основанных на минимизации выпуклого риска». Анналы статистики. 32 (1): 56–85. JSTOR  3448494.
  8. ^ а б Шапир, Роберт; Певец, Йорам (1999). «Улучшенные алгоритмы повышения с использованием уверенных прогнозов». CiteSeerX  10.1.1.33.4002. Цитировать журнал требует | журнал = (Помогите)
  9. ^ Фройнд; Шапир (1999). «Краткое введение в повышение эффективности» (PDF):
  10. ^ Виола, Поль; Джонс, Роберт (2001). «Быстрое обнаружение объектов с использованием усиленного каскада простых функций». CiteSeerX  10.1.1.10.6807. Цитировать журнал требует | журнал = (Помогите)
  11. ^ Маккейн, Брендан; Новинс, Кевин; Альберт, Майкл (2005). «Оптимизация каскадных классификаторов». Цитировать журнал требует | журнал = (Помогите)
  12. ^ Тревор Хасти; Роберт Тибширани; Джером Фридман (2009). Элементы статистического обучения: интеллектуальный анализ данных, вывод и прогнозирование (2-е изд.). Нью-Йорк: Спрингер. ISBN  978-0-387-84858-7.
  13. ^ Шохман, Ян; Матас, Иржи (2004). Adaboost с полностью корректирующими обновлениями для быстрого распознавания лиц. ISBN  978-0-7695-2122-0.
  14. ^ Марджинеанту, Драгос; Диттерих, Томас (1997). «Адаптивное усиление обрезки». CiteSeerX  10.1.1.38.7017. Цитировать журнал требует | журнал = (Помогите)
  15. ^ Тамон, Кристино; Сян, Цзе (2000). «О проблеме ускоренной обрезки». Цитировать журнал требует | журнал = (Помогите)