Перейти к основному содержимому

Градиентный бустинг второго порядка

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

Рассмотрим для объекта (x,y)(\mathbf{x},y) функцию потерь L(x,y)\mathcal{L}(\mathbf{x},y) и введём обозначения для её первой и второй производной по значению прогноза:

g(x)=L(G(x),y)Gh(x)=2L(G(x),y)G2\begin{align*} g(\mathbf{x}) &= \frac{\partial\mathcal{L}(G(\mathbf{x}),y)}{\partial G} \\ h(\mathbf{x}) &= \frac{\partial^{2}\mathcal{L}(G(\mathbf{x}),y)}{\partial G^{2}} \end{align*}

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

L(G(x)+f(x),y)L(G(x),y)+g(x)f(x)+12h(x)(f(x))2=12h(x)(f(x)+g(x)h(x))2+const(f(x))\begin{gathered}\mathcal{L}(G(\mathbf{x})+f(\mathbf{x}),\,y)\approx\mathcal{L}(G(\mathbf{x}),y)+g(\mathbf{x})f(\mathbf{x})+\frac{1}{2}h(\mathbf{x})\left(f(\mathbf{x})\right)^{2}=\\ \frac{1}{2}h(\mathbf{x})\left(f(\mathbf{x})+\frac{g(\mathbf{x})}{h(\mathbf{x})}\right)^{2}+const(f(\mathbf{x})) \end{gathered}

где const(f(x))const(f(\mathbf{x})) обозначает некоторое выражение, не зависящее от базовой модели f(x)f(\mathbf{x}), по которой нам необходимо производить минимизацию.

Отсюда заключаем, что для минимизации функции потерь для объекта x\mathbf{x}, базовая модель f(x)f(\mathbf{x}) должна приближать g(x)/h(x)-g(\mathbf{x})/h(\mathbf{x}) с весом h(x)h(\mathbf{x}). То есть должна настраиваться на следующей обучающей выборке:

{xn,g(xn)/h(xn)}n=1N\{ \mathbf{x}_n, -g(\mathbf{x}_{n})/h(\mathbf{x}_{n}) \}_{n=1}^N

с соответствующими весами {h(xn)}n=1N\{h(\mathbf{x}_{n})\}_{n=1}^N, которые будут неотрицательны в окрестности локального минимума.