Boosting: pourquoi le taux d'apprentissage est-il appelé paramètre de régularisation?

19

Le paramètre de taux d'apprentissage ( ) dans Gradient Boosting réduit la contribution de chaque nouveau modèle de base - généralement un arbre peu profond - qui est ajouté dans la série. Il s'est avéré augmenter considérablement la précision de l'ensemble de test, ce qui est compréhensible car avec des étapes plus petites, le minimum de la fonction de perte peut être atteint plus précisément. ν[0,1]

Je ne comprends pas pourquoi le taux d'apprentissage est considéré comme un paramètre de régularisation ? Citant les éléments de l'apprentissage statistique , section 10.12.1, p.364:

La maîtrise du nombre d'arbres n'est pas la seule stratégie de régularisation possible. Comme pour la régression de crête et les réseaux de neurones, des techniques de rétrécissement peuvent également être utilisées. Des valeurs plus petites de (retrait plus) entraînent un risque de formation plus grande pour le même nombre d'itérations . Ainsi, et contrôlent le risque de prédiction sur les données d'entraînement.M ν MνMνM

La régularisation signifie "moyen d'éviter le sur-ajustement", il est donc clair que le nombre d'itérations est crucial à cet égard (un trop élevé conduit à un sur-ajustement). Mais:MMM

Des valeurs plus petites de (retrait plus) entraînent un risque de formation plus grande pour le même nombre d'itérations .MνM

signifie simplement qu'avec de faibles taux d'apprentissage, plus d'itérations sont nécessaires pour atteindre la même précision sur l'ensemble d'entraînement. Alors, comment est-ce lié au sur-ajustement?

romuald_84
la source

Réponses:

23

Supposons que vous essayez de minimiser la fonction objectif via le nombre d'itérations. Et la valeur actuelle est . Dans un ensemble de données donné, il n'y a pas d'erreurs irréductibles et vous pouvez minimiser la perte à pour vos données d'entraînement. Vous avez maintenant deux façons de procéder.0,0100.00.0

  • La première est le «taux d'apprentissage élevé» et peu d'itérations. Supposons que vous pouvez réduire la perte de à chaque itération, puis, en itérations, vous pouvez réduire la perte à .10 0,010.0100.0

  • La deuxième façon serait un «rythme d'apprentissage lent» mais davantage d'itérations. Supposons que vous puissiez réduire la perte de à chaque itération et que vous ayez besoin de itérations pour avoir 0,0 perte sur vos données d'entraînement.1001.0100

Réfléchissez maintenant à ceci: les deux approches sont-elles égales? et sinon, quel est le meilleur dans un contexte d'optimisation et un contexte d'apprentissage automatique ?

Dans la littérature d'optimisation , les deux approches sont les mêmes. Comme ils convergent tous les deux vers une solution optimale . En revanche, dans le machine learning , ils ne sont pas égaux. Parce que dans la plupart des cas, nous ne réglons pas la perte d'entraînement à ce qui entraînera un sur-ajustement.0

Nous pouvons considérer la première approche comme une "recherche de grille de niveau grossier" et la deuxième approche comme une "recherche de grille de niveau fin". La deuxième approche fonctionne généralement mieux, mais a besoin de plus de puissance de calcul pour plus d'itérations.

Pour éviter un ajustement excessif, nous pouvons faire différentes choses, la première façon serait de limiter le nombre d'itérations, supposons que nous utilisons la première approche, nous limitons le nombre d'itérations à 5. À la fin, la perte de données d'entraînement est de . (BTW, ce serait très étrange du point de vue de l' optimisation , ce qui signifie que nous pouvons à l'avenir améliorer notre solution / elle n'est pas convergée, mais nous avons choisi de ne pas le faire. Dans l'optimisation, nous ajoutons généralement explicitement des contraintes ou des termes de pénalisation à la fonction objective, mais ne limite généralement pas le nombre d'itérations.)50

D'un autre côté, nous pouvons également utiliser la deuxième approche: si nous définissons un taux d'apprentissage faible, par exemple, réduisons la perte de pour chaque itération, bien que nous ayons un grand nombre d'itérations soit itérations, nous n'avons toujours pas minimisé la perte à .500 0,00.15000.0

C'est pourquoi un faible taux d'apprentissage équivaut en quelque sorte à «plus de régularisations».

Voici un exemple d'utilisation de différents taux d'apprentissage sur une donnée expérimentale utilisant xgboost. Veuillez vérifier les deux liens suivants pour voir ce que signifie etaou n_iterationssignifie.

Paramètres pour Tree Booster

Sur-ajustement du contrôle XGBoost

Pour le même nombre d'itérations, disons . Un petit taux d'apprentissage est «sous-ajusté» (ou le modèle a un «biais élevé»), et un grand taux d'apprentissage est «sur-ajusté» (ou le modèle a une «variance élevée»).50

Exemple de modification du taux d'apprentissage ETA dans le modèle XGBoost

PS. la preuve d'un sous-ajustement est que la formation et l'ensemble de tests ont une grande erreur, et la courbe d'erreur pour la formation et les tests est proche. Le signe d'un sur-ajustement est que l'erreur de l'ensemble d'entraînement est très faible et que l'ensemble de test est très élevé, deux courbes sont loin l'une de l'autre.

Haitao Du
la source
Voulez-vous dire qu'avec un faible taux d'apprentissage, vous êtes autorisé à répéter davantage (affiner davantage votre recherche) qu'avec un taux d'apprentissage élevé, pour la même perte? Je pense avoir l'intuition que vous essayez de transmettre, mais des explications plus rigoureuses et / ou un exemple illustratif ne feraient pas de mal.
Antoine
Merci. Pourriez-vous mettre à jour vos liens? Ils ne fonctionnent pas pour moi
Antoine
L'utilisation d'un taux d'apprentissage plus élevé est toujours préférable tant que vous n'augmentez pas l'erreur de formation dans les itérations suivantes. La régularisation à laquelle vous faites référence (biais vs variance) est liée à l'erreur de formation / validation et non au taux d'apprentissage. Que vous utilisiez un taux d'apprentissage grand ou petit, si vous atteignez une erreur d'entraînement de 0,0, vous surdimensionnez tout autant. Si vous utilisez un taux d'apprentissage plus élevé, vous devez arrêter votre optimisation plus tôt pour éviter le surapprentissage. Vous pouvez utiliser un ensemble de validation pour voir si votre erreur de validation augmente à quel moment vous arrêtez la formation.
Curieux
ou il me manque peut-être quelque chose :)
Curieux
This is why small learning rate is sort of equal to "more regularizations". Selon cet article, plus le taux d'apprentissage est élevé, plus la régularisation est grande: Super-Convergence: Formation très rapide des réseaux de neurones utilisant de grands taux d'apprentissage
Antoine
2

Avec la méthode de Newton, vous mettez à jour vos paramètres en soustrayant le gradient de la perte divisé par la courbure de la perte. Dans l'optimisation de la descente de gradient, vous mettez à jour vos paramètres en soustrayant le gradient de la perte multiplié par le taux d'apprentissage. En d'autres termes, l'inverse du taux d'apprentissage est utilisé à la place de la courbure de perte réelle.

Définissons la perte du problème comme étant la perte qui définit ce qui est un bon modèle par rapport à un mauvais. C'est la vraie perte. Définissons la perte optimisée comme étant réellement minimisée par vos règles de mise à jour.

Par définition, un paramètre de régularisation est tout terme qui se trouve dans la perte optimisée, mais pas la perte de problème. Étant donné que le taux d'apprentissage agit comme un terme quadratique supplémentaire dans la perte optimisée, mais n'a rien à voir avec la perte du problème, il s'agit d'un paramètre de régularisation.

D'autres exemples de régularisation qui justifient cette perspective sont:

  • La décroissance du poids, qui est comme un terme supplémentaire dans la perte optimisée qui pénalise les gros poids,
  • termes qui pénalisent les modèles compliqués, et
  • termes qui pénalisent les corrélations entre les caractéristiques.
Neil G
la source
- Je comprends pas In other words, the reciprocal of the learning rate is used in place of the real loss curvature. - Je ne suis pas un expert du domaine et il est la première fois que je vois la définition: a regularization parameter is any term that is in the optimized loss, but not the problem loss. Je ne comprends pas trop. Pourriez-vous s'il vous plaît fournir une référence pertinente? Merci d'avance
Antoine
@Antoine Je ne peux pas fournir de référence. C'est juste mon expérience que j'ai essayé de justifier en utilisant trois autres exemples. En ce qui concerne le taux d'apprentissage à la place de la courbure de perte inverse, vous pouvez voir que si vous écrivez côte à côte la méthode de Newton et les règles de mise à jour de la descente de gradient.
Neil G