Éviter le sur-ajustement dans la régression: alternatives à la régularisation

19

La régularisation en régression (linéaire, logistique ...) est le moyen le plus utilisé pour réduire le sur-ajustement.

Lorsque l'objectif est la précision des prédictions (sans explication), existe-t-il de bonnes alternatives à la régularisation, particulièrement adaptées aux ensembles de données volumineuses (mi / milliards d'observations et millions de fonctionnalités)?

Benoit Sanchez
la source
3
«Big data sets» peut signifier beaucoup d'observations, beaucoup de variables ou les deux, et la réponse peut dépendre du nombre d'observations et de variables.
Pere
Pourquoi ne pas utiliser la régularisation des normes? Pour les réseaux de neurones, il y a abandon
seanv507
4
L'avantage de la régularisation est qu'elle est bon marché en termes de calcul. Les méthodes d'ensemble telles que l'ensachage et le renforcement (etc.) combinées aux méthodes de validation croisée pour le diagnostic des modèles sont une bonne alternative, mais ce sera une solution beaucoup plus coûteuse.
Digio
1
Cela pourrait être intéressant: stats.stackexchange.com/a/161592/40604
Dan
1
Pour ajouter au commentaire de Digio: la régularisation est bon marché par rapport à l'ensachage / boosting mais reste chère par rapport à l'alternative "pas de régularisation" (voir par exemple ce post de Ben Recht sur la façon dont la régularisation rend l'apprentissage profond difficile ). Si vous avez un grand nombre d'échantillons, aucune régularisation ne peut bien fonctionner pour beaucoup moins cher. Le modèle peut encore bien généraliser comme @ hxd1001 souligne )
Berk U.

Réponses:

11

Deux points importants qui ne sont pas directement liés à votre question:

  • Premièrement, même l'objectif est la précision plutôt que l'interprétation, la régularisation est toujours nécessaire dans de nombreux cas, car elle garantira la «haute précision» sur l'ensemble de données de test / production réelles, et non sur les données utilisées pour la modélisation.

  • Deuxièmement, s'il y a des milliards de lignes et des millions de colonnes, il est possible qu'aucune régularisation ne soit nécessaire. En effet, les données sont énormes et de nombreux modèles de calcul ont une «puissance limitée», c'est-à-dire qu'il est presque impossible de les suréquiper. C'est pourquoi certains réseaux de neurones profonds ont des milliards de paramètres.


Maintenant, à propos de votre question. Comme l'ont mentionné Ben et Andrey, il existe certaines options comme alternatives à la régularisation. Je voudrais ajouter plus d'exemples.

  • Utilisez un modèle plus simple (Par exemple, réduisez le nombre d'unités cachées dans le réseau neuronal. Utilisez un noyau polynomial d'ordre inférieur dans SVM. Réduisez le nombre de Gaussiens dans un mélange de Gaussiens. Etc.)

  • Arrêtez-vous tôt dans l'optimisation. (Par exemple, réduire l'époque dans la formation des réseaux de neurones, réduire le nombre d'itérations dans l'optimisation (CG, BFGS, etc.)

  • Moyenne sur de nombreux modèles (par exemple, forêt aléatoire, etc.)

Haitao Du
la source
Merci beaucoup. La deuxième option (arrêtez-vous tôt) est ce que nous essayons actuellement avec SGD. Cela fonctionne plutôt bien. Nous voulons le comparer avec la régularisation bientôt. Connaissez-vous un article qui mentionne cette méthode?
Benoit Sanchez
1
Il existe un indice d'une relation géométrique entre l'arrêt précoce avec descente en pente et la régularisation. Par exemple, la régression de crête sous sa forme primale demande les paramètres minimisant la fonction de perte qui se trouvent dans une ellipse solide centrée à l'origine, la taille de l'ellipse étant fonction de la force de régularisation. Les paramètres de crête se trouvent à la surface de l'ellipse s'ils sont différents de la solution non régularisée. Si vous exécutez une ascension en partant de l'origine, puis vous arrêtez tôt, vous serez à la limite de l'une de ces ellipses ...
Matthew Drury
Parce que vous avez suivi les gradients, vous avez suivi le chemin vers le vrai minimum, donc vous vous retrouverez approximativement autour de la solution de crête la plupart du temps. Je ne sais pas à quel point vous pouvez faire preuve de rigueur dans cette réflexion, mais il peut y avoir une relation.
Matthew Drury
@BenoitSanchez Ce document peut être pertinent. Les auteurs s'attaquent à un problème différent (surajustement dans le calcul des vecteurs propres), mais la stratégie pour faire face au surajustement est la même (c.-à-d. Régularisation implicite en réduisant le calcul). La stratégie consiste à résoudre un problème moins cher qui produit une solution approximative (ce qui - je pense - revient à s'arrêter tôt dans l'optimisation).
Berk U.
@BenoitSanchez Je recommande cela. Les conférences de Lorenzo sont disponibles sur YouTube, mais cette page contient également des liens vers quelques articles mit.edu/~9.520/fall17/Classes/early_stopping.html
David Kozak
14

Deux alternatives à la régularisation:

  1. Avoir beaucoup, beaucoup d'observations
  2. Utilisez un modèle plus simple

Geoff Hinton (co-inventeur de la propulsion arrière) a un jour raconté une histoire d'ingénieurs qui lui a dit (en paraphrasant fortement): "Geoff, nous n'avons pas besoin d'abandon dans nos filets profonds parce que nous avons tellement de données." Et sa réponse a été: "Eh bien, alors vous devriez construire des filets encore plus profonds, jusqu'à ce que vous soyez en sur- ajustement, puis utiliser l'abandon." Bon conseil à part, vous pouvez apparemment éviter la régularisation même avec des filets profonds, tant qu'il y a suffisamment de données.

Avec un nombre fixe d'observations, vous pouvez également opter pour un modèle plus simple. Vous n'avez probablement pas besoin de régularisation pour estimer une interception, une pente et une variance d'erreur dans une régression linéaire simple.

Ben Ogorek
la source
3

Quelques possibilités supplémentaires pour éviter le sur-ajustement

  • Réduction dimensionnelle

    ml<<m sous - espace de dimension.

  • Sélection des fonctionnalités (également réduction de la dimensionnalité)

    Vous pouvez effectuer un tour de sélection d'entités (par exemple en utilisant LASSO) pour obtenir un espace d'entités de dimension inférieure. Quelque chose comme la sélection de fonctionnalités à l'aide de LASSO peut être utile si certains sous-ensembles de fonctionnalités importants mais inconnus ne sont pas pertinents.

  • Utilisez des algorithmes moins sujets au surapprentissage, comme la forêt aléatoire. (Selon les paramètres, le nombre de fonctionnalités, etc.), ceux-ci peuvent être plus coûteux en calcul que les moindres carrés ordinaires.)

    Certaines des autres réponses ont également mentionné les avantages des techniques / algorithmes de boosting et d'ensachage.

  • Méthodes bayésiennes

    L'ajout d'un a priori sur le vecteur de coefficient réduit le sur-ajustement. Ceci est conceptuellement lié à la régularisation: par exemple. la régression des crêtes est un cas particulier d'estimation maximale a posteriori.

Matthew Gunn
la source
2

Si vous utilisez un modèle avec un solveur, où vous pouvez définir le nombre d'itérations / d'époques, vous pouvez suivre l'erreur de validation et appliquer un arrêt précoce: arrêtez l'algorithme, lorsque l'erreur de validation commence à augmenter.

Andrey Lukyanenko
la source
1
Cette question pose clairement la question des modèles de régression (linéaire, logistique).
Matthew Drury
2
Techniquement parlant, la régression linéaire et logistique sont des réseaux neuronaux très simples.
Andrey Lukyanenko
2
Je ne pense pas que cela change ma conviction que cela ne répond pas à la question posée. Si vous le retravailliez pour dire "si vous ajustez la régression avec une certaine forme de descente de gradient et appliquez un arrêt précoce", ce serait mieux.
Matthew Drury
Même sklearn a un certain nombre de modèles qui prennent en charge le nombre limité d'itérations de paramètre. Il pourrait être utilisé pour suivre la précision. Mais je suppose que vous avez raison, le libellé n'est pas exactement correct.
Andrey Lukyanenko
1

Deux réflexions:

  1. J'appuie la stratégie "utiliser un modèle plus simple" proposée par Ben Ogorek .

    Je travaille sur des modèles de classification linéaire vraiment clairsemés avec de petits coefficients entiers (par exemple max 5 variables avec des coefficients entiers entre -5 et 5). Les modèles se généralisent bien en termes de précision et de métriques de performance plus délicates (par exemple l'étalonnage).

    Cette méthode dans cet article sera mise à l'échelle pour de grandes tailles d'échantillon pour la régression logistique, et peut être étendue pour s'adapter à d'autres classificateurs linéaires avec des fonctions de perte convexe. Il ne traitera pas les cas avec beaucoup de fonctionnalités (sauf sin/ est suffisamment grand, auquel cas les données sont séparables et le problème de classification devient facile).

  2. Si vous pouvez spécifier des contraintes supplémentaires pour votre modèle (par exemple, contraintes de monotonie, informations secondaires), cela peut également aider à la généralisation en réduisant l'espace d'hypothèse (voir par exemple ce document ).

    Cela doit être fait avec soin (par exemple, vous voulez probablement comparer votre modèle à une ligne de base sans contraintes et concevoir votre processus de formation de manière à vous assurer que vous n'êtes pas contraint de choisir des contraintes).

Berk U.
la source