Изучая классическое машинное обучение, я постоянно натыкался на парадокс: материалов много, а интуитивно понятных объяснений, почему ансамбли — это так мощно, на удивление мало.
Я хочу это исправить. В этой статье мы разложим по полочкам саму концепцию ансамблей. А затем по логике ансамблей разберем двух "королей" этого подхода: Случайный Лес и Градиентный Бустинг.

Концепция ансамблей в машинном обучении

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

Главная идея ансамблей — много «слабых» алгоритмов в совокупности могут образовать один «сильный».

Почему это работает?

Наши средние ошибки - можно разложить на bias(смещение) и variance (разброс), ну и какой то шум, который есть всегда.

\text{Error} = \text{bias}^2 + \text{variance} + \text{noise}

Разберем все по полочкам)
Смещение - в целом показывает на сколько в среднем ответы алгоритма отклоняются от истины.
Разброс - показывает на сколько модель дает разнообразные ответы

На практике, анализируя ошибки модели на обучающей (train) и валидационной (validation) выборках, мы можем диагностировать четыре состояния, которые обычно сводятся к трем основным сценариям:

1. Сценарий: Недообучение (Высокое смещение / High Bias) Это происходит, когда модель слишком проста, чтобы уловить закономерности в данных.

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

  • Диагноз: Модель плохо справляется даже с теми данными, которые она уже видела. Разрыв между ошибками минимален не потому, что модель хороша, а потому, что она одинаково плоха везде.

2. Сценарий: Переобучение (Высокий разброс / High Variance) Это происходит, когда модель слишком сложная и вместо изучения закономерностей просто "зазубривает" обучающие данные, включая случайный шум.

  • Как распознать: Ошибка на обучающей выборке очень низкая. При этом ошибка на валидационной выборке значительно выше.

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

3. Сценарий: "Золотая середина" (Низкое смещение и низкий разброс) Это идеальное состояние, к которому мы стремимся.

  • Как распознать: Ошибка на обучающей выборке низкая, и ошибка на валидационной выборке также низкая и лишь незначительно превышает ошибку на обучении.

  • Диагноз: Модель успешно выучила основные закономерности в данных (низкое смещение) и способна применять их к новым, невиданным ранее данным (низкий разброс).

Классической проблемой в машинном обучении (и не только) является дилемма смещения-разброса. Она говорит о том, что нельзя уменьшить дисперсию, не увеличивая смещение (и наоборот)

Теперь конкретнее про алгоритмы

Ансамбли строятся на основе «слабых» моделей — алгоритмов с невысокой предсказательной способностью. Такие модели бывают двух типов:

  1. Модели с высоким смещением (Bias) и низким разбросом. Они слишком просты и недообучаются. Пример: решающий пень (дерево с одним разделением).

  2. Модели с высоким разбросом (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). Его цель - последовательно уменьшать смещение всего ансамбля.

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

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

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

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

 L(y, ŷ) = L(y, h0(x) + ah1(x)) → min_{h1}

Здесь и кроется вся магия градиентного бустинга. Вместо того чтобы оптимизировать эту сложную функцию напрямую, алгоритм на каждом шаге обучает новое дерево предсказывать градиент функции потерь — то есть, 'направление' ошибки ансамбля. Говоря проще, каждое новое дерево учится исправлять самые грубые ошибки всей предыдущей композиции моделей. Глубокий разбор математики — это тема для отдельной статьи, но именно эта идея обучения на градиенте ошибки и дала название методу.

Заключение

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

Ваши отзывы помогут мне совершенствоваться и двигаться дальше!

Комментарии (3)