Ансамбль алгоритмов

Материал из MachineLearning.

Версия от 15:56, 5 июля 2026; Gadel Mahmutov (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Статья написана с использованием LLM Claude Sonnet 5 и проверена участником Gadel Mahmutov 19:56, 5 июля 2026 (MSD)

Промпт приводится полностью в Обсуждение:Ансамбль алгоритмов


Ансамбль алгоритмов (англ. ensemble learning) — методология машинного обучения, в которой для решения одной задачи прогнозирования используется не одна модель, а согласованный набор (ансамбль) моделей, называемых базовыми алгоритмами или базовыми классификаторами (base learners), а итоговый прогноз получается путём объединения (агрегирования) их индивидуальных предсказаний — например, голосованием, усреднением или обучаемой комбинацией[1]. Ансамблевые методы, как правило, показывают более высокое качество и устойчивость предсказаний, чем любой из составляющих их базовых алгоритмов в отдельности, за счёт снижения дисперсии, смещения или того и другого одновременно[1].

К числу наиболее известных ансамблевых подходов относятся бэггинг (bagging), бустинг (boosting), случайный лес (random forest) и стекинг (stacking); эти методы широко применяются в задачах классификации, регрессии и во многих прикладных областях, а также стабильно занимают ведущие места в соревнованиях по анализу данных, включая Kaggle[1].

Содержание

Определение и мотивация

Формально пусть требуется построить прогностическую функцию f: \mathcal{X} \to \mathcal{Y}, которая по объекту x \in \mathcal{X} предсказывает целевую переменную y \in \mathcal{Y}. Вместо обучения единственной модели f строится набор из M базовых алгоритмов h_1, h_2, \ldots, h_M, а итоговое решение ансамбля H(x) формируется как функция их выходов:


H(x) = C\bigl(h_1(x), h_2(x), \ldots, h_M(x)\bigr),

где C — правило комбинирования (агрегатор). Для задач классификации в качестве C часто используется мажоритарное голосование (простое или взвешенное), а для регрессии — среднее арифметическое или взвешенное среднее предсказаний[1].

Идея ансамблей опирается на несколько взаимодополняющих соображений, сформулированных Т. Дитерихом[1]:

  • Статистическая причина. Если обучающая выборка невелика, у алгоритма обучения может существовать несколько разных гипотез, одинаково хорошо объясняющих данные. Выбор одной из них рискован; усреднение по нескольким снижает риск выбрать неудачную гипотезу.
  • Вычислительная причина. Многие алгоритмы обучения (например, построение деревьев решений или обучение нейронных сетей) выполняют локальный поиск и могут застревать в локальных оптимумах. Запуск алгоритма из разных начальных точек и объединение результатов даёт лучшее приближение к оптимальному решению, чем единичный запуск.
  • Репрезентационная причина. Истинная зависимость между признаками и целевой переменной может не входить в пространство гипотез, доступное отдельному базовому алгоритму. Взвешенная сумма нескольких гипотез из этого пространства способна аппроксимировать функции, недостижимые ни одной гипотезой по отдельности.

С теоретической точки зрения выигрыш ансамблей часто объясняют через классическое разложение ошибки на смещение и дисперсию (bias–variance decomposition): ожидаемая квадратичная ошибка прогноза раскладывается как


\mathbb{E}\bigl[(y - \hat f(x))^2\bigr] = \operatorname{Bias}[\hat f(x)]^2 + \operatorname{Var}[\hat f(x)] + \sigma^2,

где \sigma^2 — неустранимый шум[1]. Методы, подобные бэггингу, усредняют предсказания моделей с высокой дисперсией, обученных на разных подвыборках, и тем самым уменьшают член \operatorname{Var}, почти не меняя смещения; методы, подобные бустингу, последовательно уменьшают смещение, комбинируя простые («слабые») модели во всё более точную составную модель[1][1].

Другой ключевой фактор эффективности ансамбля — разнообразие (diversity) базовых алгоритмов: если ошибки отдельных моделей слабо коррелированы между собой, их усреднение взаимно гасит случайные ошибки. Для ансамбля из M независимых и одинаково точных классификаторов с вероятностью ошибки p < 0{,}5 каждого голосование большинством может дать вероятность ошибки, стремящуюся к нулю при росте M — это классический результат, восходящий к теореме присяжных Кондорсе и применённый к ансамблям классификаторов Хансеном и Саламоном[1]. На практике полной независимости моделей добиться нельзя, поэтому реальный выигрыш зависит от компромисса между точностью отдельных базовых алгоритмов и их взаимным разнообразием — это соотношение формализуется, в частности, разложением ошибки ансамбля на «средняя ошибка минус разброс» (ambiguity decomposition)[1].

Способы построения ансамбля

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

Управление обучающей выборкой

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

  • при бэггинге (сокращение от bootstrap aggregating) каждый базовый алгоритм обучается на собственной бутстрэп-выборке — выборке того же размера, полученной случайным выбором объектов с возвращением, — а итоговый прогноз усредняется (регрессия) или определяется голосованием (классификация)[1];
  • при бустинге объекты обучающей выборки получают веса, которые итеративно перевзвешиваются: после каждого шага веса неверно классифицированных объектов увеличиваются, так что следующий базовый алгоритм вынужден концентрироваться на «трудных» примерах[1].

Управление пространством признаков

Разнообразие также достигается обучением базовых алгоритмов на разных подмножествах признаков — этот приём называется методом случайных подпространств (random subspace method)[1]. Комбинация случайного отбора и объектов, и признаков лежит в основе случайного леса — ансамбля деревьев решений, в котором каждое дерево строится на своей бутстрэп-выборке, а при выборе очередного расщепления в узле дерева рассматривается только случайное подмножество признаков[1].

Управление алгоритмом и способом комбинирования

Разнообразие можно получить также, обучая базовые алгоритмы разных типов (например, дерево решений, линейную модель и метод опорных векторов) на одних и тех же данных. В этом случае для комбинирования их предсказаний часто применяют не фиксированное правило вроде голосования, а отдельную обучаемую модель — метаалгоритм (meta-learner), которая принимает на вход предсказания базовых моделей и выдаёт итоговый ответ. Такой подход называется стекинг (stacked generalization, stacking) и был предложен Д. Вольпертом[1]. Чтобы метаалгоритм не переобучался на предсказаниях базовых моделей, обучающие данные для него формируют по схеме, аналогичной перекрёстной проверке (cross-validation).

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

Основные семейства методов

Бэггинг

Основная статья: Бэггинг

Бэггинг снижает дисперсию предсказаний, усредняя результаты множества базовых моделей, обученных на независимых бутстрэп-выборках. Метод особенно эффективен для неустойчивых алгоритмов обучения — таких, у которых небольшое изменение обучающей выборки приводит к существенному изменению построенной модели (например, деревья решений большой глубины); для устойчивых алгоритмов (например, метод k ближайших соседей) выигрыш от бэггинга невелик[1]. Побочным продуктом бэггинга является out-of-bag-оценка ошибки: поскольку в среднем около трети объектов не попадает в каждую конкретную бутстрэп-выборку, эти объекты можно использовать как встроенную контрольную выборку без отдельного разбиения данных[1][1].

Случайный лес

Основная статья: Случайный лес

Случайный лес расширяет идею бэггинга применительно к деревьям решений, дополнительно вводя случайность на уровне выбора признаков при построении каждого расщепления. За счёт этого деревья ансамбля становятся менее скоррелированными между собой, что дополнительно уменьшает дисперсию итогового предсказания по сравнению с обычным бэггингом деревьев[1].

Бустинг

Основная статья: Бустинг

Бустинг строит ансамбль последовательно: каждый следующий базовый алгоритм обучается с учётом ошибок уже построенной части ансамбля. Первым практически реализуемым алгоритмом бустинга стал AdaBoost («адаптивный бустинг»), предложенный Й. Фрейндом и Р. Шапире[1]; он опирался на более ранний теоретический результат Шапире о том, что набор «слабых» классификаторов (точность каждого из которых лишь немного превышает случайное угадывание) можно объединить в один «сильный» классификатор произвольно высокой точности[1]. Дальнейшим развитием идеи стал градиентный бустинг (gradient boosting), в котором построение ансамбля рассматривается как численная оптимизация функционала ошибки методом градиентного спуска в пространстве функций: каждый следующий базовый алгоритм обучается приближать антиградиент функции потерь по текущим предсказаниям ансамбля[1]. На основе градиентного бустинга над деревьями решений построены широко используемые библиотеки XGBoost, LightGBM и CatBoost.

Стекинг и смешивание

Основная статья: Стекинг

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

Историческая справка

Идея объединения нескольких оценок для получения более надёжного результата восходит к статистике XVIII—XIX веков (например, к усреднению независимых измерений и к теореме Кондорсе о коллективном принятии решений). В машинном обучении первые систематические результаты о выигрыше от комбинирования моделей относятся к концу 1980-х — началу 1990-х годов: Хансен и Саламон показали, что усреднение по ансамблю нейронных сетей снижает ошибку обобщения по сравнению с отдельной сетью[1], а Вольперт предложил стекинг как общую схему обучаемого комбинирования моделей[1].

Решающий теоретический сдвиг произошёл в 1990 году, когда Р. Шапире доказал, что «слабую обучаемость» (существование алгоритма, чуть более точного, чем случайное угадывание) можно преобразовать в «сильную обучаемость» (произвольно высокую точность), формально обосновав саму возможность бустинга[1]. Эта теоретическая конструкция была превращена в практичный и широко применимый алгоритм — AdaBoost — Фрейндом и Шапире в 1996—1997 годах[1]. Параллельно Л. Брейман предложил бэггинг (1996)[1] и позднее объединил идеи бэггинга и случайного выбора признаков в методе случайного леса (2001)[1], а Т. Хо независимо развивала метод случайных подпространств для построения ансамблей деревьев[1].

На рубеже 2000-х годов Дж. Фридман переформулировал бустинг в общих терминах численной оптимизации в функциональном пространстве, предложив градиентный бустинг как единую схему, применимую к произвольным дифференцируемым функциям потерь и различным типам базовых моделей[1]. Обзорная статья Т. Дитериха 2000 года систематизировала накопленные к тому времени подходы и статистические, вычислительные и репрезентационные аргументы в пользу ансамблевых методов, закрепив ансамблевое обучение как самостоятельное направление машинного обучения[1]. В 2000-е и 2010-е годы на основе градиентного бустинга над деревьями решений были разработаны высокопроизводительные промышленные библиотеки (XGBoost, LightGBM, CatBoost), которые благодаря сочетанию точности, скорости и удобства использования стали одними из самых популярных инструментов для работы со структурированными (табличными) данными и регулярно применяются победителями соревнований по анализу данных.

Практические аспекты и ограничения

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

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

См. также

Примечания


Литература

Breiman L. Bagging predictors // Machine Learning. — 1996. — Т. 24. — № 2. — С. 123–140.

Breiman L. Random forests // Machine Learning. — 2001. — Т. 45. — № 1. — С. 5–32.

Dietterich T. G. Multiple Classifier Systems (Lecture Notes in Computer Science). — Berlin: Springer, 2000. — Т. 1857. — С. 1–15.

Freund Y., Schapire R. E. A decision-theoretic generalization of on-line learning and an application to boosting // Journal of Computer and System Sciences. — 1997. — Т. 55. — № 1. — С. 119–139.

Friedman J. H. Greedy function approximation: A gradient boosting machine // The Annals of Statistics. — 2001. — Т. 29. — № 5. — С. 1189–1232.

Hansen L. K., Salamon P. Neural network ensembles // IEEE Transactions on Pattern Analysis and Machine Intelligence. — 1990. — Т. 12. — № 10. — С. 993–1001.

Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. — 2-е изд.. — New York: Springer, 2009.

Ho T. K. The random subspace method for constructing decision forests // IEEE Transactions on Pattern Analysis and Machine Intelligence. — 1998. — Т. 20. — № 8. — С. 832–844.

Krogh A., Vedelsby J. Advances in Neural Information Processing Systems. — MIT Press, 1995. — Т. 7. — С. 231–238.

Schapire R. E. The strength of weak learnability // Machine Learning. — 1990. — Т. 5. — № 2. — С. 197–227.

Wolpert D. H. Stacked generalization // Neural Networks. — 1992. — Т. 5. — № 2. — С. 241–259.

Zhou Z.-H. Ensemble Methods: Foundations and Algorithms. — Boca Raton: CRC Press, 2012. — ISBN 978-1-4398-3003-1

Личные инструменты