Градиентный бустинг изнутри
Вопрос
Объясните, почему бустинг называется градиентным и что именно аппроксимирует каждое новое дерево. Как в XGBoost используются вторые производные?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Бустинг это градиентный спуск в пространстве функций
Дерево аппроксимирует антиградиент потерь по предсказаниям (псевдоостатки)
Для MSE это остатки, для log loss p - y со знаком минус
XGBoost: разложение Тейлора второго порядка, значение листа -G/(H + λ)
Shrinkage, регуляризация листьев и subsampling как защита от переобучения
Что могут спросить следом
- Как формула gain для разбиения следует из этого разложения?
- Зачем вторая производная, если есть первая?
Разбор
Представим, что мы оптимизируем функцию потерь не по весам, а по самим предсказаниям F(xᵢ) на обучающих объектах. Градиентный спуск сказал бы сдвинуть каждое предсказание против градиента ∂L/∂F(xᵢ). Но нам нужна функция, работающая и на новых x, поэтому мы обучаем дерево аппроксимировать этот антиградиент, псевдоостатки, и добавляем его к ансамблю с шагом η. Для MSE псевдоостатки это обычные остатки y - F, для log loss это y - p. XGBoost делает шаг точнее, используя разложение Тейлора второго порядка: для каждого листа суммирует градиенты G и вторые производные H по его объектам, оптимальное значение листа -G/(H + λ), а прирост от разбиения считается через G²/(H + λ) для детей и родителя минус штраф за лист γ. Вторая производная учитывает кривизну потерь, это как шаг Ньютона, и делает обновление адаптивным к уверенности. От переобучения защищают shrinkage, ограничения глубины, λ и γ, subsampling строк и колонок.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.