J'entraîne un réseau de neurones et la perte d'apprentissage diminue, mais la perte de validation ne diminue pas, ou elle diminue beaucoup moins que ce à quoi je m'attendais, selon des références ou des expériences avec des architectures et des données très similaires. Comment puis-je réparer cela?
Comme question
Que dois-je faire lorsque mon réseau de neurones n'apprend pas?
à laquelle cette question est inspirée, la question est intentionnellement laissée générale, de sorte que d'autres questions sur la manière de réduire l'erreur de généralisation d'un réseau de neurones à un niveau qui s'est avéré réalisable puissent être fermées comme des doublons de celui-ci.
Voir aussi le fil dédié sur Meta:
neural-networks
deep-learning
DeltaIV
la source
la source
Réponses:
Tout d’abord, mentionnons ce que signifie "mon réseau de neurones ne se généralise pas bien" et quelle est la différence avec le fait de dire "mon réseau de neurones ne fonctionne pas bien" .
Lors de la formation d’un réseau de neurones, vous l’évaluez constamment sur un ensemble de données étiquetées appelé ensemble de formation . Si votre modèle ne fonctionne pas correctement et ne semble pas tirer profit de l'ensemble de formation, vous ne rencontrez pas encore de problème de généralisation. Veuillez plutôt vous reporter à cet article . Toutefois, si votre modèle réalise une performance satisfaisante sur l'ensemble de la formation, mais ne peut pas fonctionner correctement sur les données précédemment invisibles (par exemple , validation / jeux de tests), alors vous faire un problème de généralisation.
Pourquoi votre modèle ne se généralise-t-il pas correctement?
La partie la plus importante consiste à comprendre pourquoi votre réseau ne se généralise pas bien. Les modèles d'apprentissage automatique à haute capacité ont la capacité de mémoriser l'ensemble d'apprentissage, ce qui peut entraîner un surajustement .
Le surapprentissage est l’état où un estimateur a commencé à apprendre le jeu d’entraînement si bien qu'il a commencé à modéliser le bruit dans les échantillons d’apprentissage (en plus de toutes les relations utiles).
Par exemple, dans l'image ci-dessous, nous pouvons voir comment la ligne bleue a clairement surajusté.
Mais pourquoi est-ce mauvais?
Lorsque nous essayons d'évaluer notre modèle sur de nouvelles données inédites (c.-à-d. Un ensemble de validation / test), les performances du modèle seront bien inférieures à nos attentes.
Comment prévenir l'overfitting?
Au début de l'article, j'ai laissé entendre que c'est la complexité de votre modèle qui est à l'origine du surajustement, car elle permet au modèle d'extraire des relations inutiles de l'ensemble de formation, ce qui permet de cartographier son bruit inhérent. Le moyen le plus simple de réduire les surajustements consiste essentiellement à limiter la capacité de votre modèle. Ces techniques sont appelées techniques de régularisation .
Paramètre norme pénalités . Ceux-ci ajoutent un terme supplémentaire à la fonction de mise à jour du poids de chaque modèle, qui dépend de la norme des paramètres. Le but de ce terme est de contrer la mise à jour réelle (c.-à-d. Limiter combien de poids chaque poids peut être mis à jour). Cela rend les modèles plus robustes aux aberrations et au bruit. Des exemples de telles régularisations sont les régularisations L1 et L2 , que l’on trouve sur les régresseurs Lasso , Ridge et Elastic Net .
Étant donné que chaque couche (entièrement connectée) d’un réseau neuronal fonctionne d’une manière très similaire à une simple régression linéaire, elle est utilisée dans les réseaux neuronaux. L'utilisation la plus courante consiste à régulariser chaque couche individuellement.
mise en œuvre des keras .
Arrêter tôt . Cette technique tente d’arrêter prématurément la phase de formation d’un estimateur, au moment où il a appris à extraire toutes les relations significatives des données, avant de commencer à modéliser son bruit. Pour ce faire, surveillez la perte de validation (ou une métrique de validation de votre choix) et terminez la phase d'apprentissage lorsque cette métrique cesse de s'améliorer . De cette façon, nous donnons à l'estimateur suffisamment de temps pour apprendre les informations utiles mais pas assez pour tirer des leçons du bruit.
mise en œuvre des keras .
mise en œuvre des keras
En plus de limiter la capacité du modèle, un autre moyen de prévenir les surajustements consiste à améliorer la qualité de vos données. Le choix le plus évident serait l’ élimination des aberrations / du bruit , mais dans la pratique, leur utilité est limitée. L' augmentation des données est un moyen plus courant (en particulier dans les tâches liées aux images) . Ici, nous essayons de transformer les exemples d’apprentissage de manière aléatoire de telle sorte que, s’ils semblent différents pour le modèle, ils transmettent les mêmes informations sémantiques (par exemple, le retournement d’images de gauche à droite).
Vue d'ensemble de l'augmentation des données
Suggestions pratiques:
mise en œuvre des keras
Une autre utilisation du concept similaire est la suivante: si votre tâche ne contient pas beaucoup de données, mais que vous pouvez en trouver une autre, vous pouvez utiliser le transfert de l'apprentissage pour réduire le surajustement. Tout d’abord, entraînez votre réseau à la tâche qui contient le plus grand ensemble de données, puis essayez d’ affiner le réglage.le modèle à celui que vous vouliez initialement. La formation initiale rendra, dans la plupart des cas, votre modèle plus résistant à la suralimentation.
En bref, veillez à ne pas produire d’ images non réalistes en augmentant les données. De plus, une taille de jeu de données accrue nécessitera un temps de formation plus long. Personnellement, je commence à envisager l’augmentation des données lorsque je vois que mon modèle atteint presque
la source
De nombreuses preuves empiriques montrent que des réseaux de neurones suffisamment profonds peuvent mémoriser des étiquettes aléatoires sur de vastes ensembles de données (Chiyuan Zhang, Samy Bengio, Moritz Hardt, Benjamin Recht, Oriol Vinyals, «Pour comprendre l'apprentissage en profondeur, il faut repenser la généralisation». Ainsi, en principe, en obtenant un NN assez grand, nous pouvons toujours réduire l’ erreur d’entraînement à des valeurs extrêmement petites, limitées en pratique par la précision numérique, même si la tâche n’a pas de sens.
Les choses sont assez différentes pour l' erreur de généralisation . Nous ne pouvons pas être sûrs que pour chaque problème d'apprentissage, il existe un modèle NN qui peut être appris et qui peut produire une erreur de généralisation aussi faible que souhaitée. Pour cette raison, la première étape consiste à
1. Définissez correctement vos attentes
Trouvez une référence fiable qui vous indique qu'il existe une architecture pouvant atteindre l'erreur de généralisation que vous recherchez, sur votre jeu de données ou sur le système le plus similaire pour lequel vous pouvez trouver des références. Par exemple, regardez ici
Quels sont les réseaux de neurones convolutifs à la pointe de la technologie?
pour trouver les performances actuelles (au moment des réponses) SOTA (Etat de la technique) des CNN sur diverses tâches. C'est une bonne idée d'essayer de reproduire ces résultats sur ces ensembles de données de référence, avant de vous entraîner sur votre propre ensemble de données, afin de vérifier que toute votre infrastructure est correctement en place.
2. Assurez-vous que votre procédure d'entraînement est sans faille
Toutes les vérifications décrites dans les réponses à la question
Que dois-je faire lorsque mon réseau de neurones n'apprend pas?
pour vous assurer que votre procédure d’entraînement est en ordre, est une condition préalable à la réduction réussie de l’erreur de généralisation (si votre NN n’apprend pas, il ne peut pas apprendre à généraliser). Ces contrôles incluent, entre autres choses:
3. Essayez d’obtenir la superconvergence
«Super-convergence: formation très rapide de réseaux neuronaux utilisant des vitesses d'apprentissage élevées » de Leslie N. Smith et Nicholay Topin montre que dans certains cas, la combinaison de vitesses d'apprentissage étendues et de la méthode de taux d'apprentissage cyclique de Leslie N. Smith agit comme un régularisateur. , accélérant la convergence d'un ordre de grandeur et réduisant le besoin de régularisation poussée. C’est donc une bonne chose à essayer avant
4. Régler votre régularisation sur le MAXXX
La régularisation augmente souvent le temps d’entraînement (mauvais), augmente l’erreur d’entraînement et réduit l’erreur de généralisation (bon), mais trop de régularisation peut en réalité augmenter les deux erreurs (sous-ajustement). Pour cette raison, et en raison de l’augmentation du temps d’entraînement, il est souvent préférable d’introduire les différentes techniques de régularisation une à la fois, une fois que vous avez réussi à sur-adapter l’ensemble d’entraînement. Notez que la régularisation en soi n'implique pas nécessairement que votre erreur de généralisation deviendra plus petite: le modèle doit avoir une capacité suffisamment grande pour obtenir de bonnes propriétés de généralisation. Cela signifie souvent que vous avez besoin d'un réseau suffisamment profond avant de pouvoir voir les avantages de la régularisation.
Les méthodes de régularisation les plus anciennes sont probablement l’arrêt précoce et la perte de poids. Quelques autres:
5. Recherche d'hyperparamètre / architecture
Si rien d’autre ne vous aide, vous devrez tester plusieurs paramètres d’hyperparamètre différents (l’optimisation Bayesian peut être utile ici) ou plusieurs modifications d’architecture différentes (par exemple, dans votre architecture GAN et pour l’ensemble de données sur lequel vous travaillez, la norme batch ne fonctionne que dans le cas contraire). générateur, mais quand il est ajouté au discriminateur aussi, cela aggrave les choses). Assurez-vous de garder une trace des résultats de ces expériences longues et ennuyeuses dans un journal de bord bien ordonné.
PS pour un GAN, il n’a pas de sens de parler d’une erreur de généralisation: l’exemple ci-dessus ne sert qu’à indiquer qu’il ya encore beaucoup d’alchimie dans Deep Learning et que des choses que vous vous attendez à bien travailler Pas, ou vice-versa, quelque chose qui a fonctionné plusieurs fois, puis vous avez soudainement besoin d’un nouveau jeu de données.
la source
Voici une liste des techniques de régularisation couramment utilisées que j'ai vues dans la littérature:
la source
Je me sens comme Djib2011, je donne d’excellents arguments sur les méthodes automatisées, mais elles ne traitent pas vraiment de la question sous-jacente de savoir comment savoir si la méthode utilisée pour réduire l’overfitting a fait son travail. Donc, en tant que note de bas de page importante de la réponse DeltaIV, je souhaitais l'inclure à partir de recherches récentes menées au cours des 2 dernières années. La suralimentation des réseaux de neurones ne concerne pas seulement le modèle sur-mémorisé, elle concerne également l’incapacité des modèles à apprendre de nouvelles choses ou à faire face aux anomalies.
Détecter le sur-ajustement dans un modèle de boîte noire: L' interprétabilité d'un modèle est directement liée à la capacité de généraliser la capacité d'un modèle. Ainsi, de nombreux graphiques interprétables sont des méthodes de détection de surajustement et peuvent vous indiquer l'efficacité des méthodes suggérées ci-dessus. Les graphiques d'interprétabilité le détectent directement, en particulier si vous comparez les graphiques de validation et de résultat de test. Les chapitres 5 et 6 de ce livre non publié traitent des avancées récentes en matière de détection d’overfitting sur le terrain: la modélisation interprétable
Sur la base de ce livre, je voudrais mentionner trois autres méthodes de détection et de suppression du surajustement, qui peuvent sembler évidentes pour certains, mais je trouve personnellement que les gens les oublient trop souvent. Je voudrais donc les souligner, si ce n’est un esprit:
Détection de sélection de fonctionnalités : le meilleur est le nombre de paramètres et le nombre de fonctionnalités de votre modèle. Donc, si vous n'incluez que l'important des 100 millions (peut-être 75 millions à la place), vous aurez un meilleur modèle généralisable. Le problème est que de nombreux réseaux de neurones ne sont pas parfaits dans la sélection des fonctionnalités, en particulier lorsque le n ° 2 est présent. Bootstrap ou Boosting ne peuvent fondamentalement pas résoudre les deux (seule une version appelée bootstrap sauvage peut). En termes plus simples, si vous fournissez des données indésirables sur le réseau de neurones, vous obtiendrez des malversations. (La normalisation L2 mentionnée ci-dessus est très efficace pour aider à cela)
Détection et traitement des anomalies: moins il y a de «valeurs aberrantes», plus le modèle peut être généralisé. Par "valeurs aberrantes", nous ne entendons pas seulement des valeurs aberrantes dans les données. Les valeurs aberrantes dans les données (comme celles que vous voyez avec un diagramme en boîte) constituent une définition trop étroite des réseaux de neurones. Vous devez également tenir compte des valeurs aberrantes dans l'erreur d'un modèle, appelé influence, ainsi que d'autres anomalies. Il est donc important de détecter les anomalies avant de faire fonctionner votre réseau. Un réseau neuronal peut être robuste contre un type d'anomalie, mais pas contre tous les autres types. Les méthodes de type Counter Counter, de type Criticism, et de type Adversarial, ainsi que les graphiques d’influence vous aident à découvrir les valeurs éloignées, puis à comprendre comment les prendre en compte. (Par exemple, modifiez les paramètres ou supprimez certaines données)
Échantillonnage stratifié, suréchantillonnage et sous-échantillonnage fondé sur des considérations statistiques ou éthiques : J'aimerais être un expert en sous-échantillonnage et en suréchantillonnage, mais je ne connais pas l'échantillonnage stratifié. Il est essentiel de regrouper des facteurs importants tels que (race, sexe, genre), puis de procéder à un échantillonnage stratifié par la grappe pour éviter une surévaluation lorsqu’on envisage le big data. Lors de la détection d'images, un échantillonnage stratifié associé à une classification est légalement obligatoire dans certains domaines pour éviter la discrimination raciale. Le livre cité ci-dessus parle brièvement des méthodes pour le faire.
PS Devrais-je inclure plus de liens?
la source