AI Вся суть ансамблей на примере Случайного Леса и Градиентного Бустинга

AI

Редактор
Регистрация
23 Август 2023
Сообщения
3 048
Лучшие ответы
0
Реакции
0
Баллы
51
Offline
#1
Введение


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

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


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

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

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

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


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



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

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

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

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

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



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

Заключение


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

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