Quand un modèle est-il sous-équipé?

56

La logique dit souvent qu'en sous-équipant un modèle, sa capacité à généraliser est accrue. Cela dit, il est clair qu’à un moment donné, un modèle insuffisamment aménagé s’aggrave, quelle que soit la complexité des données.

Comment savoir si votre modèle a trouvé le juste équilibre et ne sous-exploite pas les données qu'il cherche à modéliser?


Remarque: ceci fait suite à ma question, " Pourquoi Overfitting Bad? "

gaffes
la source
Je suppose que vous vouliez dire: "La logique dit souvent qu'en sous-ajustant un modèle, sa capacité de généralisation est augmentée. "
Rubens

Réponses:

43

Un modèle sous-convient lorsqu'il est trop simple en ce qui concerne les données qu'il tente de modéliser.

Une façon de détecter une telle situation consiste à utiliser l' approche biais-variance , qui peut être représentée de la manière suivante:

entrez la description de l'image ici

Votre modèle est sous-équipé lorsque vous avez un biais élevé.


Pour savoir si vous avez un biais trop élevé ou une variance trop élevée, vous visualisez le phénomène en termes d’entraînement et testez les erreurs:

Biais élevé: Cette courbe d'apprentissage montre une erreur élevée à la fois sur les ensembles d'apprentissage et de test. L'algorithme souffre donc d'un biais élevé:

entrez la description de l'image ici

Variance élevée: Cette courbe d’apprentissage montre un écart important entre les erreurs d’entraînement et d’ensemble de tests, de sorte que l’algorithme souffre d’une variance élevée.

entrez la description de l'image ici

Si un algorithme souffre d'une variance élevée:

  • plus de données aideront probablement
  • sinon réduire la complexité du modèle

Si un algorithme souffre d'un biais élevé:

  • augmenter la complexité du modèle

Je conseillerais de regarder le cours d'apprentissage automatique de Coursera , section "10: Conseils pour appliquer l'apprentissage automatique", à partir duquel j'ai pris les graphiques ci-dessus.

Franck Dernoncourt
la source
Voulez-vous dire "augmentez la complexité du modèle" au dernier point? Je pense juste "augmenter la complexité du modèle". . . BTW bon timing je suis inscrit à ce cours et je venais de regarder la vidéo que vous faites référence.
Neil Slater
@NeilSlater Merci, bonne prise, il y avait bien une faute de frappe :)
Franck Dernoncourt
1
Vous semblez supposer que l'erreur d'apprentissage est une estimation décente du biais. Le biais (pour le cas simple de la fonction de perte MSE) est défini comme l'erreur attendue que vous faites sur les nouvelles données , lorsque vous faites la moyenne de votre prédiction sur tous les différents ensembles de formation . Qu'est-ce qui fait de J_train (sans faire la moyenne sur l'ensemble des formations, sans utiliser de nouvelles données) une estimation décente du biais?
max
@FranckDernoncourt pouvons-nous associer sur-ajustement et sous-ajustement à la taille de la formation par rapport aux données de test? Pouvons-nous dire que le modèle formé sur les sous-ensembles d'ensembles d'entraînement plus petits?
Sudip Bhandari
10

Pour répondre à votre question, il est important de comprendre le cadre de référence que vous recherchez. Si vous cherchez ce que vous essayez d'atteindre de manière philosophique en ajustement de modèle, consultez la réponse de Rubens qui explique très bien ce contexte.

Cependant, dans la pratique, votre question est presque entièrement définie par des objectifs commerciaux.

Pour donner un exemple concret, disons que vous êtes un agent de crédit, que vous avez émis des prêts de 3 000 dollars et que les gens vous remboursent votre salaire, vous gagnez 50 dollars . Naturellement, vous essayez de construire un modèle qui prédit comment une personne prêt. Restons simples et disons que les résultats sont soit un paiement complet, soit un défaut.

D'un point de vue commercial, vous pouvez résumer les performances d'un modèle avec une matrice de contingence:

entrez la description de l'image ici

Quand le modèle prédit que quelqu'un va faire défaut, le font-ils? Pour déterminer les inconvénients de la superposition et de l'insuffisance, je trouve utile de penser que c'est un problème d'optimisation, car dans chaque section transversale de la prédiction de la performance du modèle, il y a un coût ou un profit à réaliser:

entrez la description de l'image ici

Dans cet exemple, prédire un défaut par défaut signifie éviter tout risque, et prévoir un non-défaut qui ne fait pas défaut fera 50 USD par prêt consenti. Lorsque vous vous trompez, vous perdez la totalité du principal du prêt et prévoyez le défaut lorsqu'un client ne vous ferait pas perdre 50 dollars d'opportunités manquées. Les chiffres ici ne sont pas importants, juste l'approche.

Avec ce cadre, nous pouvons maintenant commencer à comprendre les difficultés associées au sur et au sous-ajustement.

Un ajustement excessif dans ce cas signifierait que votre modèle fonctionne beaucoup mieux avec vos données de développement / test qu’il ne le fait en production. Autrement dit, votre modèle en production sera bien inférieur à ce que vous avez vu en développement, cette fausse confiance vous fera probablement prendre des prêts beaucoup plus risqués que vous ne le feriez autrement et vous laisse très vulnérable à la perte d'argent.

En revanche, si vous vous comportez dans ce contexte, vous vous retrouverez avec un modèle qui ne fait que très mal correspondre à la réalité. Bien que les résultats obtenus puissent être extrêmement imprévisibles (le mot opposé veut décrire vos modèles prédictifs), il est fréquent que les normes soient resserrées pour compenser cela, ce qui réduit le nombre total de clients et leur fait perdre de bons clients.

Le sous-montage souffre d'une sorte de difficulté opposée au sur-ajustement, ce qui vous donne moins de confiance. Insidieusement, le manque de prévisibilité vous conduit toujours à prendre des risques inattendus, ce qui est une mauvaise nouvelle.

D'après mon expérience, le meilleur moyen d'éviter ces deux situations est de valider votre modèle sur des données qui sortent complètement du cadre de vos données d'entraînement. Vous pouvez donc avoir la certitude que vous disposez d'un échantillon représentatif de ce que vous verrez à l'état sauvage. '.

En outre, il est toujours judicieux de revalider périodiquement vos modèles afin de déterminer la rapidité avec laquelle votre modèle se dégrade et s'il atteint toujours vos objectifs.

Pour ne citer que quelques exemples, votre modèle est sous-équipé lorsqu'il est incapable de prédire les données de développement et de production.

neone4373
la source
6

Les modèles ne sont que des abstractions de ce que l'on voit dans la vie réelle. Ils sont conçus de manière à permettre l’observation abstraite des réseaux du système réel, tout en conservant suffisamment d’informations pour appuyer l’analyse souhaitée.

Si un modèle est surajusté, il prend en compte trop de détails sur ce qui est observé, et de petites modifications sur un tel objet peuvent entraîner une perte de précision du modèle. D'un autre côté, si un modèle est sous-équipé, il évalue si peu d'attributs que des modifications notables sur l'objet peuvent être ignorées.

Notez également que le sous-ajustement peut être perçu comme un sur- ajustement , en fonction du jeu de données. Si votre entrée peut être classée à 99% avec un seul attribut, vous surajustez le modèle aux données en simplifiant l'abstraction à une seule caractéristique. Et, dans ce cas, vous généraliseriez trop le 1% de la base dans la classe à 99% - ou spécifieriez également le modèle à un point tel qu'il ne peut voir qu'une seule classe.

Une façon raisonnable de dire qu’un modèle n’est ni excessif ni insuffisant consiste à effectuer des validations croisées. Vous divisez votre ensemble de données en k parties et vous dites en choisir une pour effectuer votre analyse, tandis que vous utilisez les k-1 autres parties pour former votre modèle. Étant donné que l'entrée en elle-même n'est pas biaisée, vous devriez pouvoir avoir autant de variance de données à former et à évaluer que si vous utilisiez le modèle dans le traitement réel.

Rubens
la source
5

Une approche commune consiste simplement à augmenter la complexité du modèle, en le simplifiant et le plus probablement au début sous-équipé, et en augmentant la complexité du modèle jusqu’à ce que des signes précoces de surajustement soient observés à l’aide d’une technique de rééchantillonnage telle que la validation croisée, le bootstrap, etc.

Vous augmentez la complexité en ajoutant des paramètres (nombre de neurones cachés pour les réseaux de neurones artificiels, nombre d'arbres dans une forêt aléatoire) ou en relâchant le terme de régularisation (souvent appelé lambda ou C pour les machines à vecteurs de support) dans votre modèle.

damienfrancois
la source
3

Le modèle CAPM (Capital Asset Pricing Model) en finance est un exemple classique de modèle de sous-investissement. Il a été construit sur la belle théorie selon laquelle "les investisseurs ne paient que pour le risque qu'ils ne peuvent pas diversifier", de sorte que les rendements excédentaires escomptés correspondent à la corrélation avec les rendements du marché.

Comme formule [0] Ra = Rf + B (Rm - Rf) où Ra est le rendement attendu de l'actif, Rf est le taux sans risque, Rm est le taux de rendement du marché et Beta est la corrélation avec la prime actions. (Rm - Rf)

C'est beau, élégant et faux. Les investisseurs semblent exiger un taux plus élevé de petites actions et de valeurs (définies par la valeur comptable du marché, ou rendement du dividende).

Fama et French [1] ont présenté une mise à jour du modèle, qui ajoute des Betas supplémentaires pour la taille et la valeur.

Alors, comment savez-vous en général? Lorsque les prédictions que vous faites sont fausses, une autre variable avec une explication logique augmente la qualité de la prédiction. Il est facile de comprendre pourquoi quelqu'un pourrait penser que les petites actions sont risquées, indépendamment des risques non diversifiables. C'est une bonne histoire, soutenue par les données.

[0] http://www.investopedia.com/terms/c/capm.asp [1] http://fr.wikipedia.org/wiki/Fama%E2%80%93French_three-factor_model

MathAttack
la source