Amplification de gradient (unité facultative)

Dans les problèmes de régression, il est logique de définir l'erreur signée comme la différence entre la prédiction et l'étiquette. Toutefois, dans d'autres types de problèmes, cette stratégie donne souvent de mauvais résultats. Voici une meilleure stratégie à utiliser pour l'optimisation de gradient:

  • Définissez une fonction de perte semblable aux fonctions de perte utilisées dans les réseaux de neurones. Par exemple, l'entropie (également appelée perte logistique) pour un problème de classification.
  • Entraînez le modèle faible à prédire le gradient de la perte en fonction des résultats obtenus par le modèle fort.

Officiellement, avec une fonction de perte $L(y,p)$ où $y$ est une étiquette et $p$ une prédiction, la pseudo-réponse $z_i$ utilisée pour entraîner le modèle faible à l'étape $i$ est la suivante:

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

où :

  • $F_i$ est la prédiction du modèle fort.

L'exemple précédent était un problème de régression: l'objectif est de prédire une valeur numérique. Dans le cas de la régression, l'erreur quadratique est une fonction de perte courante:

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

Dans ce cas, le dégradé est:

$$ 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 d'autres termes, le gradient représente l'erreur signée de notre exemple avec un facteur de 2. Notez que les facteurs constants n'ont pas d'importance en raison de la réduction. Notez que cette équivalence n'est vraie que pour les problèmes de régression avec perte quadratique de l'erreur. Pour les autres problèmes d'apprentissage supervisé (classification, classement, régression avec perte de centile), il n'y a pas d'équivalence entre le gradient et une erreur signée.

Optimisation des feuilles et des structures avec la méthode de Newton

La méthode de Newton est une méthode d'optimisation similaire à la descente de gradient. Toutefois, contrairement à la descente de gradient qui n'utilise que le gradient de la fonction à des fins d'optimisation, la méthode de Newton utilise à la fois le gradient (première dérivée) et la seconde dérivée de la fonction à des fins d'optimisation.

Voici une étape de descente de gradient:

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

et la méthode de Newton comme suit:

$$ 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)}$$

La méthode de Newton peut éventuellement être intégrée à l'entraînement des arbres de décision à boosting de gradient de deux manières:

  1. Une fois qu'une arborescence est entraînée, une étape de Newton est appliquée à chaque feuille et remplace sa valeur. L'arborescence n'est pas modifiée. Seules les valeurs des feuilles sont modifiées.
  2. Pendant la croissance d'un arbre, les conditions sont sélectionnées en fonction d'un score qui inclut un composant de la formule de Newton. La structure de l'arbre est affectée.
Code YDF
Dans YDF :
  • YDF applique toujours une étape Newton sur la feuille (option 1).
  • Vous pouvez activer l'option 2 avec use_hessian_gain=True.