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

«Даже слабые становятся сильными, когда объединяются». - Фридрих фон Шиллер

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

Различные методы объединения слабых учащихся различаются в зависимости от того, как результаты каждого из этих слабых учащихся объединяются для получения окончательного результата. Мы рассмотрим два популярных метода построения ансамблевой модели:

  1. Упаковка
  2. Повышение

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

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

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

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

Бэггинг (агрегирование бутстрапа)

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

1. Выборка

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

Бутстрапирование - это статистический метод выборки из исходных данных, где выборки почти независимы и репрезентативны для исходного распределения данных (приблизительно i.i.d - независимое и идентичное исходному распределению данных).

2. Обучение

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

3. Агрегирование

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

Y = ( y1+y2+y3+…+yL ) / L

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

Y = max (y1, y2, y3,…, yL)

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

Y = max [P (y1), P (y2), P (y3),…, P (yL)]

Когда и когда не следует использовать Bagging?

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

Повышение

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

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

  1. Адаптивное усиление (Adaboost)
  2. Повышение градиента (Адаград)

Адаптивное ускорение

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

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

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

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

Повышение градиента

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

W ᵢ = W ᵢ-₁ — (α * ∇ E ᵢ-₁)

W ᵢ - веса базовой модели i, α - размер шага, а E ᵢ-₁ - ошибка базовой модели (i-1).

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

  1. Первоначально мы устанавливаем псевдо-остатки равными среднему значению известных целей.
  2. С каждым слабым алгоритмом обучения i мы прогнозируем псевдо-остатки, полученные в (i-1).
  3. Полученные таким образом псевдо-остатки являются мишенью для последовательного слабого ученика.

pseudo_residuals = Yᵗᵃʳᵍᵉᵗ - Yᵖʳᵉᵈ

Когда и когда не использовать ускорение?

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

Ссылки

[1] Ян Гудфеллоу, Йошуа Бенжио, Аарон Курвиль - Глубокое обучение.

[2] Джозеф Рокка, Методы ансамбля: бэггинг, бустинг и стекинг.

[3] Фигурки созданы с помощью Venngage.

Если вы хотите зайти и поздороваться, свяжитесь со мной в LinkedIn | Twitter | Гитхаб.