Qu’est-ce que l' »overfitting » et l' »underfitting » en apprentissage automatique ?

– S1E14

Si votre tâche principale est de sélectionner un algorithme d’apprentissage et de l’entraîner sur certaines données, les deux choses qui peuvent mal tourner sont « mauvais algorithme » et « mauvaises données »

Ce sont des exemples de mauvais algorithme-

Surajustement-

Le surajustement est une erreur de modélisation qui se produit lorsqu’une fonction est trop étroitement ajustée à un ensemble limité de points de données. Cela signifie que le modèle est performant sur les données d’entraînement, mais qu’il ne se généralise pas bien.

Ex- Disons que vous visitez un pays étranger et que le chauffeur de taxi vous arnaque. Vous pourriez être tenté de dire que tous les chauffeurs de taxi de ce pays sont des voleurs

Surchargement des données d’apprentissage

Les modèles complexes tels que les réseaux neuronaux profonds peuvent détecter des modèles subtils dans les données, mais si l’ensemble d’entraînement est bruyant, ou s’il est trop petit (ce qui introduit un bruit d’échantillonnage), alors le modèle est susceptible de détecter des modèles dans le bruit lui-même.

Par exemple- disons que vous ajoutez l’attribut du nom du pays à votre modèle de satisfaction de vie-

Dans ce cas, un modèle complexe peut détecter des modèles comme le fait que tous les pays dans les données d’entraînement avec un ‘w’ dans leur nom ont une satisfaction de vie supérieure à 7 : Nouvelle-Zélande (7.3), la Norvège (7,4), la Suède (7,2) et la Suisse (7,5).

Mais cette règle de satisfaction en w ne se généralise pas au Rwanda, au Zimbabwe, etc.

De toute évidence, ce modèle est apparu dans les données d’entraînement par pur hasard, mais le modèle n’a aucun moyen de dire si un modèle est réel ou simplement le résultat du bruit dans les données.

Le surajustement se produit lorsque le modèle est trop complexe par rapport à la quantité et au bruit des données d’apprentissage.

Voici les solutions possibles :

  • Simplifier le modèle en en sélectionnant un avec moins de paramètres (par ex, un modèle linéaire plutôt qu’un modèle polynomial de haut degré),
  • En réduisant le nombre d’attributs dans les données d’entraînement, ou en contraignant* le modèle.
  • Recueillir plus de données d’entraînement.
  • Réduire le bruit dans les données d’entraînement (par ex, corriger les erreurs de données et supprimer les valeurs aberrantes).

La contrainte d’un modèle pour le rendre plus simple et réduire le risque de surajustement est appelée régularisation.

Par exemple, le modèle linéaire que nous avons défini précédemment a deux paramètres, θ0 et θ1 .

Cela donne à l’algorithme d’apprentissage deux degrés de liberté pour adapter le modèle aux données d’apprentissage : il peut modifier à la fois la hauteur (θ0 ) et la pente (θ1 ) de la ligne.

Si nous forcions θ1 = 0, l’algorithme n’aurait qu’un seul degré de liberté et aurait beaucoup plus de mal à s’adapter correctement aux données : tout ce qu’il pourrait faire, c’est déplacer la ligne vers le haut ou vers le bas pour se rapprocher le plus possible des instances d’apprentissage, de sorte qu’elle se retrouverait autour de la moyenne.

Si nous autorisons l’algorithme à modifier θ1 mais que nous le forçons à le garder petit, alors l’algorithme d’apprentissage aura effectivement quelque part entre un et deux degrés de liberté.

Vous voulez trouver le bon équilibre entre s’adapter parfaitement aux données d’apprentissage et garder le modèle assez simple pour s’assurer qu’il généralisera bien.

La régularisation réduit le risque de surajustement
  • Ligne pointillée- formée sur des cercles uniquement,
  • Ligne pointillée- entraînée sur les cercles et les carrés
  • Ligne pleine- est un modèle entraîné sur les cercles seulement

Vous pouvez voir que la régularisation a forcé le modèle à avoir une plus petite pente : ce modèle ne s’ajuste pas aux données d’entraînement (cercles) aussi bien que le premier modèle, mais il généralise en fait mieux aux nouveaux exemples qu’il n’a pas vus pendant l’entraînement (carrés).

La quantité de régularisation à appliquer pendant l’apprentissage peut être contrôlée par un hyperparamètre.

Un hyperparamètre est un paramètre d’un algorithme d’apprentissage (pas du modèle). Il doit être défini avant l’entraînement et reste constant pendant l’entraînement.

Si vous définissez l’hyperparamètre de régularisation à-

  • une valeur très grande- vous obtiendrez un modèle presque plat (une pente proche de zéro), l’algorithme d’apprentissage ne surajustera presque certainement pas les données d’entraînement, mais il sera moins susceptible de trouver une bonne solution.

Le réglage des hyperparamètres est une partie importante de la construction d’un système de Machine Learning (vous verrez un exemple détaillé dans les épisodes suivants).

L’underfitting se produit lorsque votre modèle est trop simple pour apprendre la structure sous-jacente des données.

Un modèle linéaire de la satisfaction de la vie est enclin à l’underfit, la réalité est juste plus complexe que le modèle, donc ses prédictions sont forcément inexactes.

Voici les principales options pour corriger ce problème-

  • Sélectionner un modèle plus puissant, avec plus de paramètres.
  • Fournir de meilleures caractéristiques à l’algorithme d’apprentissage (feature engineering).
  • Réduire les contraintes sur le modèle (par ex, réduire l’hyperparamètre de régularisation).

Lire la suite – Test et validation d’un modèle entraîné

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.