Ансамблевое обучение — техника МО, использующая несколько обученных алгоритмов с целью повышения эффективности предсказаний (иногда переводят как "предсказательная эффективность - predictive performance), чем можно было бы получить от каждого алгоритма по отдельности. Ансамбль моделей в машинном обучении состоит из конкретного конечного множества альтернативных моделей, но, обычно, позволяет существовать существенно более гибким структурам.
При использовании ансамблевых методов алгоритмы учатся одновременно и могут исправлять ошибки друг друга. Ансамблевые методы - это мощный инструмент для построения моделей машинного обучения. Ансамбли позволяют увеличить точность модели до 90+, при этом они довольно просты в понимании.
Вычисление предсказания ансамбля обычно требует больше вычислений, чем предсказание одной модели, так что ансамбли можно рассматривать как способ компенсации плохого алгоритма обучения путём дополнительных вычислений. В ансамбле моделей обычно используются быстрые алгоритмы, такие как деревья решений (например, случайный лес), хотя медленные алгоритмы могут получить также преимущества от техники сборки в ансамбль.
Техника сборки в ансамбль используется также и в сценариях обучения без учителя и обучения с учителем.
Ансамбль сам по себе является алгоритмом обучения с учителем, поскольку он может быть тренирован и затем использован для осуществления предсказания. Тренированный ансамбль, поэтому, представляет одну гипотезу. Эта гипотеза, однако, не обязательно лежит в пространстве гипотез моделей, из которых она построена.
Таким образом, ансамбли могут иметь большую гибкость в функциях, которые они могут представлять. Эта гибкость может, в теории, быстрее привести их к переобучению по тренировочным данным, чем могло быть в случае отдельной модели, но, на практике, некоторые техники сборки в ансамбль (особенно бэггинг) склонны уменьшить проблемы, связанные с переобучением на тренировочных данных.
Эмпирически ансамбли склонны давать результаты лучше, если имеется существенное отличие моделей. Многие ансамбли поэтому стараются повысить различие в моделях, которые они комбинируют. Хотя, возможно, неинтуитивные, более случайные алгоритмы (подобные случайным деревьям решений) могут быть использованы для получения более строгих ансамблей, чем продуманные алгоритмы (такие как деревья решений с уменьшением энтропии).
Имеется идеальное число классификаторов ансамбля, такое, что число классификаторов больше или меньше этого идеального числа приводит к ухудшению точности. Это называется «законом убывания отдачи в построении ансамбля». Этот теоретический фреймворк показывает, что использование числа независимых классификаторов, равного числу меток класса, даёт наибольшую точность.
Основные категории комбинации решателей, используемые для повышения точности алгоритмов Data Mining:
- Статическая комбинация (- категория комбинации решателей, при которой схема формирования итогового решения не зависит от входных сигналов),
- Динамическая комбинация (- категория комбинации решателей, при которой схема формирования итогового решения зависит от входных сигналов).
Метод машинного обучения, где несколько моделей обучаются для решения одной и той же проблемы и объединяются для получения лучших результатов называется ансамблевым методом. Основная предпосылка заключается в том, что результат работы нескольких моделей будет более точен, чем результат только одной модели.
Когда говорится об ансамблях, то вводится понятие слабого ученика (обычные модели вроде линейной регрессии или дерева решений). Множество слабых учеников являются строительными блоками для более сложных моделей. Объединение слабых учеников для улучшения качества модели, уменьшения смещения или разброса, называется сильным учеником.
Помимо библиотеки scikit-learn в python есть библиотека XGBoost, которая предоставляет более обширный набор ансамблевых моделей с более точной реализацией.
Виды ансамблевых методов
1. Стекинг. Используется несколько разнородных слабых учеников. Их обучают и объединяют для построения прогноза, основанного на результатах различных слабых моделей.
2. Бэггинг. В этом случае однородные модели обучают на разных наборах данных и объединяют. Получают прогноз путём усреднения. Если использовать в качестве слабого ученика деревья решений, то получится случайный лес.
3. Бустинг. При использовании данного метода несколько однородных моделей последовательно обучаются, исправляя ошибки друг друга.
(1) Стекинг
Стогование (иногда называемое стековое обобщение) вовлекает тренировку обучающего алгоритма для комбинирования предсказаний нескольких других обучающих алгоритмов. Сначала все другие алгоритмы тренируются с помощью допустимых данных, затем алгоритмы комбинирования тренируются с целью сделать конечное предсказание с помощью всех предсказаний других алгоритмов как дополнительный вход. Если используется произвольный алгоритм комбинирования, то стогование может теоретически представлять любую технику создания ансамблей, описанную в этой статье, хотя, на практике,
Стогование обычно даёт лучшую эффективность, чем любая отдельная из тренировочных моделей. Оно было успешно использовано как в задачах обучения с учителем (регрессии, классификации и дистанционного обучения), так и задачах обучения без учителя (оценка плотности).
Он использовался также для оценки ошибки бэггинга. Утверждалось, что метод превзошёл байесовскую модель усреднения. Два призёра конкурса Netflix используют смешивание, которое можно считать формой стогования.
Работа этого типа ансамблей довольно проста. На вход всех слабых прогнозаторов подаётся обучающий набор, каждый прогноз идёт к финальной модели, которая называется смеситель, мета-ученик или мета-модель, после чего та вырабатывает финальный прогноз.
Сначала набор разделяется на 2 части. Слабые ученики обучаются на первой половине обучающего набора, затем на второй. Затем создаётся новый обучающий набор на основе прогнозов, сделанных на прогнозах первой и второй части набора. Таким образом, на каждый образец из входного набора приходится столько прогнозов, сколько слабых учеников в ансамбле (в примере на картинке три). Мета-модель учится прогнозировать значения на основе нового набора.
(2) Бэггинг
В этом случае однородные модели обучают на разных наборах данных и объединяют. Получают прогноз путём усреднения. Если использовать в качестве слабого ученика деревья решений, то получится случайный лес (RandomForestClassifier / RandomForestRegressor).
Бутстрэп-агрегирование, часто сокращаемое до бэггинг, даёт каждой модели в ансамбле одинаковый вес (голос). Чтобы поддерживать вариантность, бэггинг тренирует каждую модель в ансамбле с помощью случайно отобранного подмножества из тренировочного множества.
Основная идея бэггинга заключается в том, чтобы обучить несколько одинаковых моделей на разных образцах. Распределение выборки неизвестно, поэтому модели получатся разными.
Для начала генерируется несколько бутстрэп-выборок. Бутстрэп - это случайный выбор данных из датасета и представление их в модель, затем данные возвращаются в датасет и процесс повторяется. После модели делают свои прогнозы на основе бутстрэп-выборок. В случае регрессии прогнозы просто усредняются. В случае же классификации применяется голосование.
Если класс предсказывает большинство слабых моделей, то он получает больше голосов и данный класс является результатом предсказывания ансамбля. Это пример жёсткого голосования. При мягком голосовании рассматриваются вероятности предсказывания каждого класса, затем вероятности усредняются и результатом является класс с большой вероятностью.
(3) Бустинг
При использовании данного метода несколько однородных моделей последовательно обучаются, исправляя ошибки друг друга.
Бустинг строит ансамбль последовательными приращениями путём тренировки каждой новой модели, чтобы выделить тренировочные экземпляры, которые предыдущие модели классифицировали ошибочно. В некоторых случаях бустинг, как было показано, даёт лучшие результаты, чем бэггинг, но имеет тенденцию к переобучению на тренировочных данных.
Метод бустинга в чём то схож с методом бэггинга: берётся множество одинаковых моделей и объединяется, чтобы получить сильного ученика. Но разница заключается в том, что модели приспосабливаются к данным последовательно, то есть каждая модель будет исправлять ошибки предыдущей.
Базовые модели для бустинга - это модели с низким разбросом и высоким смещением. Например неглубокие деревья решений. Одна из причин такого выбора моделей - они требуют меньше вычислительных затрат. Ещё бустинг (в отличии от бэггинга) нельзя распараллелить.
Существует два наиболее распространённых алгоритма бустинга - адаптивный бустинг и градиентный бустинг. О них речь пойдёт ниже.
Часто используемые типы ансамблей
Стекинг модель логистической регрессии часто используется в качестве средства алгоритма комбинирования. Логистическая регрессия или логит-модель (logit model) - статистическая модель, используемая для прогнозирования вероятности возникновения некоторого события путём его сравнения с логистической кривой. Эта регрессия выдаёт ответ в виде вероятности бинарного события (1 или 0). Применяется для прогнозирования вероятности возникновения некоторого события по значениям множества признаков. Для этого вводится так называемая зависимая переменная у, принимающая лишь одно из двух значений — как правило, это числа 0 (событие не произошло) и 1 (событие произошло), и множество независимых переменных (также называемых признаками, предикторами или регрессорами).
RSM-метод (random subspace method), метод случайных подпространств - метод, при котором базовые решатели настраиваются на случайных подмножествах признаков. Его идея заключается в создании вариатив- ности при обучении с помощью выбора случайных подмножеств признаков. Широко известным примером использования бэггинга и RSM является случайный лес.
*Байесовский оптимальный классификатор
- это техника классификации. Он является ансамблем всех гипотез из пространства гипотез. В среднем ни один из ансамблей не может превосходить его.
Простой байесовский оптимальный классификатор — это версия, которая предполагает, что данные условно независимы от класса, и выполняет вычисления за более реальное время. Каждой гипотезе даётся голос, пропорциональный вероятности того, что тренировочные данные будут выбраны из системы, если гипотеза была бы верна. Для получения тренировочных данных конечного размера голос каждой гипотезы умножается на априорную вероятность такой гипотезы. Байесовский оптимальный классификатор можно выразить следующим равенством:
Усреднение байесовских параметров
(Bayesian parameter averaging, BPA) — это техника сборки ансамбля, которая пытается аппроксимировать байесовский оптимальный классификатор путём семплинга из пространства гипотез и комбинирования их с помощью закона Байеса. В отличие от байесовского оптимального классификатора, байесовская модель усреднения может быть практически реализована. Гипотезы обычно отбираются с помощью техники Монте-Карло, такой как MCMC. Может быть использовано семплирование по Гиббсу для выборки гипотез. Было показано, что при некоторых обстоятельствах, если гипотезы выбираются таким образом и усредняются согласно закону Байеса, эта техника имеет ожидаемую ошибку, которая ограничена удвоенной ожидаемой ошибки байесовского оптимального классификатора.
Несмотря на теоретическую корректность этой техники, в ранних работах на основе экспериментальных данных было высказано предположение, что метод склонен к переобучению и ведёт себя хуже, чем простые техники сборки ансамбля, такие как бэггинг. Однако эти заключения были основаны на недопонимании цели байесовской модели усреднения для комбинации моделей. Кроме того, есть существенные преимущества в теории и практике БМУ. Недавние строгие доказательства показывают точность БМУ для выбора переменных и оценке при многомерных условиях и дают эмпирическое свидетельство существенной роли обеспечения разреженности в БМУ в смягчении переобучения.
Комбинация байесовских моделей
(Bayesian model combination, BMC) — это алгоритмическое исправление байесовской модели усреднения (БМУ, Bayesian model averaging, BMA). Вместо выбора каждой модели в ансамбль индивидуально, алгоритм отбирает из пространства возможных ансамблей (с весами моделей, выбранных случайно из распределения Дирихле с однородными параметрами). Эта модификация позволяет избежать тенденцию БМУ отдать полный вес одной модели. Хотя КБМ вычислительно несколько более расточителен по сравнению с БМУ, он даёт существенно лучшие результаты. Результаты КБМ, как было показано, в среднем лучше, чем БМУ и бэггинг.
Использование закона Байеса для вычисления весов модели неизбежно влечёт вычисление вероятности данных для каждой модели. Обычно ни одна из моделей в ансамбле не имеет точно такое же распределение, что и тренировочные данные, из которых они сгенерированы, так что все члены корректно получают значение, близкое к нулю. Это хорошо бы работало, если бы ансамбль был достаточно большим для выборки из полного пространства моделей, но такое редко возможно. Следовательно, каждый представитель тренировочного набора вызывает сдвиг ансамбля к модели в ансамбле, которая наиболее близка к распределению тренировочных данных.
Возможные веса для ансамбля можно представить как лежащие на симплексе. На каждой вершине симплекса все веса задаются отдельной моделью ансамбля. БМУ сходится к вершине, которая ближе по распределению с тренировочными данными. Для контраста, КБМ сходится к точке, где это распределение проектируется в симплекс. Другими словами, вместо выбора одной модели, которая ближе всего к распределению, метод ищет комбинацию моделей, наиболее близкой к распределению.
Результаты БМУ часто можно аппроксимировать с помощью перекрёстной проверки для выбора модели из ведра моделей. Аналогично, результаты КБМ можно аппроксимировать с помощью перекрёстной проверки для выбора лучшей комбинации ансамблей из случайной выборки возможных весов.
**Ведро моделей
«Ведро моделей» (bucket of models) является техникой сбора ансамбля, в которой используется алгоритм выбора модели для получения лучшей модели для каждой задачи. Когда тестируется только одна задача, ведро моделей не может дать результат лучше, чем лучшая модель в наборе, однако в случае прогона для нескольких задач, алгоритм обычно даёт более хорошие результаты, чем любая модель в наборе.
Наиболее частый подход, используемый для выбора модели,— это перекрёстная выборка. Она описывается следующим псевдокодом:
<Перекрёстная прове́рка (кросс-проверка, кроссвалидация, скользящий контроль; cross-validation) — метод оценки аналитической модели и её поведения на независимых данных. При оценке модели имеющиеся в наличии данные разбиваются на k частей. Затем на k−1 частях данных производится обучение модели, а оставшаяся часть данных используется для тестирования. Процедура повторяется k раз; в итоге каждая из k частей данных используется для тестирования. В результате получается оценка эффективности выбранной модели с наиболее равномерным использованием имеющихся данных.>
Перекрёстная выборка может быть описана как: «прогони все на тренировочном множестве и выбери тот, что работает лучше».
Выделение (Gating) является обобщением перекрёстной выборки. Метод вовлекает тренировку другой модели обучения для решения, какая из моделей в ведре больше подходит для решения задачи. Часто для выделения модели используется перцептрон.
Он может быть использован для выбора «лучшей» модели, или он может быть использован для получения линейного веса для предсказаний из каждой модели в ведре.
Когда ведро моделей используется с большим набором задач, может быть желательным избежать тренировки некоторых моделей, которые требуют долгого времени тренировки.
Ландмарк-обучение — это метаобучающий подход, который ищет решение этой задачи. Он вовлекает для тренировки только быстрые (но неточные) алгоритмы, а затем используется эффективность этих алгоритмов для определения, какой из медленных (но точных) алгоритмов выбрать как лучший.
***Адаптивный бустинг (AdaBoost)
Данный алгоритм сначала обучает первую базовую модель(допустим деревья решений) на тренировочном наборе. Относительный вес некорректно предсказанных значений увеличивается. На вход второй базовой модели подаются обновлённые веса и модель обучается, после чего вырабатываются прогнозы и цикл повторяется.
Результат работы AdaBoost - это средневзвешенная сумма каждой модели. Спрогнозированным значением ансамбля будет тот, который получает большинство взвешенный голосов.
Adaboost обновляет веса объектов на каждой итерации. Веса хорошо классифицированных объектов уменьшаются относительно весов неправильно классифицированных объектов. Модели, которые работают лучше, имеют больший вес в окончательной модели ансамбля.
При адаптивном бустинге используется итеративный метод (добавляем слабых учеников одного за другим, просматривая каждую итерацию, чтобы найти наилучшую возможную пару (коэффициент, слабый ученик) для добавления к текущей модели ансамбля) изменения весов. Он работает быстрее, чем аналитический метод.
Градиентный бустинг
Градиентный бустинг обучает слабые модели последовательно, исправляя ошибки предыдущих. Результатом градиентного бустинга также является средневзвешенная сумма результатов моделей. Принципиальное отличие от Adaboost это способ изменения весов. Адаптивный бустинг использует итеративный метод оптимизации. Градиентный бустинг оптимизируется с помощью градиентного спуска.
Таким образом градиентный бустинг - обобщение адаптивного бустинга для дифференцируемых функций.
Реализация в статистических пакетах
- R: по мешьшей мере три пакета предлагают средства для байесовской модели усреднения: BMS (сокращение от Bayesian Model Selection), пакет BAS (сокращение от Bayesian Adaptive Sampling) и пакет BMA. Пакет H2O предлагает большое число моделей обучении машин, включая модель сборки ансамбля, которая может быть тренирована с помощью Spark.
- Python: Scikit-learn, пакет для машинного обучения на языке Python, предлагает пакеты для обучения ансамблей, включая пакеты для бэггинга и методов усреднения.
- MATLAB: ансамбли классификаторов реализованы в наборе средств Statistics и Machine Learning.