Повышение градиента (дополнительный модуль)

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

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

Формально, учитывая функцию потерь L(y,p), где y — метка, а p — предсказание, псевдоответ zi, используемый для обучения слабой модели на этапе i, имеет следующий вид:

zi=L(y,Fi)Fi

где:

  • Fi — предсказание сильной модели.

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

L(y,p)=(yp)2

В данном случае градиент равен:

z=L(y,Fi)Fi=(yp)2p=2(yp)=2 signed error

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

Оптимизация листов и структур с помощью шага метода Ньютона

Метод Ньютона — это метод оптимизации, подобный градиентному спуску. Однако, в отличие от градиентного спуска, который использует для оптимизации только градиент функции, метод Ньютона использует для оптимизации как градиент (первую производную), так и вторую производную функции.

Шаг градиентного спуска выглядит следующим образом:

xi+1=xidfdx(xi)=xif(xi)

и метод Ньютона следующим образом:

xi+1=xidfdx(xi)d2fd2x(xi)=xif(xi)f(xi)

При желании метод Ньютона можно интегрировать в обучение деревьев с градиентным усилением двумя способами:

  1. После обучения дерева шаг Ньютона применяется к каждому листу и переопределяет его значение. Древовидная структура нетронута; изменяются только значения листьев.
  2. В процессе роста дерева условия выбираются по баллу, включающему компонент формулы Ньютона. Нарушается структура дерева.
Код YDF
В ЯДФ:
  • YDF всегда применяет шаг Ньютона к листу (вариант 1).
  • Вы можете включить опцию 2 с помощью use_hessian_gain=True .