Quelle est la gravité du réglage hyperparamétrique en dehors de la validation croisée?

20

Je sais que le réglage de l'hyperparamètre en dehors de la validation croisée peut conduire à des estimations biaisées de la validité externe, car l'ensemble de données que vous utilisez pour mesurer les performances est le même que celui que vous avez utilisé pour régler les fonctionnalités.

Ce que je me demande, c'est à quel point c'est grave . Je peux comprendre comment ce serait vraiment mauvais pour la sélection des fonctionnalités, car cela vous donne un grand nombre de paramètres à régler. Mais que se passe-t-il si vous utilisez quelque chose comme LASSO (qui n'a qu'un seul paramètre, la force de régularisation), ou une forêt aléatoire sans sélection de fonctionnalités (qui peut avoir quelques paramètres mais rien de plus dramatique que d'ajouter / supprimer des fonctionnalités de bruit)?

Dans ces scénarios, dans quelle mesure pouvez-vous espérer que votre estimation de l'erreur de formation soit optimiste?

J'apprécierais toute information à ce sujet - études de cas, articles, anecdonnées, etc. Merci!

EDIT: Pour clarifier, je ne parle pas d'estimer les performances du modèle sur les données de formation (c'est-à-dire de ne pas utiliser du tout de validation croisée). Par "réglage hyperparamétrique en dehors de la validation croisée", j'entends utiliser la validation croisée uniquement pour estimer les performances de chaque modèle individuel, mais sans inclure une deuxième boucle de validation croisée externe pour corriger le sur-ajustement dans la procédure de réglage hyperparamétrique (par opposition à sur-ajustement pendant la procédure de formation). Voir par exemple la réponse ici .

Ben Kuhn
la source

Réponses:

17

Les effets de ce biais peuvent être très importants. Une bonne démonstration de cela est donnée par les compétitions ouvertes d'apprentissage automatique qui figurent dans certaines conférences d'apprentissage automatique. Ceux-ci ont généralement un ensemble de formation, un ensemble de validation et un ensemble de test. Les concurrents ne voient pas les étiquettes de l'ensemble de validation ou de l'ensemble de test (évidemment). L'ensemble de validation est utilisé pour déterminer le classement des concurrents sur un classement que tout le monde peut voir pendant la compétition. Il est très courant que les personnes en tête du classement à la fin de la compétition soient très faibles dans le classement final sur la base des données du test. En effet, ils ont réglé les hyper-paramètres de leurs systèmes d'apprentissage pour maximiser leurs performances dans le classement et, ce faisant, ils ont sur-ajusté les données de validationen ajustant leur modèle. Les utilisateurs plus expérimentés accordent peu ou pas d'attention au classement et adoptent des estimations de performance plus rigoureuses et impartiales pour guider leur méthodologie.

L'exemple de mon article (mentionné par Jacques) montre que les effets de ce type de biais peuvent être de la même sorte que la différence entre les algorithmes d'apprentissage, donc la réponse courte est de ne pas utiliser de protocoles d'évaluation des performances biaisés si vous êtes vraiment intéressé à découvrir ce qui fonctionne et ce qui ne fonctionne pas. La règle de base est de «traiter la sélection de modèle (par exemple, réglage d'hyper-paramètre) comme partie intégrante de la procédure d'ajustement du modèle et de l'inclure dans chaque pli de la validation croisée utilisée pour l'évaluation des performances).

Le fait que la régularisation est moins sujette à un sur-ajustement que la sélection des fonctionnalités est précisément la raison pour laquelle LASSO etc. sont de bons moyens d'effectuer la sélection des fonctionnalités. Cependant, la taille du biais dépend du nombre d'entités, de la taille de l'ensemble de données et de la nature de la tâche d'apprentissage (c'est-à-dire qu'il y a un élément qui dépend de l'ensemble de données particulier et variera d'une application à l'autre). La nature dépendante des données signifie que vous feriez mieux d'estimer la taille du biais en utilisant un protocole non biaisé et en comparant la différence (il peut être intéressant de signaler que la méthode est robuste à surajustée dans la sélection du modèle dans ce cas particulier). en soi).

GC Cawley et NLC Talbot (2010), «Sur-ajustement dans la sélection des modèles et biais de sélection subséquent dans l'évaluation des performances», Journal of Machine Learning Research, 11, p. 2079, section 5.2.)

Dikran Marsupial
la source
7
  • Le parti pris dont vous parlez est encore principalement lié au sur-ajustement.
  • Vous pouvez garder le risque faible en évaluant seulement très peu de modèles pour fixer l'hyperparamètre de régularisation et en optant pour une faible complexité dans le choix plausible.

  • Comme le souligne @MarcClaesen, la courbe d'apprentissage fonctionne pour vous, ce qui atténuera quelque peu le biais. Mais la courbe d'apprentissage n'est généralement abrupte que pour très peu de cas, et le sur-ajustement est alors beaucoup plus problématique.

Au final, je m'attendrais à ce que le biais dépende

  • les données (il est difficile d'ajuster un problème univarié ...) et
  • votre expérience et votre comportement de modélisation: je pense qu'il est possible que vous décidiez d'une complexité à peu près appropriée pour votre modèle si vous avez suffisamment d'expérience avec le type de modèle et l'application et si vous êtes extrêmement bien comporté et ne cédez pas à la tentation de modèles plus complexes. Mais bien sûr, nous ne vous connaissons pas et ne pouvons donc pas juger du caractère conservateur de votre modélisation.
    En outre, admettre que votre modèle statistique sophistiqué est très subjectif et que vous n'avez plus de cas pour effectuer une validation n'est généralement pas ce que vous voulez. (Pas même dans les situations où le résultat global devrait être meilleur.)

Je n'utilise pas LASSO (car la sélection des variables n'a pas beaucoup de sens pour mes données pour des raisons physiques), mais PCA ou PLS fonctionnent généralement bien. Une crête serait une alternative proche de LASSO et plus adaptée au type de données. Avec ces données, j'ai vu un ordre de grandeur plus de mauvaises classifications sur la "validation de raccourci" par rapport à la validation croisée indépendante (externe) appropriée. Dans ces situations extrêmes, cependant, mon expérience montre que la validation des raccourcis semblait étrangement bonne, par exemple 2% de mauvaises classifications => 20% avec une validation croisée appropriée.

Je ne peux cependant pas vous donner de chiffres réels qui s'appliquent directement à votre question:

  • Jusqu'à présent, je me suis davantage soucié des autres types de "raccourcis" qui se produisent dans mon domaine et conduisent à des fuites de données, par exemple des spectres de validation croisée à la place des patients (biais énorme! Je peux vous montrer 10% de mauvaise classification -> 70% = deviner parmi 3 classes), ou n'incluant pas l'APC dans la validation croisée (2 - 5% -> 20 - 30%).
  • Dans les situations où je dois décider si la validation croisée que je peux me permettre doit être consacrée à l'optimisation du modèle ou à la validation, je décide toujours de la validation et fixe le paramètre de complexité par expérience. L'ACP et le PLS fonctionnent bien, car les techniques de régularisation sont ce respect car le paramètre de complexité (# composants) est directement lié aux propriétés physiques / chimiques du problème (par exemple, je peux avoir une bonne estimation du nombre de groupes de substances chimiquement différents que je compte avoir). De plus, pour des raisons physico-chimiques, je sais que les composants doivent ressembler un peu à des spectres et s'ils sont bruyants, je sur-ajuste. Mais l'expérience peut également optimiser la complexité du modèle sur un ancien ensemble de données d'une expérience précédente qui est assez similaire en général pour justifier le transfert d'hyperparamètres et ensuite simplement utiliserle paramètre de régularisation pour les nouvelles données.
    De cette façon, je ne peux pas prétendre avoir le modèle optimal, mais je peux prétendre avoir une estimation raisonnable des performances que je peux obtenir.
    Et avec le nombre de patients que j'ai, il est de toute façon impossible de faire des comparaisons de modèles statistiquement significatives (rappelez-vous, mon nombre total de patients est inférieur à la taille d'échantillon recommandée pour estimer une proportion unique [selon la règle empirique donnée ici par @FrankHarrell]).

Pourquoi ne lancez-vous pas des simulations aussi proches que possible de vos données et faites-nous savoir ce qui se passe?


À propos de mes données: je travaille avec des données spectroscopiques. Les ensembles de données sont généralement larges: quelques dizaines de cas indépendants (patients; bien que généralement beaucoup de mesures par cas. Ca. 10³ varie dans les données brutes, que je pourrai peut-être réduire à 250 en appliquant les connaissances du domaine pour couper les zones non informatives hors de mes spectres et pour réduire la résolution spectrale.

cbeleites soutient Monica
la source
5

Si vous ne sélectionnez que l'hyperparamètre pour le LASSO, il n'est pas nécessaire d'avoir un CV imbriqué. La sélection d'hyper-paramètre se fait dans une interaction CV simple / plat.

λ

LjeTjeλTjeLje

λ

(Ce n'est pas la seule méthode pour sélectionner les hyperparamètres mais c'est la plus courante - il y a aussi la procédure «médiane» discutée et critiquée par GC Cawley et NLC Talbot (2010), «Sur-ajustement dans la sélection du modèle et biais de sélection subséquent in performance evaluation ", Journal of Machine Learning Research, 11 , p . 2079 , section 5.2.)

λλ

Je connais deux résultats expérimentaux pour mesurer le biais de cette estimation (par rapport à une véritable erreur de généralisation pour les ensembles de données synthétiques)

les deux en accès libre.

Vous avez besoin d'un CV imbriqué si:

a) vous voulez choisir entre un LASSO et quelques autres algorithmes, spécialement s'ils ont aussi des hyperparamètres

λ

λ

Enfin, le CV imbriqué n'est pas le seul moyen de calculer une estimation non biaisée raisonnable de l'erreur de généralisation attendue. Il y a eu au moins trois autres propositions

Jacques Wainer
la source
2
Pouvez-vous expliquer ce que vous entendez par "il n'y a pas de CV pour la sélection des hyperparamètres"? D'après ce que vous écrivez, je ne peux pas comprendre si vous voulez avertir le PO qu'il n'a pas fait l'imbrication, ou si vous déclarez qu'en général rien de tel n'existe.
cbeleites prend en charge Monica le
(+1) pour une explication concise du problème et de bonnes références. Mais, comme le souligne @cbeleites, la première phrase est assez déroutante: elle semble destinée à corriger un malentendu que l'OP n'a pas.
Scortchi - Réintégrer Monica
@cbeleites (et Scortchi) - Je réponds à l'OP "EDIT:" où (je crois) il prétend qu'il utilise CV pour sélectionner les paramètres ("validation croisée uniquement pour estimer les performances de chaque modèle individuel",) et il craint de ne pas avoir utilisé de CV imbriqué ("mais sans inclure une deuxième boucle de validation croisée externe pour corriger le sur-ajustement dans la procédure de réglage des hyperparamètres"). J'essayais de lui dire qu'il n'y avait pas de CV externe dans la sélection des paramètres.
Jacques Wainer
@JacquesWainer: Je pense qu'il veut "corriger le sur-ajustement dans la procédure de réglage d'hyperparamètre" lors de l'estimation des performances hors échantillon de la procédure (votre situation b ), plutôt que de corriger en quelque sorte la valeur sélectionnée de l'hyperparamètre en utilisant un CV imbriqué. Quoi qu'il en soit, votre modification rend le début de votre réponse plus clair.
Scortchi - Réintégrer Monica
Oui, je voulais "corriger [l'estimation naïve des performances] pour le sur-ajustement dans la procédure de réglage des hyperparamètres", pas "pour corriger [les hyperparamètres réglés] pour le sur-ajustement" ou quelque chose comme ça. Je suis désolé pour la confusion; J'aurais dû dire plus explicitement que j'étais préoccupé par l'estimation des erreurs, pas par la sélection des paramètres.
Ben Kuhn
2

Tout algorithme d'apprentissage complexe, comme SVM, les réseaux de neurones, la forêt aléatoire, ... peut atteindre une précision d'entraînement de 100% si vous les laissez (par exemple par une régularisation faible / nulle), avec des performances de généralisation absolument horribles en conséquence.

κ(Xje,Xj)=exp(-γXje-Xj2)γ=100%

En bref, vous pouvez facilement vous retrouver avec un classificateur parfait sur votre ensemble d'entraînement qui n'a absolument rien appris d'utile sur un ensemble de test indépendant. Voilà à quel point c'est mauvais.

Marc Claesen
la source
Je ne parle pas de former le modèle en dehors de la validation croisée. Je parle de l'optimisation des hyperparamètres (et toujours en utilisant la validation croisée pour estimer les performances de chaque ensemble d'hyperparamètres). Je vais modifier le message pour clarifier cela.
Ben Kuhn
100%
Pourquoi pensez-vous que j'envisage de ne pas utiliser la validation croisée? J'ai spécifiquement dit: "... et j'utilise toujours la validation croisée pour estimer les performances de chaque ensemble d'hyperparamètres."
Ben Kuhn
1
γ=γγ
2
J'ai complètement mal compris votre question. Avant l'édition, c'était très déroutant. Soit dit en passant, le parti pris qui vous intéresse n'est pas nécessairement positif; car de nombreuses approches produisent des modèles considérablement meilleurs lorsqu'ils reçoivent plus de données de formation, ce qui est particulièrement pertinent pour les petits ensembles de formation + validation croisée.
Marc Claesen