Изучая классическое машинное обучение, я постоянно натыкался на парадокс: материалов много, а интуитивно понятных объяснений, почему ансамбли — это так мощно, на удивление мало.
Я хочу это исправить. В этой статье мы разложим по полочкам саму концепцию ансамблей. А затем по логике ансамблей разберем двух "королей" этого подхода: Случайный Лес и Градиентный Бустинг.
Концепция ансамблей в машинном обучении
Ансамбли - это такая парадигма машинного обучения, в которой несколько слабых моделей обучаются решать одну задачу, и объединяются чтобы получить лучшие результаты.
Главная идея ансамблей — много «слабых» алгоритмов в совокупности могут образовать один «сильный».
Почему это работает?
Наши средние ошибки - можно разложить на bias(смещение) и variance (разброс), ну и какой то шум, который есть всегда.
Разберем все по полочкам)
Смещение - в целом показывает на сколько в среднем ответы алгоритма отклоняются от истины.
Разброс - показывает на сколько модель дает разнообразные ответы

На практике, анализируя ошибки модели на обучающей (train
) и валидационной (validation
) выборках, мы можем диагностировать четыре состояния, которые обычно сводятся к трем основным сценариям:
1. Сценарий: Недообучение (Высокое смещение / High Bias) Это происходит, когда модель слишком проста, чтобы уловить закономерности в данных.
Как распознать: Ошибка на обучающей выборке высокая. Ошибка на валидационной выборке также высокая и находится примерно на том же уровне.
Диагноз: Модель плохо справляется даже с теми данными, которые она уже видела. Разрыв между ошибками минимален не потому, что модель хороша, а потому, что она одинаково плоха везде.
2. Сценарий: Переобучение (Высокий разброс / High Variance) Это происходит, когда модель слишком сложная и вместо изучения закономерностей просто "зазубривает" обучающие данные, включая случайный шум.
Как распознать: Ошибка на обучающей выборке очень низкая. При этом ошибка на валидационной выборке значительно выше.
Диагноз: Большой разрыв между ошибками — ключевой признак переобучения. Модель идеально работает на знакомых данных, но теряет всякую предсказательную силу на новых.
3. Сценарий: "Золотая середина" (Низкое смещение и низкий разброс) Это идеальное состояние, к которому мы стремимся.
Как распознать: Ошибка на обучающей выборке низкая, и ошибка на валидационной выборке также низкая и лишь незначительно превышает ошибку на обучении.
Диагноз: Модель успешно выучила основные закономерности в данных (низкое смещение) и способна применять их к новым, невиданным ранее данным (низкий разброс).

Классической проблемой в машинном обучении (и не только) является дилемма смещения-разброса. Она говорит о том, что нельзя уменьшить дисперсию, не увеличивая смещение (и наоборот)
Теперь конкретнее про алгоритмы
Ансамбли строятся на основе «слабых» моделей — алгоритмов с невысокой предсказательной способностью. Такие модели бывают двух типов:
Модели с высоким смещением (Bias) и низким разбросом. Они слишком просты и недообучаются. Пример: решающий пень (дерево с одним разделением).
Модели с высоким разбросом (Variance) и низким смещением. Они слишком сложны и легко переобучаются. Пример: очень глубокое решающее дерево.
Основная идея ансамблирования заключается в том, чтобы не искать один идеальный алгоритм, а стратегически объединять слабые, компенсируя их недостатки.
Это приводит к двум фундаментальным подходам:
-
Путь 1: Борьба с разбросом. Взять много сложных, переобученных моделей (высокий variance) и усреднить их прогнозы. Это снижает итоговый разброс ансамбля.
Метод: Случайный Лес.
-
Путь 2: Борьба со смещением. Взять много простых, недообученных моделей (высокий bias) и последовательно их обучать, где каждая следующая модель исправляет ошибки предыдущей. Это снижает итоговое смещение ансамбля.
Метод: Градиентный Бустинг.
Метод уменьшения разброса: Случайный Лес (Random Forest)
В основе Случайного Леса лежит работа с моделями, имеющими низкое смещение (low bias), но высокий разброс (high variance). В качестве таких моделей используются очень глубокие, переобученные решающие деревья.
Задача ансамбля в этом случае — уменьшить высокий разброс, сохранив при этом низкое смещение.
Ключевая идея заимствована из статистики. Центральная предельная теорема (ЦПТ) гласит, что при усреднении n
независимых, одинаково распределенных случайных величин, дисперсия (разброс) их среднего уменьшается в n
раз по сравнению с дисперсией каждой отдельной величины.
Ошибки наших моделей можно рассматривать как такие случайные величины.
Пример: Предположим, у нас есть ансамбль из 10 моделей. Ошибка каждой из них имеет дисперсию σ² = 100.
Если мы используем только одну модель, дисперсия нашей ошибки равна 100.
Если мы усредним прогнозы всех 10 независимых моделей, итоговая дисперсия ошибки сократится до 100 / 10 = 10.
Таким образом, усреднение делает итоговый прогноз более стабильным и устойчивым.
Это то что нужно, но вот незадача, проблема в независимости случайных величин.
Хотя мы можем гарантировать, что эти величины одинаково распределены, так как мы предсказываем одну и ту же величину, на одних и тех же данных, а вот то что мы используем одни и те же данные, ломает нам всю независимость величин.
Для решения этой проблемы используется два приема:
Бэггинг - создается обучающая выборка бутстрэпом (из исходной выборки случайно с повторениями выбираются объекты) некоторые объекты могут попасть в выборку несколько раз, а некоторые ни разу. Так деревья становятся менее зависимыми.
Random subspace (случайные подпространства) - даже с бэггингом деревья могут быть недостаточно разными, т.к они используют одни и те же признаки для разбиений. По этому используется случайные подпространства.Для каждого дерева случайно выбираются подмножества признаков (например кв корень из общего числа признаков). Дерево обучается только на этих признаках
Итак, в чем же идея случайного леса:
Для каждого дерева создаем подвыборку объектов и признаков.
Переобучаем очень глубокие деревья на каждой подвыборке.
Агрегируем их предсказания.
Чем слабее коррелируют предсказания деревьев, тем сильнее уменьшится variance.
Bias же каждого дерева был изначально невелик. Если предсказания еще и агрегировать, то он точно не сможет сильно вырасти.
Метод уменьшения смещения: Градиентный Бустинг (Gradient Boosting)
В отличие от Случайного Леса, Градиентный Бустинг работает с моделями, у которых высокое смещение (high bias) и низкий разброс (low variance). Его цель - последовательно уменьшать смещение всего ансамбля.
Ключевое отличие бустинга в том, что модели строятся не независимо, а последовательно. Каждая следующая модель в ансамбле обучается на ошибках, допущенных композицией всех предыдущих моделей.
Этот подход позволяет ансамблю шаг за шагом приближаться к правильным ответам. Однако он же создает и основной риск - переобучение. Поскольку каждая модель сфокусирована на ошибках, ансамбль может начать подгоняться под шум в данных, поэтому контроль количества моделей (итераций) здесь критически важен.
Для бустинга идеально подходят «слабые» модели, которые сами по себе не склонны к переобучению, то есть имеют низкий разброс. Классическим примером являются «решающие пни» - очень неглубокие деревья решений, часто всего с одним-двумя разделениями.
Но тут уже есть свои нюансы, связанные с математикой, дело в том, что для оптимизации мы используем градиентный спуск, но наша функция выглядит примерно вот так:
Здесь и кроется вся магия градиентного бустинга. Вместо того чтобы оптимизировать эту сложную функцию напрямую, алгоритм на каждом шаге обучает новое дерево предсказывать градиент функции потерь — то есть, 'направление' ошибки ансамбля. Говоря проще, каждое новое дерево учится исправлять самые грубые ошибки всей предыдущей композиции моделей. Глубокий разбор математики — это тема для отдельной статьи, но именно эта идея обучения на градиенте ошибки и дала название методу.
Заключение
Буду рад выслушать ваши замечания, предложения и конструктивную критику. Также приглашаю подписаться на мой телеграм-канал, где я делюсь своими знаниями и обзорами в области машинного обучения и спортивными достижениями.
Ваши отзывы помогут мне совершенствоваться и двигаться дальше!