БраунBoost
BrownBoost — это алгоритм повышения , который может быть устойчив к зашумленным наборам данных. BrownBoost — это адаптивная версия алгоритма повышения по большинству . Как и все алгоритмы повышения , BrownBoost используется в сочетании с другими методами машинного обучения . BrownBoost был представлен Йоавом Фройндом в 2001 году. [1]
Мотивация
[ редактировать ]AdaBoost хорошо работает с различными наборами данных; однако можно показать, что AdaBoost не очень хорошо работает с наборами данных с шумом. [2] Это результат сосредоточения внимания AdaBoost на примерах, которые постоянно неправильно классифицируются. Напротив, BrownBoost фактически «отказывается» от примеров, которые неоднократно неправильно классифицируются. Основное предположение BrownBoost заключается в том, что зашумленные примеры будут неоднократно ошибочно маркироваться слабыми гипотезами, а нешумные примеры будут правильно маркироваться достаточно часто, чтобы от них «отказаться». Таким образом, «отказываются» только от шумных примеров, тогда как нешумные примеры будут участвовать в окончательном классификаторе. В свою очередь, если окончательный классификатор изучается на примерах без шума, ошибка обобщения окончательного классификатора может быть намного лучше, чем если бы он был изучен на примерах с шумом и без шума.
Пользователь алгоритма может установить допустимую ошибку в обучающем наборе. Таким образом, если обучающий набор зашумлен (скажем, предполагается, что 10% всех примеров имеют неправильную маркировку), бустеру можно дать указание принять коэффициент ошибок 10%. Поскольку шумные примеры можно игнорировать, только настоящие примеры будут способствовать процессу обучения.
Описание алгоритма
[ редактировать ]BrownBoost использует невыпуклую функцию потенциальных потерь, поэтому она не вписывается в структуру AdaBoost . Невыпуклая оптимизация позволяет избежать переобучения зашумленных наборов данных. Однако, в отличие от алгоритмов повышения, которые аналитически минимизируют выпуклую функцию потерь (например, AdaBoost и LogitBoost ), BrownBoost решает систему двух уравнений и двух неизвестных, используя стандартные численные методы.
Единственный параметр BrownBoost ( в алгоритме) — это «время», в течение которого работает алгоритм. Теория BrownBoost утверждает, что каждая гипотеза занимает разное количество времени ( в алгоритме), что напрямую связано с весом, придаваемым гипотезе . Параметр времени в BrownBoost аналогичен количеству итераций. в АдаБост.
Большее значение означает, что BrownBoost будет обрабатывать данные так, как будто они менее зашумлены, и поэтому откажется от меньшего количества примеров. И наоборот, меньшее значение означает, что BrownBoost будет рассматривать данные как более зашумленные и откажется от большего количества примеров.
Во время каждой итерации алгоритма выбирается гипотеза с некоторым преимуществом перед случайным угадыванием. Вес этой гипотезы и «количество прошедшего времени» в ходе итерации одновременно решаются в системе двух нелинейных уравнений (1. некоррелированная гипотеза относительно весов примера и 2. удержание потенциальной константы) с двумя неизвестными (вес гипотезы и время прошло ). Эту проблему можно решить с помощью деления пополам (как это реализовано в программном пакете JBoost ) или метода Ньютона (как описано в оригинальной статье Фрейнда). После решения этих уравнений поля каждого примера ( в алгоритме) и количество оставшегося времени обновляются соответствующим образом. Этот процесс повторяется до тех пор, пока не останется времени.
Начальный потенциал определяется как . Поскольку ограничение каждой итерации состоит в том, чтобы потенциал оставался постоянным, окончательный потенциал равен . Таким образом, окончательная ошибка, вероятно , будет близка . Однако окончательная потенциальная функция не является функцией ошибок потерь 0–1. Чтобы окончательная ошибка была именно дисперсия функции потерь должна уменьшаться линейно во времени, чтобы сформировать функцию потерь 0–1 в конце итераций повышения. Это еще не обсуждается в литературе и не входит в определение приведенного ниже алгоритма.
Итоговый классификатор представляет собой линейную комбинацию слабых гипотез и оценивается так же, как и большинство других алгоритмов повышения.
Определение алгоритма обучения BrownBoost
[ редактировать ]Вход:
- примеры обучения где
- Параметр
Инициализировать:
- . (Значение это количество времени, оставшееся в игре)
- . Стоимость это запас на итерации например .
Пока :
- Установите веса каждого примера: , где это граница примера
- Найти классификатор такой, что
- Найти значения которые удовлетворяют уравнению:
.
(Обратите внимание, что это похоже на условие сформулированные Шапиром и Сингером. [3] В этой ситуации мы численно находим такой, что .)
Это обновление подлежит ограничению
,
где потенциальный убыток для пункта с маржой - Обновите поля для каждого примера:
- Обновите оставшееся время:
Выход:
Эмпирические результаты
[ редактировать ]В предварительных экспериментальных результатах с зашумленными наборами данных BrownBoost превзошел ; ошибку обобщения AdaBoost однако LogitBoost работал так же хорошо, как BrownBoost. [4] Реализацию BrownBoost можно найти в программном обеспечении с открытым исходным кодом JBoost .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Йоав Фройнд. Адаптивная версия алгоритма повышения по мажоритарности. Машинное обучение, 43(3):293–318, июнь 2001 г.
- ^ Дитерих, Т.Г., (2000). Экспериментальное сравнение трех методов построения ансамблей деревьев решений: пакетирование, повышение и рандомизация. Машинное обучение, 40 (2) 139–158.
- ^ Роберт Шапир и Йорам Сингер. Улучшенное повышение с использованием прогнозов с рейтингом достоверности. Журнал машинного обучения, том 37 (3), страницы 297–336. 1999 год
- ^ Росс А. Макдональд, Дэвид Дж. Хэнд, Идрис А. Экли. Эмпирическое сравнение трех алгоритмов повышения реальных наборов данных с искусственным классовым шумом. Множественные системы классификаторов, Серия конспектов лекций по информатике, страницы 35–44, 2003 г.