Ансамблевый метод

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

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: {{well|Статья написана с использованием LLM ChatGPT и проверена участником Aliia Latipova 16:00, 17 ...)
(Перенаправление на Композиционные методы)
 
Строка 1: Строка 1:
-
{{well|Статья написана с использованием LLM ChatGPT и проверена участником [[Участник:Aliia Latipova|Aliia Latipova]] 16:00, 17 июля 2026 (MSD). Промпт приводится полностью в [[Обсуждение:Ансамбли (машинное обучение)]].}}
+
#REDIRECT [[Композиционные методы]]
-
{{TOCright}}
+
-
 
+
-
== Определение и интуитивные основания ==
+
-
'''Ансамблевый метод''' (ансамбль моделей) — подход в [[машинное обучение|машинном обучении]], при котором строится множество базовых (слабых) прогностических моделей, а итоговое предсказание формируется путём агрегирования их выходов. Для задачи регрессии агрегированием чаще всего служит взвешенное или простое среднее; для классификации — голосование (мажоритарное или взвешенное). Формально, пусть <tex>\mathcal{D} = \{(x_i, y_i)\}_{i=1}^N</tex> — обучающая выборка, <tex>f_1, f_2, \dots, f_K</tex> — базовые алгоритмы. Тогда предсказание ансамбля имеет вид
+
-
:: <tex>\bar{f}(x) = \sum_{k=1}^K w_k f_k(x), \quad \sum w_k = 1, \ w_k \geq 0</tex>
+
-
для регрессии, или
+
-
:: <tex>\bar{f}(x) = \arg\max_{y \in \mathcal{Y}} \sum_{k=1}^K w_k \mathbb{I}[f_k(x) = y]</tex>
+
-
для классификации. Ансамбли обладают двумя ключевыми интуитивными обоснованиями.
+
-
* '''Статистическая интуиция''': каждая модель обучается по конечной выборке и является случайной оценкой истинной зависимости. Усреднение нескольких независимых (или слабо коррелированных) оценок, согласно [[Закон больших чисел|закону больших чисел]], уменьшает дисперсию оценки без увеличения смещения. Если модели имеют одинаковое смещение <tex>B</tex> и независимые ошибки с дисперсией <tex>\sigma^2</tex>, то дисперсия ансамблевого предсказания равна <tex>\sigma^2 / K</tex>.
+
-
* '''Геометрическая интуиция''': в пространстве функций каждая модель соответствует точке; ансамбль выбирает точку, лежащую внутри выпуклой оболочки базовых моделей. Это позволяет выходить за рамки гипотез, реализуемых одним алгоритмом, и конструировать более гибкие разделяющие поверхности.
+
-
 
+
-
Принципиальным условием эффективности является '''диверсификация''' базовых алгоритмов: их ошибки должны быть по возможности некоррелированы. Если все модели ошибаются одинаково, объединение не даёт выигрыша.
+
-
 
+
-
== Теоретические основы ==
+
-
=== Разложение смещения и разброса ===
+
-
Для квадратичной функции потерь ожидаемая ошибка модели <tex>f</tex> в точке <tex>x</tex> раскладывается в сумму смещения, разброса и неустранимого шума<ref name="Hastie">{{книга |автор=Hastie T., Tibshirani R., Friedman J. |заглавие=The Elements of Statistical Learning |издание=2-е изд |место=New York |издательство=Springer |год=2009}}</ref>:
+
-
:: <tex>\mathbb{E}_{\mathcal{D}}[(y - f(x;\mathcal{D}))^2] = (\mathbb{E}[f] - y)^2 + \operatorname{Var}(f) + \sigma^2_{\text{noise}}.</tex>
+
-
Ансамбль из <tex>K</tex> одинаково распределённых моделей с попарной корреляцией <tex>\rho</tex> имеет дисперсию<ref name="Hastie"/>:
+
-
:: <tex>\operatorname{Var}(\bar{f}) = \rho \sigma^2 + \frac{1-\rho}{K}\sigma^2,</tex>
+
-
где <tex>\sigma^2 = \operatorname{Var}(f_k)</tex>. Отсюда видно, что при <tex>\rho < 1</tex> дисперсия ансамбля строго меньше дисперсии одного базового алгоритма. Методы [[бэггинг]]а направлены именно на уменьшение разброса при почти неизменном смещении. [[Бустинг]], напротив, последовательно уменьшает смещение, объединяя слабые модели с высоким смещением.
+
-
 
+
-
=== Диверсификация и корреляция ошибок ===
+
-
Количественной мерой разнообразия служат Q-статистика Йола или коэффициент <tex>\kappa</tex> Коэна для пар классификаторов<ref>{{статья |автор=Kuncheva L. I., Whitaker C. J. |заглавие=Measures of diversity in classifier ensembles and their relationship with the ensemble accuracy |издание=Machine Learning |год=2003 |том=51 |номер=2 |страницы=181–207}}</ref>. Экспериментально установлено, что ансамбли показывают наибольший выигрыш, когда базовые модели ошибаются на разных подмножествах данных. Приближение к нулю корреляции достигается за счёт введения случайности в обучение (бутстреп, случайные подпространства признаков).
+
-
 
+
-
=== Связь с предельными теоремами ===
+
-
При усреднении бесконечного числа независимых несмещённых моделей предсказание ансамбля сходится к математическому ожиданию истинной функции ([[закон больших чисел]]). [[Центральная предельная теорема]] гарантирует асимптотическую нормальность ошибки ансамбля, что позволяет строить приближённые доверительные интервалы для методов типа случайного леса.
+
-
 
+
-
== Основные семейства методов ==
+
-
=== Бэггинг (Bagging) ===
+
-
[[Бэггинг]] (bootstrap aggregating), предложенный Л. Брейманом<ref name="bagging">{{статья |автор=Breiman L. |заглавие=Bagging predictors |издание=Machine Learning |год=1996 |том=24 |номер=2 |страницы=123–140}}</ref>, заключается в параллельном обучении <tex>K</tex> моделей на бутстреп-выборках, полученных из исходной выборки <tex>\mathcal{D}</tex> выбором с возвращением. Предсказания агрегируются равновесным усреднением (регрессия) или голосованием (классификация). Бэггинг наиболее эффективен для ''нестабильных'' алгоритмов (глубокие [[Дерево решений|деревья решений]]), где малые изменения данных приводят к значительным изменениям модели. Метод не уменьшает смещение, но значительно снижает дисперсию. Обобщающая способность улучшается всегда, когда базовый алгоритм чувствителен к вариациям выборки<ref name="bagging"/>.
+
-
 
+
-
=== Бустинг (Boosting) ===
+
-
[[Бустинг]] строит ансамбль последовательно: каждая следующая модель фокусируется на примерах, которые были плохо предсказаны предыдущими. Впервые практически реализован в алгоритме [[AdaBoost]]<ref name="adaboost">{{статья |автор=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}}</ref>, который перевзвешивает обучающие объекты. Аддитивная модель имеет вид
+
-
:: <tex>F_m(x) = F_{m-1}(x) + \alpha_m h_m(x),</tex>
+
-
где <tex>h_m</tex> — слабый классификатор, <tex>\alpha_m</tex> — его вес. В современной трактовке бустинг решает задачу минимизации эмпирического риска путём градиентного спуска в функциональном пространстве — [[градиентный бустинг]]<ref name="gbm">{{статья |автор=Friedman J. H. |заглавие=Greedy function approximation: A gradient boosting machine |издание=Annals of Statistics |год=2001 |том=29 |номер=5 |страницы=1189–1232}}</ref>. Каждая новая модель аппроксимирует антиградиент функции потерь по текущему ансамблю.
+
-
 
+
-
=== Стекинг (Stacking) ===
+
-
[[Стекинг]] (stacked generalization) обучает мета-модель на выходах базовых алгоритмов<ref>{{статья |автор=Wolpert D. H. |заглавие=Stacked generalization |издание=Neural Networks |год=1992 |том=5 |номер=2 |страницы=241–259}}</ref>. Чтобы избежать смещённой оценки, базовые предсказания получают с помощью [[Кросс-валидация|кросс-валидации]]: данные разбиваются на фолды, на каждом фолде модель обучается на остальных и предсказывает выбранный фолд. Собранный набор мета-признаков используется для обучения мета-алгоритма (часто [[Логистическая регрессия|логистическая регрессия]] или [[Линейная регрессия|линейная регрессия]] с неотрицательными весами). Итоговый ансамбль:
+
-
:: <tex>\bar{f}(x) = g(f_1(x), \dots, f_K(x)),</tex>
+
-
где <tex>g</tex> — мета-модель. Веса мета-алгоритма интерпретируются как относительная важность базовых моделей.
+
-
 
+
-
== Свойства и теоремы ==
+
-
* '''Теорема о сильном обучении''' (Schapire, 1990): если существует эффективный алгоритм, порождающий слабые гипотезы (ошибка менее 1/2 для бинарной классификации), то с помощью бустинга можно построить сильную гипотезу со сколь угодно малой ошибкой на обучающей выборке<ref>{{статья |автор=Schapire R. E. |заглавие=The strength of weak learnability |издание=Machine Learning |год=1990 |том=5 |номер=2 |страницы=197–227}}</ref>.
+
-
* '''Сходимость AdaBoost''': в бинарной классификации с экспоненциальной функцией потерь обучающая ошибка ограничена сверху величиной <tex>\exp(-2\sum_{m=1}^M \gamma_m^2)</tex>, где <tex>\gamma_m</tex> — отрыв слабого классификатора от случайного угадывания<ref name="adaboost"/>. При достаточной ёмкости базовых моделей обучение сходится к нулю.
+
-
* '''Граница обобщения случайного леса''' (Breiman, 2001): ошибка обобщения с ростом числа деревьев почти наверное сходится к величине <tex>\rho \cdot \mathbb{P}_{X,Y}( \text{margin}(X,Y) < 0 )</tex>, где <tex>\rho</tex> — корреляция между деревьями<ref name="rf"/>. Увеличение числа деревьев не приводит к переобучению.
+
-
* '''Условие улучшения для бэггинга''': если базовый алгоритм нестабилен в смысле бутстреп-возмущений, то среднеквадратичная ошибка ансамбля не превышает ошибку одного алгоритма. Для стабильных методов (например, линейной регрессии) бэггинг не даёт выигрыша<ref name="bagging"/>.
+
-
* '''Консистентность случайного леса''': при определённых ограничениях на структуру деревьев и распределение данных случайный лес состоятелен в смысле сходимости к байесовскому классификатору при стремлении объёма выборки к бесконечности<ref>{{статья |автор=Biau G., Scornet E. |заглавие=A random forest guided tour |издание=Test |год=2016 |том=25 |номер=2 |страницы=197–227}}</ref>.
+
-
 
+
-
== Роль случайности, регуляризации и кросс-валидации ==
+
-
* '''Случайность''' — основной источник диверсификации. В [[Случайный лес|случайном лесе]] случайными являются как бутстреп-выборки объектов, так и подмножества признаков в каждом узле дерева. В стохастическом градиентном бустинге применяется подвыборка строк (subsampling) и признаков.
+
-
* '''Регуляризация''' предотвращает переобучение. В бустинге ключевыми регуляризаторами служат: темп обучения <tex>\eta</tex> (shrinkage), максимальная глубина деревьев, минимальное число объектов в листе, L1/L2-регуляризация весов листьев (в XGBoost<ref name="xgboost"/>), параметр max_delta_step. Бэггинг-ансамбли регуляризуются неявно за счёт усреднения, а также ограничениями на глубину базовых деревьев.
+
-
* '''Кросс-валидация''' — обязательный этап при построении стекинга (для получения несмещённых мета-признаков) и при подборе числа моделей в бустинге (ранняя остановка). Для случайного леса внепакетная ошибка (out-of-bag) является состоятельной оценкой ошибки обобщения без необходимости отдельной валидационной выборки<ref name="rf"/>.
+
-
 
+
-
== Частные случаи ==
+
-
=== Случайный лес (Random Forest) ===
+
-
[[Случайный лес]]<ref name="rf">{{статья |автор=Breiman L. |заглавие=Random forests |издание=Machine Learning |год=2001 |том=45 |номер=1 |страницы=5–32}}</ref> — бэггинг над решающими деревьями, в котором на каждом разбиении дополнительно случайно выбирается <tex>m \ll p</tex> признаков. Это снижает корреляцию между деревьями и улучшает обобщающую способность. Важность признаков оценивается по падению точности при пермутации или по уменьшению критерия неоднородности.
+
-
 
+
-
=== AdaBoost ===
+
-
Алгоритм [[AdaBoost]]<ref name="adaboost"/> инициализирует равные веса объектам, на каждой итерации обучает слабый классификатор, вычисляет его взвешенную ошибку <tex>\epsilon_m</tex> и вес <tex>\alpha_m = \frac{1}{2}\ln\frac{1-\epsilon_m}{\epsilon_m}</tex>, после чего обновляет веса объектов, увеличивая их для неверно классифицированных примеров. Итоговый классификатор: <tex>F(x) = \operatorname{sign}\left(\sum_m \alpha_m h_m(x)\right)</tex>.
+
-
 
+
-
=== Градиентный бустинг: XGBoost, LightGBM, CatBoost ===
+
-
* '''XGBoost'''<ref name="xgboost">{{статья |автор=Chen T., Guestrin C. |заглавие=XGBoost: A scalable tree boosting system |издание=Proceedings of the 22nd ACM SIGKDD |год=2016 |страницы=785–794}}</ref>: оптимизирует регуляризованную целевую функцию с использованием вторых производных (аппроксимация Тейлора), встроенная обработка пропусков, кэш-оптимизации для разреженных данных.
+
-
* '''LightGBM'''<ref>{{статья |автор=Ke G., Meng Q., Finley T. и др. |заглавие=LightGBM: A highly efficient gradient boosting decision tree |издание=Advances in Neural Information Processing Systems |год=2017 |том=30 |страницы=3146–3154}}</ref>: использует листовой рост деревьев (leaf-wise), градиентную одностороннюю выборку (GOSS) и объединение взаимоисключающих признаков (EFB) для ускорения обучения.
+
-
* '''CatBoost'''<ref>{{статья |автор=Prokhorenkova L., Gusev G., Vorobev A. и др. |заглавие=CatBoost: unbiased boosting with categorical features |издание=Advances in Neural Information Processing Systems |год=2018 |том=31}}</ref>: реализует упорядоченный бустинг (ordered boosting) и симметричные деревья, обеспечивая несмещённую обработку категориальных переменных с помощью статистик на перестановках.
+
-
 
+
-
=== Ансамбли линейных моделей ===
+
-
Бэггинг линейной регрессии не даёт выигрыша, так как МНК-оценки стабильны. Бустинг линейных моделей с L2-функцией потерь эквивалентен итеративной регуляризации и может приводить к результату, близкому к гребневой регрессии<ref>{{статья |автор=Bühlmann P., Yu B. |заглавие=Boosting with the L2 loss: regression and classification |издание=Journal of the American Statistical Association |год=2003 |том=98 |номер=462 |страницы=324–339}}</ref>. Ансамбли линейных моделей полезны в задачах с очень высокой размерностью (геномика), когда одна модель склонна к переобучению.
+
-
 
+
-
=== Ансамбли нейронных сетей ===
+
-
Глубокие ансамбли (deep ensembles) объединяют несколько нейросетей одинаковой архитектуры, обученных с различной инициализацией и/или на разных подмножествах данных<ref>{{статья |автор=Lakshminarayanan B., Pritzel A., Blundell C. |заглавие=Simple and scalable predictive uncertainty estimation using deep ensembles |издание=Advances in Neural Information Processing Systems |год=2017 |том=30}}</ref>. Показано, что они дают как повышение точности, так и качественные оценки неопределённости. Другие подходы: снэпшот-ансамбли (snapshot ensembles), быстрое геометрическое усреднение (FGE) и использование [[MC Dropout]] как приближённого ансамбля.
+
-
 
+
-
== Применения ==
+
-
* '''Соревнования Kaggle''': ансамбли (особенно градиентный бустинг, стекинг и блендинг) доминируют среди решений победителей. XGBoost и LightGBM являются стандартом де-факто для табличных данных.
+
-
* '''Кредитный скоринг и риск-менеджмент''': ансамбли деревьев обеспечивают высокую прогнозную силу, а встроенные меры важности признаков частично отвечают требованиям интерпретируемости.
+
-
* '''Медицинская диагностика''': случайный лес и бустинг применяются для прогнозирования заболеваний, анализа выживаемости. Требуются тщательная калибровка и оценка неопределённости.
+
-
* '''Ранжирование в поисковых системах''': алгоритм LambdaMART (модификация градиентного бустинга для попарных и списочных функций потерь) лежит в основе многих промышленных систем.
+
-
* '''Компьютерное зрение''': ансамбли свёрточных сетей широко использовались до появления трансформеров, оставаясь актуальными для повышения устойчивости и точности в задачах классификации и сегментации.
+
-
* '''Обработка естественного языка''': ансамбли трансформерных моделей (BERT, RoBERTa) путём усреднения вероятностей повышают качество на тестовых наборах.
+
-
 
+
-
== Сравнительный анализ методов ==
+
-
* '''Вычислительная сложность''': бэггинг и случайный лес легко параллелизуются. Бустинг — последовательный, но современные реализации (LightGBM, CatBoost) включают многопоточность. Стекинг требует ресурсоёмкой кросс-валидации для подготовки мета-признаков.
+
-
* '''Интерпретируемость''': случайный лес предоставляет информативные оценки важности признаков, частичную зависимость. Бустинг интерпретируется сложнее, хотя SHAP-значения на деревьях работают хорошо. Стекинг практически неинтерпретируем.
+
-
* '''Склонность к переобучению''': случайный лес устойчив; увеличение числа деревьев не ведёт к переобучению. Бустинг может переобучаться при избытке итераций — помогает ранняя остановка. Стекинг склонен к переобучению на мета-уровне при неправильном разделении данных.
+
-
* '''Несбалансированные данные''': бустинг легко адаптируется взвешиванием классов; бэггинг можно комбинировать со сбалансированным бутстрепом; стекинг требует специальной настройки мета-алгоритма.
+
-
* '''Пропуски в данных''': XGBoost и CatBoost обрабатывают пропуски нативно; бэггинг-модели обычно требуют предварительного заполнения.
+
-
 
+
-
== Ограничения и типичные ошибки ==
+
-
* '''Высокая корреляция базовых моделей''' сводит на нет преимущества ансамбля. Необходимо обеспечивать разнообразие через случайность или использование разных семейств алгоритмов.
+
-
* '''Слишком слабые базовые модели в бустинге''' (например, пеньки для сложной задачи) замедляют сходимость и могут привести к недообучению.
+
-
* '''Переобученный стекинг''' возникает, когда мета-признаки и целевая переменная берутся из одного фолда без честного разделения.
+
-
* '''Неподходящая функция потерь''': стандартные реализации градиентного бустинга заточены под определённые потери; выбор неправильной функции (например, квадратичной для классификации) снижает качество.
+
-
* '''Игнорирование предварительной настройки гиперпараметров''' (глубина деревьев, learning rate, число моделей) приводит либо к недообучению, либо к переобучению.
+
-
 
+
-
== Ансамбли в AutoML и современных пайплайнах ==
+
-
Современные системы [[AutoML]] (Auto-Sklearn, H2O AutoML, AutoGluon) рассматривают ансамбли как один из ключевых этапов пайплайна. Производится автоматический подбор базовых моделей, их гиперпараметров и стратегии агрегирования (стекинг, взвешенное усреднение, greedy ensemble selection). В AutoGluon-Tabular многоуровневый стекинг моделей разной природы (деревья, нейросети, линейные модели) достигает качества, сопоставимого с ручной экспертной настройкой. В [[Федеративное обучение|федеративном обучении]] ансамблирование локальных моделей является естественным способом построения глобального предиктора без обмена данными.
+
-
 
+
-
== Заключение ==
+
-
Ансамблевые методы остаются одним из самых надёжных инструментов повышения точности и устойчивости машинного обучения, благодаря строгим статистическим основаниям и развитой программной экосистеме. Понимание тонкостей смещения-разброса, диверсификации и корреляции ошибок позволяет осознанно выбирать тип ансамбля, избегая типичных ловушек и достигая уровня лучших современных решений.
+
-
 
+
-
== Литература ==
+
-
* {{книга |автор=Hastie T., Tibshirani R., Friedman J. |заглавие=The Elements of Statistical Learning |издание=2-е изд |место=New York |издательство=Springer |год=2009}}
+
-
* {{книга |автор=James G., Witten D., Hastie T., Tibshirani R. |заглавие=An Introduction to Statistical Learning |издание=2-е изд |место=New York |издательство=Springer |год=2021}}
+
-
* {{статья |автор=Breiman L. |заглавие=Bagging predictors |издание=Machine Learning |год=1996 |том=24 |номер=2 |страницы=123–140}}
+
-
* {{статья |автор=Breiman L. |заглавие=Random forests |издание=Machine Learning |год=2001 |том=45 |номер=1 |страницы=5–32}}
+
-
* {{статья |автор=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 |издание=Annals of Statistics |год=2001 |том=29 |номер=5 |страницы=1189–1232}}
+
-
* {{статья |автор=Chen T., Guestrin C. |заглавие=XGBoost: A scalable tree boosting system |издание=Proceedings of the 22nd ACM SIGKDD |год=2016 |страницы=785–794}}
+
-
* {{статья |автор=Ke G., Meng Q., Finley T. и др. |заглавие=LightGBM: A highly efficient gradient boosting decision tree |издание=Advances in Neural Information Processing Systems |год=2017 |том=30 |страницы=3146–3154}}
+
-
* {{статья |автор=Prokhorenkova L., Gusev G., Vorobev A. и др. |заглавие=CatBoost: unbiased boosting with categorical features |издание=Advances in Neural Information Processing Systems |год=2018 |том=31}}
+
-
* {{статья |автор=Lakshminarayanan B., Pritzel A., Blundell C. |заглавие=Simple and scalable predictive uncertainty estimation using deep ensembles |издание=Advances in Neural Information Processing Systems |год=2017 |том=30}}
+
-
* {{статья |автор=Wolpert D. H. |заглавие=Stacked generalization |издание=Neural Networks |год=1992 |том=5 |номер=2 |страницы=241–259}}
+
-
* {{статья |автор=Bühlmann P., Yu B. |заглавие=Boosting with the L2 loss: regression and classification |издание=Journal of the American Statistical Association |год=2003 |том=98 |номер=462 |страницы=324–339}}
+
-
* {{статья |автор=Biau G., Scornet E. |заглавие=A random forest guided tour |издание=Test |год=2016 |том=25 |номер=2 |страницы=197–227}}
+
-
* {{статья |автор=Kuncheva L. I., Whitaker C. J. |заглавие=Measures of diversity in classifier ensembles and their relationship with the ensemble accuracy |издание=Machine Learning |год=2003 |том=51 |номер=2 |страницы=181–207}}
+
-
 
+
-
== Примечания ==
+
-
<references/>
+
-
 
+
-
[[Категория:Машинное обучение]]
+
-
[[Категория:Статистическое обучение]]
+
-
[[Категория:Методы классификации]]
+
-
[[Категория:Ансамблевые методы]]
+

Текущая версия

  1. REDIRECT Композиционные методы
Личные инструменты