Академический Документы
Профессиональный Документы
Культура Документы
Евгений Соколов
sokolov.evg@gmail.com
5 сентября 2016 г.
1 Градиентный бустинг
Вспомним, что на каждой итерации градиентного бустинга вычисляется вектор
сдвигов s, который показывает, как нужно скорректировать ответы композиции на
обучающей выборке, чтобы как можно сильнее уменьшить ошибку:
!ℓ ℓ
∂L X
s= − = −∇s L(yi , aN −1 (xi ) + si )
∂z z=aN−1 (xi ) i=1
i=1
Также можно вычислять шаг с помощью методов второго порядка. В этом случае
задача поиска базового алгоритма примет вид
ℓ 2
X si
bN (x) = arg min b(xi ) − , (1.1)
b∈A
i=1
hi
1
2
2 Регуляризация
Будем далее работать с функционалом (1.2). Он измеряет лишь ошибку ком-
позиции после добавления нового алгоритма, никак при этом не штрафуя за излиш-
нюю сложность модели. Ранее мы решали проблему переобучения путем ограниче-
ния глубины деревьев, можно подойти к вопросу и более гибко. Мы выясняли, что
3
1. Число листьев J. Чем больше листьев имеет дерево, тем сложнее его разделяю-
щая поверхность, тем больше у него параметров и тем выше риск переобучения.
P
2. Норма коэффициентов в листьях kbk2 = Jj=1 b2j . Чем сильнее коэффициенты
отличаются от нуля, тем сильнее данный базовый алгоритм будет влиять на
итоговый ответ композиции.
Если вспомнить, что дерево b(x) дает одинаковые ответы на объектах, попадающих
в один лист, то можно упростить функционал:
J
( ! ! )
X X 1 X
− si bj + µ+ hi b2j + λ
j=1 i∈Rj
2 i∈Rj
| {z } | {z }
=−Sj =Hj
является наилучшим! Значит, с его помощью мы можем строить дерево. Будем вы-
бирать разбиение так, чтобы оно решало следующую задачу максимизации:
За счет этого мы будем выбирать структуру дерева так, чтобы оно как можно лучше
решало задачу минимизации исходной функции потерь. При этом введем вполне
логичный критерий останова: вершину нужно объявить листом, если даже лучшее
из разбиений приводит к отрицательному значению функционала Q.
4 Заключение
Итак, градиентный бустинг в XGBoost имеет ряд важных особенностей.
Список литературы
[1] Tianqi Chen, Carlos Guestrin (2016). XGBoost: A Scalable Tree Boosting System. //
http://arxiv.org/abs/1603.02754