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.