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

Что такое бустинг?

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

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

Что такое слабая модель?

Слабая модель представляет собой модель, которая немного более точна, чем случайное угадывание. Случайное предположение, как вы можете себе представить, имеет шанс 50:50, поэтому слабой моделью может быть любая модель с точностью чуть более 50%.

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

Обзор алгоритма адаптивного повышения

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

  1. Входные данные: требуемый размер ансамбля T
    . Сначала необходимо определить модель с конкретным размером отдельных деревьев или учащихся. (В большинстве случаев будет использоваться диапазон 50–100)
  2. Входные данные: обучающий набор S = {(x1, y1), (x2,y2),…(xN,yN)}, где yi в {-1,+1}
    — это алгоритм предназначен для бинарной классификации. Метка для набора данных S будет либо +1, либо -1
    *Примечание. Вы можете задаться вопросом, почему это не 0 или 1, как в логистической регрессии?
    Ответ: Не будет проблем с определением их как 0 или 1, но поскольку в более поздней части расчета -1 и +1 упростят интерпретацию результата и вычисления. (Вернемся к этому на этом этапе)
  3. Определите равномерное распределение D1(i) по элементам S.**
    Это важно понимать. Как я объяснил из вышеизложенного, повышение будет больше сосредоточено на неверных предсказанных точках данных. Еще до того, как появится подчеркивающая часть, самой модели для начала требуется базовый набор данных. Исходный набор данных с первым отдельным слабым учеником должен иметь равные шансы для выбора примеров (точек данных), и, следовательно, это равномерное распределение (пример i будет иметь равные шансы быть выбранным для первого набора данных из обучающего набора S)
    Равномерное распределение связано с тем, что мы еще не определили, какие точки данных являются правильными и неправильными из созданной модели. Должны иметь равные веса в каждом примере.
  4. Для t=1 to T выполните
    - Для всех отдельных учащихся выполните следующий процесс.
  5. Обучение модели ht с использованием распределения Dt
    . Модель ht будет обучаться с использованием набора данных Dt.
  6. Вычислить et = PDt(ht(x) != y)
    Вычислить ошибку, прогноз против фактического
  7. Если et ≥ 0,5 break
    Поскольку, как мы уже говорили, слабый ученик должен быть немного лучше, чем случайное угадывание, алгоритм хочет, чтобы этот отдельный ученик имел ошибку менее 50% (другими словами, точность модели выше 50%). Если это утверждение не выполняется, разорвите цикл и начните заново (переопределите слабого ученика).
  8. Установите alpha t = 1/2 ln(1 — ошибка t/ошибка t)
    Действует как вес.
    Пример.
    когда ошибка = 0,5 → альфа t = 0 (поскольку Log 1 равен 0)
    Интерпретация: когда модель неточна, присвойте весу 0, потому что мы не можем ему доверять
    Когда ошибка = 0 → альфа t = бесконечность
    Интерпретация: когда модель точна, придайте больший вес
  9. Обновить Dt+1 (i)
    Для следующего режима модели потребуется совершенно новый набор данных с разными весами, присвоенными каждому примеру.
    Следовательно, вероятность того, что пример i будет выбранный для набора данных Dt +1 можно рассчитать по уравнению.
  • Dt(i): вероятность того, что пример i будет выбран для набора данных t (это действует как стандарт или отправная точка)
  • alpha t: когда ht точен, частота дискретизации будет выше волатильности. Пример i будет труднее выбрать для следующего набора данных, потому что первая модель уже была точной с этой точкой данных. (Почему нас должно волновать, если предыдущая модель уже предсказала это правильно?
  • yi * ht(xi): в этой части вступают в силу значения +1 и -1 для классификации.
    когда фактический прогноз yi = ht(xi), то возможный случай равно:
    → -1 * -1 = 1 или +1 * +1 = 1 и, следовательно, в любом правильном случае будет 1
    , когда yi != ht(xi), тогда результат равно:
    →-1 * +1= -1 или +1 *-1 = -1 и, следовательно, в любом случае будет -1

Теперь давайте объединим все формулы вместе и интерпретируем то, что на самом деле представлено этой формулой.

  • Если модель предсказывает пример i хорошо
    альфа t = Большое значение
    yi*ht(xi) = +1
    exp(Отрицательное Большое значение альфа t * + 1) = Общее отрицательное высокое значение
    (Интерпретация: вероятность того, что Пример i будет выбран для Dt+1, очень низкая)
  • Если модель плохо предсказывает пример i
    alpha t = малое значение
    yi*ht(xi) = -1
    exp(Negative Small value * - 1) = Общее положительное низкое значение
    (Интерпретация: поскольку экспоненциальное положительное число, более высокая вероятность, например, i будет выбран для следующего набора данных)

Визуализация процесса

Здесь мы начинаем с набора данных 1 (D1) с 5 выборками, имеющими yi = +1, и 5 выборками, имеющими yi = -1.

Модель h1 с использованием D1 будет выполнять предсказание. Как видно из диаграммы, 3 выборки с меткой + неверно предсказаны.

Ошибка для модели 1 = 0,3 (3 промаха / 10 проб в целом)

Набор данных 2 будет уделять больше внимания тем пропущенным классифицированным образцам.

Когда мы продолжим процесс последовательного обучения, он будет иметь свой собственный вывод и рассчитанные веса (альфа t)

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

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

Adaboost склонен к переобучению?

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

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

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

  • Добавление члена регуляризации к функции потерь
  • Остановить рост (Глубина дерева) или Обрезать деревья

Заключение

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