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,0dix0,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 eta
ou n_iterations
signifie.
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
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.
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'apprentissageAvec 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 source
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