Pourquoi le sur-ajustement est-il mauvais?


27

J'ai étudié beaucoup de choses, et ils disent que sur-adapter les actions dans l'apprentissage automatique est mauvais, mais nos neurones deviennent très forts et trouvent les meilleures actions / sens que nous utilisons ou évitons, et peuvent être de-incrémentés / incrémentés de mauvais / bons par mauvais ou bons déclencheurs, ce qui signifie que les actions se nivelleront et cela se terminera par les meilleures (à droite), des actions confiantes super fortes. Comment cela échoue-t-il? Il utilise des déclencheurs de sens positifs et négatifs pour dé / incrémenter les actions dites à partir de 44pos. à 22neg.


4
Cette question est beaucoup plus large que le simple apprentissage automatique, les réseaux de neurones, etc. Elle s'applique à des exemples aussi simples que l'ajustement d'un polynôme.
gerrit


7
@ FriendlyPerson44 Après avoir relu votre question, je pense qu'il y a un décalage majeur entre votre titre et votre question réelle. Vous semblez poser des questions sur les failles de votre intelligence artificielle ( qui ne sont que vaguement expliquées ) - tandis que les gens répondent " Pourquoi le sur-ajustement est-il mauvais? "
DoubleDouble

3
@DoubleDouble, je suis d'accord. De plus, la connexion entre l'apprentissage automatique et les neurones est douteuse. L'apprentissage automatique n'a rien à voir avec «agir comme un cerveau», simuler des neurones ou simuler une intelligence. Il semble qu'il existe de nombreuses réponses différentes qui pourraient aider OP à ce stade.
Shaz

2
Vous devez affiner votre question et le titre. Peut-être pour: "Pourquoi devons-nous protéger un cerveau virtuel contre le surapprentissage alors que le cerveau humain fonctionne très bien sans aucune contre-mesure contre le surapprentissage?"
Falco

Réponses:


44

La meilleure explication que j'ai entendue est la suivante:

Lorsque vous effectuez un apprentissage automatique, vous supposez que vous essayez d'apprendre à partir de données qui suivent une distribution probabiliste.

Cela signifie que dans n'importe quel ensemble de données, en raison du caractère aléatoire, il y aura du bruit : les données varieront de manière aléatoire.

Lorsque vous vous équipez, vous finissez par apprendre de votre bruit et l'inclure dans votre modèle.

Ensuite, lorsque vient le temps de faire des prédictions à partir d'autres données, votre précision diminue: le bruit a fait son chemin dans votre modèle, mais il était spécifique à vos données d'entraînement, ce qui nuit à la précision de votre modèle. Votre modèle ne se généralise pas: il est trop spécifique à l'ensemble de données que vous avez choisi de former.


1
"Apprendre du bruit" me semble vague. Que se passe-t-il exactement? Pouvez-vous donner un exemple?
Raphael

même si vos données sont très propres et hors des valeurs aberrantes (naturelles et non naturelles), le "sur-ajustement" est toujours une mauvaise pratique et devrait être éliminé de votre modèle. lorsque votre modèle est «surajusté», cela signifie que votre modèle n'a pas généralisé les connaissances cachées dans les données et ne peut prédire aucun autre point de données. Simplement, lorsque vous suréquipez votre modèle, vous ne le placez que sur votre ensemble de données de train / test.
Aboelnour

2
@Raphael Le système commence à voir le bruit dans l'ensemble d'entraînement comme des fonctionnalités. Si vous exécutez ensuite le net sur des données réelles où ce bruit spécifique est manquant, vous vous retrouverez avec une probabilité plus faible car il y a des fonctionnalités (= le bruit qui était inclus) manquantes.
drake7707

2
@Raphael Qu'en est-il par exemple: J'ai une collection d'images d'une caméra de circulation. Entraînons un filet qui détecte la présence ou non de voitures. Après un peu de formation je l'ai donne un set avec des voitures et sans voitures, super! Appliquons le net sur un nouvel ensemble pour détecter si une rue est vide sans personnes et hein, pourquoi ne détecte-t-il pas ma rue vide avec une forte probabilité? En regardant en arrière sur l'ensemble d'échantillons et je remarque que dans chaque image, il y avait des gens en arrière-plan des images quand il n'y avait pas de voitures. En raison du sur-ajustement du filet, il a mis l'accent sur la présence des personnes
drake7707

1
Considérons un système qui a du bruit ajouté par un lancer de pièce. Sur les têtes, vous ajoutez 1 à la valeur et sur les queues, vous ajoutez 0. Pour rendre les résultats évidents, nous choisirons un ensemble de données absurdement petit de deux points: (2, 5) et (2.1, 8). Le coin flip atterrit tête pour le premier point, queue pour le second, introduisant du bruit, créant l'ensemble de données (3, 5), (2.1, 8). Maintenant, le réseau neuronal apprend à partir d'un ensemble de données qui semble avoir une corrélation significative entre les valeurs x et y, même si presque tout cela était du bruit. Si vous envoyez ensuite ce «net sur des données réelles, cela va générer beaucoup de mauvais résultats
Cort Ammon - Réinstallez Monica le

39

Version ELI5

C'est essentiellement comme ça que je l'ai expliqué à mon enfant de 6 ans.

Une fois, il y avait une fille nommée Mel ( "Tu comprends? ML?" "Papa, tu es boiteux." ). Et chaque jour, Mel jouait avec un ami différent, et chaque jour elle jouait c'était une journée ensoleillée et merveilleuse.

Mel a joué avec Jordan lundi, Lily mardi, Mimi mercredi, Olive jeudi .. puis vendredi Mel a joué avec Brianna, et il a plu. Ce fut un terrible orage!

Plus de jours, plus d'amis! Mel a joué avec Kwan samedi, Grayson dimanche, Asa lundi ... puis mardi Mel a joué avec Brooke et il a encore plu, encore pire qu'avant!

Maintenant, la mère de Mel a fait toutes les playdates, alors ce soir-là, pendant le dîner, elle commence à raconter à Mel les nouvelles playdates qu'elle a alignées. "Luis mercredi, Ryan jeudi, Jemini vendredi, Bianca samedi -"

Mel fronça les sourcils.

La maman de Mel a demandé: "Qu'est-ce qu'il y a, Mel, tu n'aimes pas Bianca?"

Mel a répondu: "Oh, bien sûr, elle est géniale, mais chaque fois que je joue avec un ami dont le nom commence par B, il pleut!"


Quel est le problème avec la réponse de Mel?

Eh bien, il ne pleuvra peut-être pas samedi.

Eh bien, je ne sais pas, je veux dire, Brianna est venue et il a plu, Brooke est venue et il a plu ...

Oui, je sais, mais la pluie ne dépend pas de tes amis.


10
Et à cette autre question, c'est ce que signifie «apprendre du bruit».
Kyle Hale

Au commentaire de la pluie - Mais nous le faisons, alors nous continuons à travailler de cette façon et à en apprendre davantage plus tard.
Personne amicale 44

13
@ FriendlyPerson44 Vous avez raison, les gens font des erreurs et font de mauvaises choses comme la sur-tenue. Votre question demandait pourquoi le sur-ajustement est mauvais, pas si les gens le font ou non.
Kyle Hale

1
Ce problème ne s'applique pas seulement aux robots qui apprennent mal, mais aussi aux gens qui apprennent mal.
Tomáš Zato - Rétablir Monica le

Je ne suis pas tout à fait d'accord: la pluie ne devrait pas être une variable prédictive en premier lieu, qu'est-ce que cela a à voir avec le sur-ajustement?
mucaho

14

Le sur-ajustement implique que votre apprenant ne généralisera pas bien. Par exemple, considérons un scénario d'apprentissage supervisé standard dans lequel vous essayez de diviser les points en deux classes. Supposons que vous recevez points d'entraînement. Vous pouvez adapter un polynôme de degré qui génère 1 sur les points d'entraînement de la première classe et -1 sur les points d'entraînement de la deuxième classe. Mais ce polynôme serait probablement inutile pour classer de nouveaux points. Ceci est un exemple de sur-ajustement et pourquoi c'est mauvais.NNN


Mais ses actions surajustées sont liées à des sens spécifiques, et seulement quand il voit à nouveau les mêmes sens, il fait correspondre la mémoire et les liens à ces actions, il ne les fera pas quand il verra d'autres choses. La généralisation est deux choses - toutes ces images d'arbre sont des arbres, et utilisent les connaissances du passé pour comprendre cette nouvelle chose. Pour que mon IA résolve cela, il voit un arbre et entend "arbre", et cela correspond à la mémoire et l'amène au premier plan, puis il voit de nouveaux arbres et leurs noms et ils sont tous liés aux sens dans la dernière mémoire - la première image d'arbre & du son. Comprendre nouvelle petite chose liée par knwldge est nouveau actio
Amical personne 44

2
@ FriendlyPerson44 Dans l'apprentissage automatique supervisé, le résultat de la formation ne devrait plus avoir besoin d'être modifié. C'est là que le «sur-ajustement» entre en jeu. Ce serait comme si la machine avait appris à reconnaître un arbre - d'abord par les couleurs, puis la forme générale, puis une forme spécifique ( là où elle devrait s'arrêter ), mais ensuite elle commence à distinguer les arbres par des motifs aléatoires supplémentaires qu'elle ne trouve que dans votre ensemble d'entraînement. Lorsque vous lui laissez voir de nouvelles images aléatoires d'arbres, il décide que ce ne sont pas des arbres. À ce stade, le pire des cas est qu'il est utilisé et que personne ne le supervise!
DoubleDouble

Mais le mien reconnaît un arbre en sauvegardant l'image et le son de l'arbre et en reliant les deux sens ensemble, et lorsque l'arbre est dit, il correspond à ce qui est en mémoire et amène la correspondance et tout ce qui y est lié à l'avant de la mémoire, puis lorsqu'il est montré autre arbres et a appelé de nouveaux noms ces images et sons comme les premiers appris. Cependant, les arbres ne sont pas des déclencheurs, les aliments ne le sont pas, ils ne sauveront pas d'actions lorsqu'ils voient une couleur ou un motif. Le mien apprend vraiment les actions.
Personne amicale 44

1
@ FriendlyPerson44 Qu'est-ce que cela a à voir avec les raisons pour lesquelles le sur-ajustement est mauvais?
DoubleDouble

9

En gros, un sur-ajustement se produit généralement lorsque le rapport

entrez la description de l'image ici

est trop élevé.

Considérez le sur-ajustement comme une situation où votre modèle apprend les données d'entraînement par cœur au lieu d'apprendre les grandes images qui l'empêchent de pouvoir se généraliser aux données de test: cela se produit lorsque le modèle est trop complexe par rapport à la taille de les données d'apprentissage, c'est-à-dire lorsque la taille des données d'apprentissage est trop petite par rapport à la complexité du modèle.

Exemples:

  • si vos données sont en deux dimensions, vous avez 10000 points dans le set d'entraînement et le modèle est une ligne, vous risquez de sous- équiper.
  • si vos données sont en deux dimensions, vous avez 10 points dans l'ensemble de formation et le modèle est polynomial à 100 degrés, vous risquez de sur- ajuster.

entrez la description de l'image ici

D'un point de vue théorique, la quantité de données dont vous avez besoin pour bien former votre modèle est une question cruciale mais loin d'être résolue dans l'apprentissage automatique. Une telle approche pour répondre à cette question est la dimension VC . Un autre est le compromis biais-variance .

D'un point de vue empirique, les gens tracent généralement l'erreur d'apprentissage et l'erreur de test sur le même tracé et s'assurent qu'ils ne réduisent pas l'erreur d'apprentissage au détriment de l'erreur de test:

entrez la description de l'image ici

Je vous conseille de regarder le cours d'apprentissage automatique de Coursera , section "10: Conseils pour appliquer l'apprentissage automatique".


1
J'aime la ligne "apprendre par cœur" parce que les humains sont capables (et le font) dans une certaine mesure. Imaginez-vous répondre à un quiz extrêmement difficile dans lequel les questions et les réponses ne changent jamais, mais les réponses vous sont fournies lorsque vous les obtenez incorrectes. Imaginez que l'équation (2 + 2) est difficile, vous reconnaissez l'équation et dites «4» - mais ensuite (2 + 3) arrive, mais vous n'avez pas appris à ajouter, vous venez d'apprendre à dire «4» quand vous avez '2 + 2'
DoubleDouble

belle explication
Nikos M.

4

Je pense que nous devrions considérer deux situations:

Formation finie

Il existe une quantité limitée de données que nous utilisons pour former notre modèle. Après cela, nous voulons utiliser le modèle.

Dans ce cas, si vous suréquipez, vous ne ferez pas un modèle du phénomène qui a produit les données, mais vous ferez un modèle de votre ensemble de données. Si votre ensemble de données n'est pas parfait - j'ai du mal à imaginer un ensemble de données parfait - votre modèle ne fonctionnera pas bien dans de nombreuses ou certaines situations, selon la qualité des données que vous avez utilisées pour vous entraîner. Le sur-ajustement entraînera donc une spécialisation de votre ensemble de données, lorsque vous souhaitez que la généralisation modélise le phénomène sous-jacent.

Apprentissage continu

Notre modèle recevra tout le temps de nouvelles données et continuera à apprendre. Il y a peut-être une période initiale d'élasticité accrue pour obtenir un point de départ acceptable.

Ce deuxième cas est plus similaire à la façon dont le cerveau humain est formé. Quand un être humain est très jeune, de nouveaux exemples de ce que vous voulez apprendre ont une influence plus prononcée que lorsque vous êtes plus âgé.

Dans ce cas, le sur-ajustement fournit un problème légèrement différent mais similaire: les systèmes qui relèvent de ce cas sont souvent des systèmes qui sont censés remplir une fonction pendant l'apprentissage. Considérez comment un humain n'est pas simplement assis quelque part tandis que de nouvelles données lui sont présentées pour en tirer des enseignements. Un être humain interagit avec le monde et survit tout le temps.

Vous pourriez faire valoir que parce que les données continuent de venir, le résultat final fonctionnera bien, mais dans ce laps de temps, ce qui a été appris doit être utilisé! Le sur-ajustement fournira les mêmes effets de courte durée que dans le cas 1, ce qui donnera à votre modèle de moins bonnes performances. Mais vous dépendez des performances de votre modèle pour fonctionner!

Regardez de cette façon, si vous êtes trop habillé, vous reconnaîtrez peut-être ce prédateur qui essaie de vous manger dans le futur après de nombreux autres exemples, mais lorsque le prédateur vous mange, c'est théorique.


Bonne réponse à la question que l'op implique: "Pourquoi devons-nous empêcher le surapprentissage dans le cerveau virtuel, alors que notre cerveau semble fonctionner correctement, sans aucune compensation de surapprentissage" - parce qu'une machine est entraînée, tandis que les humains apprennent par eux-mêmes.
Falco

3

Disons que vous voulez apprendre à l'ordinateur à déterminer entre les bons et les mauvais produits et lui donner l'ensemble de données suivant pour apprendre: diagramme avec jeu de données.  0 à 50 sont 0. 52 et 74 sont 0. Les valeurs restantes de 51 à 100 sont 1

0 signifie que le produit est défectueux, 1 signifie qu'il est OK. Comme vous pouvez le voir, il existe une forte corrélation entre les axes X et Y. Si la valeur mesurée est inférieure ou égale à 50, il est très probable (~ 98%) que le produit est défectueux et au-dessus, il est très probable (~ 98%), c'est OK. 52 et 74 sont des valeurs aberrantes (des facteurs mesurés faux ou non mesurés jouant un rôle; également connus sous le nom de bruit). La valeur mesurée peut être l'épaisseur, la température, la dureté ou autre chose et son unité n'est pas importante dans cet exemple Donc l'algorithme générique serait

if(I<=50)
    return faulty;
else
    return OK;

Il aurait une chance de 2% de classification erronée.

Un algorithme de sur-ajustement serait:

if(I<50)
    return faulty;
else if(I==52)
    return faulty;
else if(I==74)
    return faulty;
else
    return OK;

Ainsi, l'algorithme de surajustement classerait à tort tous les produits mesurant 52 ou 74 comme défectueux bien qu'il y ait de fortes chances qu'ils soient OK lorsqu'ils reçoivent de nouveaux jeux de données / utilisés en production. Il aurait une chance de 3,92% de classification erronée. Pour un observateur externe, cette classification erronée serait étrange mais explicable sachant le jeu de données d'origine qui était surajusté.

Pour l'ensemble de données d'origine, l'algorithme surajusté est le meilleur, pour les nouveaux ensembles de données, l'algorithme générique (non surajusté) est probablement le meilleur. La dernière phrase décrit dans le fond la signification du sur-ajustement.


2

Dans mon cours d'IA au collège, notre instructeur a donné un exemple similaire à celui de Kyle Hale:

Une fille et sa mère se promènent ensemble dans la jungle, quand soudain un tigre saute du pinceau et dévore sa mère. Le lendemain, elle marche dans la jungle avec son père, et le tigre saute à nouveau du pinceau. Son père lui crie de courir, mais elle répond "Oh, c'est bon papa, les tigres ne mangent que des mères."

Mais d'autre part:

Une fille et sa mère se promènent ensemble dans la jungle, quand soudain un tigre saute du pinceau et dévore sa mère. Le lendemain, son père la trouve recroquevillée dans sa chambre et lui demande pourquoi elle ne joue pas avec ses amis. Elle répond "Non! Si je sors, un tigre me mangera très certainement!"

Le surapprentissage et le sous-ajustement peuvent être mauvais, mais je dirais que cela dépend du contexte du problème que vous essayez de résoudre, lequel vous inquiète le plus.



2

Celui que j'ai rencontré est quelque chose comme ça. Tout d'abord, je mesure quelque chose où je m'attends à ce que le rapport entrée / sortie soit à peu près linéaire. Voici mes données brutes:

Input   Expected Result
1.045   0.268333453
2.095   0.435332226
3.14    0.671001483
4.19    0.870664399
5.235   1.073669373
6.285   1.305996464
7.33    1.476337174
8.38    1.741328368
9.425   1.879004941
10.47   2.040661489

Et voici un graphique:

entrez la description de l'image ici

Semble définitivement correspondre à mon attente de données linéaires. Cela devrait être assez simple pour déduire l'équation, non? Donc, vous laissez votre programme analyser un peu ces données, et finalement il rapporte qu'il a trouvé l'équation qui frappe tous ces points de données, avec une précision de 99,99%! Impressionnant! Et cette équation est ... 9sin (x) + x / 5. Qui ressemble à ceci: entrez la description de l'image ici

Eh bien, l'équation prédit définitivement les données d'entrée avec une précision presque parfaite, mais comme elle est tellement surajustée aux données d'entrée, elle est à peu près inutile pour faire autre chose.


Je pense que le sur-ajustement est davantage une question de ce que vous faites incorrectement une fois que vous avez les données d'entrée. Ici, vous ne pouvez rien faire; les entrées sont insuffisantes car il y a un sous-échantillonnage.
Emre

1
@Emre: Je n'ai pas l'intention de sous-échantillonner, je voulais que l'entrée / sortie soit linéaire, mais le sur-ajustement a produit une équation qui était clairement non linéaire. Je vais modifier pour clarifier.
Mooing Duck

1

Jetez un oeil à cet article, il explique assez bien le sur-ajustement et le sous-ajustement.

http://scikit-learn.org/stable/auto_examples/model_selection/plot_underfitting_overfitting.html

L'article examine un exemple de données de signal d'une fonction cosinus. Le modèle de surajustement prédit que le signal est une fonction légèrement plus compliquée (qui est également basée sur une fonction cosinus). Cependant, le modèle surajusté conclut ceci basé non pas sur la généralisation mais sur la mémorisation du bruit dans les données du signal.


4
Si ce lien se brise, votre réponse sera presque sans valeur. Veuillez donner au moins un résumé (avec attribution, bien sûr) afin que la réponse ait une valeur indépendante de ce lien.
Raphael

1

Sans expérience en apprentissage automatique et à en juger par la réponse de @ jmite, voici une visualisation de ce que je pense qu'il signifie:

Graphique aléatoire de la bonne forme approximative pour la démonstration

Supposons que les barres individuelles dans le graphique ci-dessus sont vos données, pour lesquelles vous essayez de comprendre les tendances générales à appliquer à de plus grands ensembles de données. Votre objectif est de trouver la ligne courbe. Si vous suréquipez - au lieu de la ligne courbe montrée, vous connectez le haut de chaque barre individuelle, puis appliquez cela à votre ensemble de données - et obtenez une réponse épineuse bizarre et précise à mesure que le bruit (variations par rapport à l'attendu) devient exagéré dans vos ensembles de données pratiques.

J'espère que j'ai aidé un peu ...


0

Sur-ajustement dans la vraie vie:

Un Blanc voit la nouvelle d'un Noir qui commet un crime. Un Blanc voit un autre reportage sur un Noir qui commet un crime. Un Blanc voit un troisième reportage sur un Noir qui commet un crime. Une personne blanche voit un reportage sur une personne blanche portant une chemise rouge, des parents aisés et des antécédents de maladie mentale commettant un crime. Un Blanc conclut que tous les Noirs commettent un crime, et seuls les Blancs portant des chemises rouges, des parents aisés et des antécédents de maladie mentale commettent un crime.

Si vous voulez comprendre pourquoi ce type de sur-ajustement est "mauvais", remplacez simplement "noir" ci-dessus par un attribut qui vous définit de manière plus ou moins unique.


Les stéréotypes sont ce que les profanes appellent le sur-ajustement.
Emre

3
Ce n'est pas exagéré. Le sur-ajustement serait le système qui déciderait que les seules personnes qui sont des criminels sont celles qui ont la même couleur de peau, la même couleur de chemise, le même revenu parental et les mêmes antécédents de maladie mentale que l'un des criminels dans les reportages.
David Richerby

8
@Emre Non, les stéréotypes sont exactement l'opposé du sur-ajustement. Les stéréotypes arrivent à des conclusions qui ignorent la plupart des propriétés des données d'apprentissage. Le surapprentissage arrive à la conclusion que seules les données que chaque point des données d'entraînement décrit parfaitement une partie de la chose que vous essayez de reconnaître.
David Richerby

Note du modérateur: les commentaires hors sujet / hors contexte ont été supprimés. Pour une discussion générale, veuillez visiter Computer Science Chat . Si vous avez une question sur un programme particulier qui peut ou non utiliser utilement le sur-ajustement, veuillez poser une nouvelle question.
Gilles 'SO- arrête d'être méchant'

2
@ArnabDatta Le sur-ajustement correspond trop précisément à un modèle trop compliqué avec les données d'entraînement; les stéréotypes sont l'utilisation d'un modèle excessivement simplifié.
David Richerby

0

Toutes les données que vous testez auront des propriétés que vous souhaitez qu'elles apprennent, et certaines propriétés qui ne sont pas pertinentes que vous ne voulez pas qu'elles apprennent.

John a 11 ans
Jack a 19 ans
Kate a 31 ans
Lana a 39 ans

Ajustement approprié: Les âges sont approximativement linéaires, passant par ~ l'âge de 20 ans
Tenue: Deux humains ne peuvent pas être séparés de 10 ans (propriété du bruit dans les données)
Tenue: 1/4 de tous les humains ont 19 ans (stéréotypes)


Bienvenue! Nous avons déjà beaucoup d'exemples informels, donc je ne suis pas sûr que cela ajoute beaucoup. Et il semble difficile de rendre cet exemple plus formel. Par exemple, quelle est la fonction linéaire que vous mentionnez? L'entrée de la fonction semble être le nom de la personne, qui n'est pas un nombre. Pendant ce temps, «deux humains ne peuvent pas être séparés de dix ans» et «1/4 des humains ont 19 ans» ne sont pas des exemples de fonctions apprises à partir des données.
David Richerby du
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.