Используемый вариант названия на русском языке предложен участниками Википедии. Вы можете помочь проекту, приведя авторитетные источники, в которых встречается русскоязычное название.
Бустинг основан на вопросе, поднятом Кернсом и Вэлиантом (1988, 1989)[3][4]: «Может ли набор слабых обучающих алгоритмов создать сильный обучающий алгоритм?». Слабый обучающий алгоритм определяется как классификатор, который слабо коррелирует с правильной классификацией (может пометить примеры лучше, чем случайное угадывание). В отличие от слабого алгоритма, сильный обучающий алгоритм является классификатором, хорошо коррелирующим с верной классификацией.
Положительный ответ Роберта Шапире в статье 1990 года[5] на вопрос Кернса и Вэлианта имел большое значение для теории машинного обучения и статистики, и привёл к созданию широкого спектра алгоритмов бустинга[6].
Гипотеза о бустинге относилась к процессу настройки алгоритма слабого обучения для получения строгого обучения. Неформально, спрашивается, вытекает ли из существования эффективного алгоритма обучения, выходом которого служит гипотеза, эффективность которой лишь слегка лучше случайного гадания (то есть слабое обучение), существование эффективного алгоритма, который даёт гипотезу произвольной точности (то есть сильное обучение)[3]. Алгоритмы, которые получают быстро такую гипотезу, становятся известны просто как «бустинг». Алгоритм «arcing» Фройнда и Шапире (Adaptive Resampling and Combining)[7], как общая техника, является более-менее синонимом бустингу[8]
В то время как бустинг алгоритмически не ограничен, большинство алгоритмов бустинга состоит из итеративного обучения слабых классификаторов с целью сборки их в сильный классификатор. Когда они добавляются, им обычно приписываются некоторым образом веса, которые, обычно, связаны с точностью обучения. После того, как слабый классификатор добавлен, веса пересчитываются, что известно как «пересчёт весовых коэффициентов»[англ.]. Неверно классифицированные входные данные получают больший вес, а правильно классифицированные экземпляры теряют вес[nb 1]. Тем самым последующее слабое обучение фокусируется больше на примерах, где предыдущие слабые обучения дали ошибочную классификацию.
Есть много алгоритмов бустинга. Исходные алгоритмы, предложенные Робертом Шапире (рекурсивное доминирование, англ.recursive majority gate formulation) [5] и Йоавом Фройндом (бустинг по доминированию)[9], не были адаптивными[англ.] и не могли дать полного преимущества слабых обучений. Шапире и Фройнд затем разработали AdaBoost (Adaptive Boosting) — адаптивный алгоритм бустинга, который выиграл престижную премию Гёделя.
Только алгоритмы, для которых можно доказать, что они являются алгоритмами бустинга в формулировке приближённо правильного обучения, могут быть точно названы алгоритмами бустинга. Другие алгоритмы, близкие по духу алгоритмам бустинга, иногда называются «алгоритмами максимального использования» (англ.leveraging algorythms), хотя они иногда также неверно называются алгоритмами бустинга[9].
Если даны изображения, содержащие различные известные в мире объекты, классификатор может быть обучен на основе них для автоматической классификации объектов в будущих неизвестных изображениях. Простые классификаторы, построенные на основе некоторых признаков изображения объекта, обычно оказываются малоэффективными в классификации. Использование методов бустинга для классификации объектов — это путь объединения слабых классификаторов специальным образом для улучшения общей возможности классификации.
Распознавание категорий объектов в изображениях является сложной задачей в компьютерном зрении, особенно если число категорий велико. Это является следствием высокой внутренней изменчивости классов и необходимости обобщения различных понятий внутри класса. Объекты в одной категории могут выглядеть совершенно различными. Даже один и тот же предмет может выглядеть непохожим с различных точек обзора, при другом масштабе[англ.] или освещении[англ.]. Шум заднего плана и частичные наложения также добавляют сложности в распознавание[12]. Люди способны распознавать тысячи типов объектов, в то время как большинство существующих систем распознавания объектов тренируются для распознавания лишь нескольких, например человеческих лиц, автомобилей, простых объектов и т. д.[13]. Исследования по увеличению числа категорий и возможности добавления новых категорий ведутся активно и, хотя общая проблема пока не решена, разработаны детекторы большого числа категорий (до сотен и тысяч[14]). Достигается это, в частности, с помощью совместного использования признаков[англ.] и бустинга.
Бустинг для двоичной классификации
Пакет AdaBoost может быть использован для распознавания лиц как пример двоичной классификации. Две категории — это лица и фон. Общий алгоритм выглядит следующим образом:
Формируем большой набор признаков
Инициализируем веса для тренировочного набора изображений
Делаем T прогонов
Нормализуем веса
Для доступных признаков из набора тренируем классификатор, используя один из признаков и вычисляем ошибку тренировки
Выбираем классификатор с наименьшей ошибкой
Обновляем веса тренировочных изображений: увеличиваем, если классифицировано неверно, и уменьшаем, если верно
Формируем окончательный сильный классификатор как линейная комбинация T классификаторов (коэффициент больше, если ошибка тренировки меньше)
Другое приложение бустинга для двоичной классификации — система, которая распознаёт пешеходов с помощью паттернов движения и внешности[16]. В этой работе впервые комбинируется информация о движении и внешность как признаки для обнаружения движущегося человека. В работе предпринимается подход, похожий на модель обнаружения объектов Виолы — Джонса.
Бустинг мультиклассовой классификации
По сравнению с двоичной классификацией, мультиклассовая классификация[англ.] разыскивает общие признаки, которые могут использоваться совместно категориями в одно и то же время. Они оказываются более общими наподобие признака «граница». Во время обучения классификаторы для каждой категории могут быть тренированы совместно. По сравнению с раздельной тренировкой такая тренировка обладает лучшей обобщаемостью, требует меньше тренировочных данных и нужно меньше признаков для достижения необходимого результата.
Основная работа алгоритма похожа на двоичный случай. Разница заключается в том, что мера совместной ошибки тренировки может быть определено заранее. Во время каждой итерации алгоритм выбирает классификатор одного признака (признаки, которые могут быть совместно классифицированы, поощряются). Это может быть сделано путём преобразования мультиклассовой классификации в двоичную (набор категорий / остальные категории) [17] или путём введения штрафа от категорий, которые не имеют признаков, распознаваемых классификатором[18].
В статье «Sharing visual features for multiclass and multiview object detection» (Совместное использование визуальных признаков для мультиклассового обнаружения объектов в нескольких проекциях), А. Торральба с соавторами использовали GentleBoost для бустинга и показали, что, если тренировочные данные ограничены, обучение с помощью совместно используемых признаков делает работу много лучше, чем без совместного использования. Также для заданного уровня производительности общее число признаков, требующихся (а потому и время работы классификатора) для обнаружения совместного использования признаков, растёт примерно логарифмически от числа классов, то есть медленнее, чем линейно[англ.], что наблюдается в случае отсутствия совместного использования. Похожие результаты показаны в статье «Инкрементальное обучение обнаружения объектов, используя алфавит визуальных образов», впрочем, для бустинга авторы использовали AdaBoost.
Выпуклые и невыпуклые алгоритмы бустинга
Алгоритмы бустинга могут основываться на выпуклых или невыпуклых алгоритмах оптимизации. Выпуклые алгоритмы, такие как AdaBoost и LogitBoost, могут «потерпеть крушение» из-за случайного шума, так как не могут обучить базовым и поддающимся научению комбинациям слабых гипотез[19][20]. На это ограничение указали Лонг и Серведо в 2008 году. Однако в 2009 году несколько авторов продемонстрировали, что алгоритмы бустинга, основанные на невыпуклой оптимизации, такие как BrownBoost, могут быть обучены из данных с шумами и лежащий в основе классификатор Лонг-Серведио для набора данных может быть обучен.
Реализация
Scikit-learn, библиотека машинного обучения с открытым кодом для языка Python
Weka — это набор средств для машинного обучения, содержащий ряд реализаций алгоритмов бустинга, таких как AdaBoost и LogitBoost
Пакет GBM (Generalized Boosted Regression Models) на языке R реализует расширение алгоритма Фройнда и Шапире AdaBoost и градиентного бустинга Фридмана.
↑. Некоторые основанные на бустинге алгоритмы классификации на самом деле уменьшают веса повторно неверно классифицированных экземпляров. Например, бустинг по доминированию (англ.boost by majority) и BrownBoost
↑Лео Брайман (Breiman 1998) пишет: «Понятие слабого обучения ввели Кернс и Валиант (Kearns, Valiant, 1988, Kearns, Valiant, 1989), которые поставили вопрос, эквивалентны ли слабое и сильное обучение. Вопрос был назван задачей бустинга, поскольку решение должно усилить слабую точность слабого обучения до высокой точности сильного обучения. Шапире (1990) доказал, что бустинг возможен. Алгоритм бустинга является методом, который берёт слабый метод обучения и преобразует его в сильный метод. Фройнд и Шапире (1997) доказали, что алгоритм, подобный arc-fs, является бустингом.»
Zhou Zhi-Hua. Ensemble Methods: Foundations and Algorithms. — Chapman and Hall/CRC, 2012. — ISBN 978-1439830031. Выдержка: «The term boosting refers to a family of algorithms that are able to convert weak learners to strong learners»
Michael Kearns, Leslie Valiant. Learning Boolean Formulae or Finite Automata is as Hard as Factoring. Technical Report TR-14-88. — Harvard University Aiken Computation Laboratory, 1988.
Статья была позднее перепечатана в журнале «Journal of the Association for Computing Machinery», 41(1):67-95, January 1994
Andreas Opelt, Axel Pinz, Michael Fussenegger, Peter Auer. Generic Object Recognition with Boosting // IEEE Trans Pattern Anal Mach Intell. — 2006. — Т. 28. — С. 416—31. — ISSN0162-8828.
Torralba A., Murphy K. P., Freeman W. T. Sharing visual features for multiclass and multiview object detection // IEEE Transactions on PAMI. — 2007. — Т. 29, вып. 5. — doi:10.1109/TPAMI.2007.1055.
Long P., Servedio R.Random classification noise defeats all convex potential boosters // 25th International Conference on Machine Learning (ICML). — 2008. — С. 608—615.
Llew Mason, Jonathan Baxter, Peter Bartlett, Marcus Frean. Boosting Algorithms as Gradient Descent // Advances in Neural Information Processing Systems / S. A. Solla, T. K. Leen, K.-R. Muller. — MIT Press, 2000. — Т. 12.
Josef Sivic, Bryan C. Russell, Alexei A. Efros, Andrew Zisserman, William T. Freeman.Discovering objects and their location in images // ICCV 2005. Tenth IEEE International Conference on Computer Vision. — IEEE, 2005. — Т. 1.
Paul Viola, Michael Jeffrey Jones. Robust Real-time Object Detection // International Journal of Computer Vision. — 2001. — Т. 57, вып. 2.