Skip to content

Commit f69bec6

Browse files
feat: Describe second-order methods in GBDT
1 parent 22626eb commit f69bec6

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

notes/machine_learning/miscellaneous.ipynb

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,7 @@
527527
"\n",
528528
"Кстати, тут стоит обратить внимание на то, что в задаче классификации градиентный бустинг над деревьями использует регрессионные деревья, а не классификационные. Вся связь с исходной классификационной задачей осуществляется только через функцию активации $f$.\n",
529529
"\n",
530-
"#### Обучение\n",
530+
"#### Простой вариант обучения\n",
531531
"\n",
532532
"Пусть $L: \\mathbb{R}^2 \\to \\mathbb{R}$ — дифференцируемая (а лучше дважды дифференцируемая) функция потерь, а $l$ — количество объектов в обучающей выборке. Тогда первая базовая модель $b_1$ обучается решать следующую задачу:\n",
533533
"$$\\min_{b_1} \\sum_{i=1}^l L(y_i, \\hat{y}_i^{(1)}).$$\n",
@@ -541,7 +541,30 @@
541541
"\n",
542542
"При обучении $b_t$ для оценки разбиения в узле можно использовать как MSE, так и косинусную меру близости между вектором предсказаний, составленным из $b_t(x_i)$, и вектором целевых переменных, составленным из $-g_i^{(t)}$. Второй вариант побуждает обучаться только на направление, но не на масштаб.\n",
543543
"\n",
544-
"#### Методы второго порядка\n",
544+
"#### Усовершенствованный вариант обучения\n",
545+
"\n",
546+
"Вместо градиентного спуска можно задействовать метод Ньютона.\n",
547+
"\n",
548+
"Для рассматриваемого эмпирического риска гессиан (матрица вторых частных производных) является диагональным, потому что в эмпирическом риске нет слагаемых, зависящих от предсказаний на двух или более объектах. Для диагональных элементов гессиана введём следующие обозначения:\n",
549+
"$$h_i^{(t)} = \\left. \\frac{\\partial^2 L(y_i, \\hat{y}_i^{(t)})}{\\partial {b_t(x_i)}^2} \\right|_{\\hat{y}_i^{(t)} = \\hat{y}_i^{(t-1)}}.$$\n",
550+
"\n",
551+
"Тогда разложение эмпирического риска как функции от $b_t(x_i)$ в ряд Тейлора в точке 0 (с заданными $\\hat{y}_i^{(t-1)}$) с обрезкой до производных второго порядка имеет вид:\n",
552+
"$$\\sum_{i=1}^l \\left(L(y_i, \\hat{y}_i^{(t-1)}) + g_i^{(t)} b_t(x_i) + \\frac{1}{2} h_i^{(t)}{b_t}^2(x_i)\\right).$$\n",
553+
"\n",
554+
"Относительно каждого отдельного предсказания $b_t(x_i)$ это выражение является параболой с вершиной в точке $-g_i^{(t)} / h_i^{(t)}$. На основании этого можно бы было заключить, что дерево $b_t$ должно обучаться предсказывать такую целевую переменную. Но из-за небольшой глубины $b_t$ некорректно рассматривать все $b_t(x_i)$ как независимые величины, ведь количество объектов $l$ на порядки больше количества листьев у дерева $b_t$.\n",
555+
"\n",
556+
"Предположим, что дерево $b_t$ как-то построено и у него $m$ листьев. Обозначим за $I_j \\subset \\{1, \\dots, l\\}$, $1 \\le j \\le m$, множество индексов всех тех объектов, которые дерево $b_t$ приводит в $j$-й лист, а за $w_j$ обозначим предсказание в $j$-м листе. Теперь можно перепараметризовать эмпирический риск так, чтобы он был выражен через величины $w_j$, которые можно подбирать независимо друг от друга:\n",
557+
"$$\\sum_{j=1}^m \\left(\\left(\\sum_{i \\in I_j} L(y_i, \\hat{y}_i^{(t-1)})\\right) + \\left(\\sum_{i \\in I_j} g_i^{(t)}\\right) w_j + \\frac{1}{2} \\left(\\sum_{i \\in I_j} h_i^{(t)}\\right) {w_j}^2 \\right).$$\n",
558+
"\n",
559+
"Перед нами снова парабола относительно каждого из $w_j$, а её вершина находится в следующей точке:\n",
560+
"$$w_j^* = -\\frac{\\sum_{i \\in I_j} g_i^{(t)}}{\\sum_{i \\in I_j} h_i^{(t)}}.$$\n",
561+
"Если подставить такие значения $w_j$, то получим, что оптимальное значение эмпирического риска с точностью до константы, не зависящей ни от каких $w_j$, равно:\n",
562+
"$$-\\frac{1}{2} \\sum_{j=1}^m \\frac{\\left(\\sum_{i \\in I_j} g_i^{(t)}\\right)^2}{\\sum_{i \\in I_j} h_i^{(t)}}.$$\n",
563+
"\n",
564+
"Знание, чему равен оптимальный эмпирический риск, позволяет найти функцию для оценки качества разбиения. Пусть $I$ — множество индексов объектов, пришедших в узел, разбиение в котором оценивается, а $I_\\mathrm{left}$ и $I_\\mathrm{right}$ — множество индексов объектов, попавших в его левый или правый узел-потомок соответственно. Качество такого разбиения равно:\n",
565+
"$$\\frac{1}{2}\\left( \\frac{\\left(\\sum_{i \\in I} g_i^{(t)}\\right)^2}{\\sum_{i \\in I} h_i^{(t)}} - \\frac{\\left(\\sum_{i \\in I_\\mathrm{left}} g_i^{(t)}\\right)^2}{\\sum_{i \\in I_\\mathrm{left}} h_i^{(t)}} - \\frac{\\left(\\sum_{i \\in I_\\mathrm{right}} g_i^{(t)}\\right)^2}{\\sum_{i \\in I_\\mathrm{right}} h_i^{(t)}} \\right).$$\n",
566+
"\n",
567+
"По такому критерию качества можно построить дерево $b_t$, не задумываясь о том, какую целевую переменную оно предсказывает и как интерпретируются его предсказания. Единственное, что про такое дерево известно, — что оно пытается воспроизвести шаг в методе Ньютона.\n",
545568
"\n",
546569
"#### Регуляризация\n",
547570
"\n",

0 commit comments

Comments
 (0)