Интуитивное объяснение GBT с использованием базы данных MNIST

Всем привет! Добро пожаловать в еще одну статью из серии "Наглядное руководство по машинному обучению"! Мы изучим еще один популярный метод объединения моделей под названием Деревья с усилением градиента. Если вы еще этого не сделали, ознакомьтесь с предыдущей статьей, чтобы узнать о случайных лесах, где мы представляем концепцию ансамбля моделей и деревьев решений, строительных блоков этих моделей. Посмотрите видео ниже, чтобы получить 4-минутное пошаговое руководство по этой статье, а также ссылки на предыдущие видео из этой серии!

Мы будем использовать деревья с градиентным усилением для классификации, в частности, для определения числа, нарисованного на изображении. Мы будем использовать MNIST, большую базу данных рукописных изображений, обычно используемых при обработке изображений. Он содержит 60 000 обучающих изображений и 10 000 тестовых изображений. Каждый пиксель - это особенность, и существует 10 возможных классов.

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

Первый шаг - подогнать под единое дерево решений. В нашем случае дерево выглядит так:

Мы оценим, насколько хорошо это дерево работает, используя функцию потерь. Мы можем выбирать из множества различных функций потерь. Для мультиклассовой классификации популярным выбором является перекрестная энтропия. Вот уравнение перекрестной энтропии, где p - метка, а q - прогноз.

Как правило, потери велики, когда ярлык и прогноз не совпадают, и потери равны 0, когда они полностью совпадают.

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

Имейте в виду, мы пытаемся двигаться в направлении снижения потерь. Находим направление, в котором убыток уменьшается быстрее всего.

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

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

Поэтому мы подгоняем второго слабого ученика к производной функции потерь по F (1) или ансамблю на шаге 1. Это не что иное, как градиент функции потерь по отношению к выходу предыдущей модели. Вот почему этот метод называется Gradient Boosting.

Для любого шага «m» деревья с усиленным градиентом создают такую ​​модель, которая:

По сравнению со случайными лесами, деревья с градиентным усилением обладают большой емкостью модели, поэтому они могут моделировать очень сложные границы решений и отношения. Однако, как и в случае со всеми моделями с высокой вместимостью, это может очень быстро привести к переоснащению. Так что будь осторожен!

Мы подобрали модель Gradient Boosted Trees с использованием библиотеки xgboost в MNIST с 330 слабыми учениками и достигли точности 89%. Попробуйте сами, используя эту колаб-ссылку, и поделитесь с нами своими мыслями! Подпишитесь на Econoscent на YouTube, чтобы получить полную серию визуальных руководств по машинному обучению и многое другое!