Potenciación del gradiente (unidad opcional)

En los problemas de regresión, tiene sentido definir el error firmado como la diferencia entre la predicción y la etiqueta. Sin embargo, en otros tipos de problemas, esta estrategia suele generar resultados deficientes. Una mejor estrategia en el boosting de gradientes es la siguiente:

  • Definir una función de pérdida similar a las funciones de pérdida que se usan en las redes neuronales Por ejemplo, la entropía (también conocida como pérdida logística) para un problema de clasificación.
  • Entrena el modelo débil para predecir el gradiente de la pérdida de acuerdo con el resultado sólido del modelo.

De manera formal, dada una función de pérdida $L(y,p)$ en la que $y$ es una etiqueta y $p$ una predicción, la seudorespuesta $z_i$ que se usa para entrenar el modelo débil en el paso $i$ es:

$$ z_i = \frac {\partial L(y, F_i)} {\partial F_i} $$

Donde:

  • $F_i$ es la predicción del modelo sólido.

El ejemplo anterior fue un problema de regresión: el objetivo es predecir un valor numérico. En el caso de la regresión, el error cuadrático es una función de pérdida común:

$$ L(y,p) = (y - p)^2 $$

En este caso, el gradiente es el siguiente:

$$ z = \frac {\partial L(y, F_i)} {\partial F_i} = \frac {\partial(y-p)^2} {\partial p} = 2(y - p) = 2 \ \text{signed error} $$

En orden, el gradiente es el error firmado de nuestro ejemplo con un factor de 2. Ten en cuenta que los factores constantes no importan debido a la reducción. Ten en cuenta que esta equivalencia solo es verdadera para problemas de regresión con pérdida de error cuadrático. Para otros problemas de aprendizaje supervisado (por ejemplo, clasificación, clasificación, regresión con pérdida de percentil), no hay equivalencia entre el gradiente y un error con signo.

Optimización de la hoja y la estructura con el paso del método de Newton

El método de Newton es un método de optimización como el descenso de gradientes. Sin embargo, a diferencia del descenso de gradientes que solo usa la gradiente de la función para optimizar, el método de Newton usa tanto la gradiente (primera derivada) como la segunda derivada de la función para la optimización.

El paso de descenso de gradientes es el siguiente:

$$ x_{i+1} = x_i - \frac {df}{dx}(x_i) = x_i - f'(x_i) $$

y el método de Newton de la siguiente manera:

$$ x_{i+1} = x_i - \frac {\frac {df}{dx} (x_i)} {\frac {d^2f}{d^2x} (x_i)} = x_i - \frac{f'(x_i)}{f''(x_i)}$$

Opcionalmente, el método de Newton se puede integrar al entrenamiento de árboles con gradiente aumentado de dos maneras:

  1. Una vez que se entrena un árbol, se aplica un paso de Newton en cada hoja y se anula su valor. La estructura de árbol no se modifica; solo cambian los valores de la hoja.
  2. Durante el crecimiento de un árbol, las condiciones se seleccionan de acuerdo con una puntuación que incluye un componente de la fórmula de Newton. La estructura del árbol se ve afectada.
Código YDF
En YDF:
  • YDF siempre aplica un paso de Newton en la hoja (opción 1).
  • Puedes habilitar la opción 2 con use_hessian_gain=True.