Aujourd'hui, parlons de la façon dont les gens résolvent le problème de la surapprentissage dans l'apprentissage en profondeur quotidien.
Tout le monde doit savoir qu'un biais élevé correspond à un sous-ajustement, et une variance élevée correspond à un sur-ajustement.
Ensuite, nous allons résoudre le problème du surajustement
1.Régularisation (régularisation)
Passons d'abord en revue la régularisation L2 introduite dans la régression logistique, son expression est:
Il existe également une méthode de régularisation L1, l'expression est:
Par rapport à la régularisation L2, les w obtenus par régularisation L1 sont plus clairsemés, c'est-à-dire que beaucoup de w valent zéro. Son avantage est d'économiser de l'espace de stockage, car la plupart de w vaut 0. Cependant, en fait, la régularisation L1 n'est pas plus avantageuse que la régularisation L2 pour résoudre une variance élevée. De plus, L1 est plus compliqué en termes de différenciation. Par conséquent, la régularisation L2 est généralement plus couramment utilisée.
Dans le modèle d'apprentissage en profondeur, l'expression de la
régularisation L2 est: La régularisation L2 est également appelée décroissance du poids. En effet, en raison de l'ajout du terme régulier, dw [l] a un incrément. Lors de la mise à jour de w [l], cet incrément sera soustrait, rendant w [l] plus petit que la valeur sans le terme régulier. Continuez à itérer et à mettre à jour, et continuez à réduire.
Régularisation 2.Dropout
En plus de la régularisation L2, il existe une autre méthode efficace pour éviter le sur-ajustement: la régularisation de l'abandon (régularisation des pertes).
L'abandon signifie que pendant le processus d'apprentissage du réseau d'apprentissage profond, les neurones de chaque couche sont temporairement supprimés du réseau selon une certaine probabilité. En d'autres termes, lors de chaque entraînement, certains neurones de chaque couche ne fonctionnent pas, ce qui peut simplifier le modèle de réseau complexe et éviter le surajustement.
Pour m échantillons, en une seule itération d'apprentissage, un certain nombre de neurones de la couche cachée sont supprimés aléatoirement; puis, le poids w et le terme constant b sont mis à jour en avant et en arrière sur les neurones restants après la suppression; puis, In une itération, les neurones précédemment supprimés sont restaurés, un certain nombre de neurones sont à nouveau supprimés aléatoirement, et w et b sont mis à jour dans le sens direct et inverse. Continuez à répéter le processus ci-dessus jusqu'à ce que la formation itérative soit terminée.
Il est à noter qu'après l'utilisation de l'entraînement à l'abandon, lors du test et de l'application effective du modèle, il n'est pas nécessaire d'effectuer un abandon et de supprimer au hasard des neurones.Tous les neurones fonctionnent.
Pour résumer, pour le même ensemble de données d'entraînement, après avoir utilisé un entraînement de réseau neuronal différent, trouver la moyenne de sa sortie peut réduire le surajustement. Dropout utilise ce principe pour déposer à chaque fois un certain nombre de neurones de la couche cachée, ce qui équivaut à un entraînement sur différents réseaux de neurones. Cela réduit la dépendance entre neurones, c'est-à-dire que chaque neurone ne peut pas dépendre d'un certain nombre de neurones. Les autres neurones (faisant référence aux neurones connectés entre les couches) permettent au réseau de neurones d'apprendre des fonctionnalités plus robustes avec d'autres neurones.
Lors de l'utilisation du décrochage, il y a plusieurs points à noter. Premièrement, le coefficient de décrochage keep_prob des différentes couches cachées peut être différent. De manière générale, plus les couches cachées avec des neurones, keep_out peuvent être définies plus petites, telles que 0,5; les couches cachées avec moins de neurones, keep_out peuvent être définies plus grandes, telles que 0,8, définies sur 1. En outre, dans les applications réelles, il n'est pas recommandé d'effectuer une suppression sur la couche d'entrée. Si la couche d'entrée a une grande dimension, telle qu'une image, vous pouvez définir une suppression, mais keep_out doit être défini sur une valeur plus grande, telle que 0,8 ou 0,9. . De manière générale, plus la couche cachée de surajustement est susceptible d'apparaître, plus le keep_prob est petit. Il n'y a pas d'approche précise et fixe, et vous pouvez généralement choisir en fonction de la validation.
Le décrochage est largement utilisé dans le domaine de la vision par ordinateur CV car la couche d'entrée a une grande dimension et ne contient pas suffisamment d'échantillons. Il est à noter que l'abandon est une technique de régularisation pour éviter le surajustement. Il est préférable de n'utiliser l'abandon que lorsque la régularisation est nécessaire.
Lorsque vous utilisez la suppression, vous pouvez déboguer en dessinant la fonction de coût pour voir si la suppression est exécutée correctement. L'approche générale consiste à définir keep_prob de toutes les couches à 1, puis à dessiner la fonction de coût, c'est-à-dire à couvrir tous les neurones, et à voir si J tombe de manière monotone. Dans l'itération suivante de la formation, définissez keep_prob sur une autre valeur.
3.Autres méthodes de régularisation
En plus de la régularisation de L2 et de la régularisation de l'abandon, il existe d'autres moyens de réduire le surajustement.
Une façon consiste à augmenter le nombre d'échantillons d'apprentissage. Cependant, le coût est généralement élevé et il est difficile d'obtenir des échantillons d'apprentissage supplémentaires. Cependant, nous pouvons effectuer un certain traitement sur les échantillons d'apprentissage existants pour «fabriquer» plus d'échantillons, ce que l'on appelle l'augmentation des données. Par exemple, dans le problème de la reconnaissance d'image, les images existantes peuvent être retournées horizontalement, verticalement, pivotées à n'importe quel angle, agrandies ou agrandies, etc. Comme le montre la figure ci-dessous, ces processus peuvent "créer" de nouveaux échantillons d'apprentissage. Bien que ceux-ci soient basés sur les échantillons originaux, il est toujours très utile d'augmenter le nombre d'échantillons de formation. Aucun coût supplémentaire n'est nécessaire, mais cela peut éviter le surajustement.
En reconnaissance numérique, vous pouvez également faire pivoter ou déformer l'image numérique d'origine de manière arbitraire, ou ajouter du bruit, comme illustré dans la figure suivante:
Il existe une autre méthode pour éviter le sur-ajustement: l'arrêt prématuré. Au fur et à mesure que le nombre d'apprentissage itératif augmente pour un modèle de réseau neuronal, l'erreur d'ensemble de trains diminue généralement de manière monotone, tandis que l'erreur d'ensemble de développement diminue d'abord puis augmente. C'est-à-dire que lorsqu'il y a trop de temps d'entraînement, le modèle s'adapte de mieux en mieux aux échantillons d'apprentissage, mais l'effet d'ajustement sur l'ensemble de validation s'aggrave progressivement, c'est-à-dire qu'un surajustement se produit. Par conséquent, le nombre d'apprentissage itératif n'est pas aussi élevé que possible, et le nombre approprié d'itérations peut être sélectionné via une erreur de jeu de train et une erreur de jeu de développement lorsque le nombre d'itérations change, c'est-à-dire un arrêt prématuré.
Cependant, l'arrêt prématuré a ses propres inconvénients. De manière générale, les modèles de formation au machine learning ont deux objectifs: l'un est d'optimiser la fonction de coût et de minimiser J; l'autre est d'éviter le surajustement. Ces deux objectifs sont opposés, c'est-à-dire que la réduction de J peut entraîner un surajustement, et vice versa. Nous appelons la relation entre ces deux orthogonalisations. Comme mentionné au début de cette leçon, dans l'apprentissage en profondeur, nous pouvons réduire le biais et la variance en même temps pour créer le meilleur modèle de réseau neuronal. Cependant, la pratique de l'arrêt anticipé évite le surapprentissage en réduisant le nombre de formations afin que J ne soit pas assez petit. En d'autres termes, l'arrêt précoce combine les deux objectifs ci-dessus et optimise en même temps, mais il peut ne pas avoir pour effet de «diviser pour vaincre».
Par rapport à l'arrêt prématuré, la régularisation L2 peut produire l'effet de «diviser pour vaincre»: un entraînement itératif suffisant peut réduire J, et il peut également empêcher efficacement le surajustement. L'un des inconvénients de la régularisation L2 est que le choix du paramètre de régularisation optimal λ est plus compliqué. À ce stade, l'arrêt prématuré est relativement simple. En général, la régularisation L2 est plus couramment utilisée.