J'ai terminé le cours d'apprentissage automatique d'Andrew Ng il y a environ un an et j'écris maintenant mon exploration des mathématiques au lycée sur le fonctionnement de la régression logistique et des techniques pour optimiser les performances. Une de ces techniques est bien sûr la régularisation.
L'objectif de la régularisation est d'empêcher le sur-ajustement en étendant la fonction de coût pour inclure l'objectif de simplicité du modèle. Nous pouvons y parvenir en pénalisant la taille des poids en ajoutant à la fonction de coût chacun des poids au carré, multiplié par un paramètre de régularisation.
Désormais, l'algorithme d'apprentissage automatique visera à réduire la taille des poids tout en conservant la précision sur l'ensemble d'entraînement. L'idée est que nous atteindrons un point au milieu où nous pouvons produire un modèle qui généralise sur les données et n'essaye pas de s'adapter à tout le bruit stochastique en étant moins complexe.
Ma confusion est pourquoi nous pénalisons la taille des poids? Pourquoi des poids plus grands créent-ils des modèles plus complexes et des poids plus petits créent-ils des modèles plus simples / plus lisses? Andrew Ng affirme dans sa conférence que l'explication est difficile à enseigner, mais je suppose que je cherche cette explication maintenant.
Le professeur Ng a en effet donné un exemple de la façon dont la nouvelle fonction de coût peut amener les poids des caractéristiques (c'est-à-dire x ^ 3 et x ^ 4) à tendre vers zéro de sorte que le degré du modèle est réduit, mais cela ne crée pas un explication.
Mon intuition est que les poids plus petits auront tendance à être plus "acceptables" sur les entités avec de plus grands exposants que celles avec de plus petits exposants (parce que les entités avec de petits poids sont comme la base de la fonction). Des poids plus petits impliquent des "contributions" plus petites aux caractéristiques d'ordre élevé. Mais cette intuition n'est pas très concrète.
Réponses:
Si vous utilisez la régularisation, vous réduisez non seulement l'erreur dans l'échantillon, mais aussi .O u t O fSa m p l e Er r o r ≤ In Sa m p l e Er r o r + Mo de l Co m p l e x i t yPe n a l t y
Plus précisément, pour une hypothèse , où est un paramètre, généralement , est le nombre d'exemples dans votre jeu de données et est une pénalité qui dépend des poids , . C'est ce qu'on appelle l' erreur augmentée . Maintenant, vous ne pouvez minimiser la fonction ci-dessus que si les poids sont plutôt petits.Jaug(h(x),y,λ,Ω)=J(h(x),y)+λ2mΩ h∈H λ λ∈(0,1) m Ω w Ω=wTw
Voici un code R pour jouer avec
Ainsi, au lieu de pénaliser tout l'espace d'hypothèse , nous pénalisons chaque hypothèse individuellement. On se réfère parfois à l'hypothèse par son vecteur poids .H h h w
Quant à savoir pourquoi les petits poids vont de pair avec une complexité du modèle faible, examinons l'hypothèse suivante: . Au total, nous avons obtenu trois paramètres de poids actifs . Maintenant, définissons sur une très très petite valeur, . Cela réduit la complexité du modèle à: . Au lieu de trois paramètres de poids actifs, nous n'en avons plus que deux.w 1 , … , w 3 w 3 w 3 = 0h1(x)=x1×w1+x2×w2+x3×w3 w1,…,w3 w3 w3=0 h1(x)=x1×w1+x2×w2
la source
Je ne sais pas si je sais vraiment de quoi je parle, mais je vais essayer. Ce n'est pas tellement d'avoir de petits poids qui empêche le sur-ajustement (je pense), c'est plus le fait que la régularisation réduit plus fortement l'espace du modèle. En fait, vous pouvez régulariser autour de 10000000 si vous le souhaitez en prenant la norme L2 de vos valeurs X moins un vecteur de 10000000. Cela réduirait également le surajustement (bien sûr, vous devriez également avoir une raison de le faire (c'est-à-dire que vos valeurs Y sont 10000000 fois plus grandes que la somme de vos valeurs X, mais personne ne le fait vraiment parce que vous pouvez simplement redimensionner les données).
Le biais et la variance sont tous deux fonction de la complexité du modèle. Ceci est lié à la théorie VC alors regardez-le. Plus l'espace des modèles possibles est grand (c'est-à-dire les valeurs que tous vos paramètres peuvent prendre en gros), plus le modèle est susceptible de s'adapter. Si votre modèle peut tout faire, qu'il s'agisse d'une ligne droite ou d'un mouvement dans toutes les directions, comme une onde sinusoïdale qui peut également monter et descendre, il est beaucoup plus probable qu'il détecte et modélise des perturbations aléatoires dans vos données qui ne résultent pas de la signal sous-jacent, mais le résultat d'une chance chanceuse dans cet ensemble de données (c'est pourquoi obtenir plus de données aide à sur-adapter mais pas à sous-adapter).
Lorsque vous régularisez, vous réduisez essentiellement l'espace objet. Cela ne signifie pas nécessairement que les fonctions plus lisses / plus plates ont un biais plus élevé et moins de variance. Pensez à un modèle linéaire qui est recouvert d'une onde sinusoïdale qui est limitée à avoir une très petite oscillations d'amplitude qui ne fait essentiellement rien (c'est fondamentalement une ligne floue). Cette fonction est super ondulante dans un sens, mais ne convient que légèrement plus qu'une régression linéaire. La raison pour laquelle les fonctions plus lisses / plus plates ont tendance à avoir un biais plus élevé et moins de variance est parce que nous, en tant que scientifique des données, supposons que si nous avons un espace d'échantillonnage réduit, nous préférerions de beaucoup, par le rasoir d'Occam, les modèles plus lisses et plus simples et jeter les modèles. qui sont ondulés et oscillent partout. Il est logique de jeter d'abord les modèles ondulés,
La régularisation, comme la régression des crêtes, réduit l'espace du modèle, car il est plus coûteux d'être plus éloigné de zéro (ou de n'importe quel nombre). Ainsi, lorsque le modèle est confronté à un choix de prendre en compte une petite perturbation dans vos données, il sera plus susceptible de se tromper du côté de non, car cela augmentera (généralement) la valeur de votre paramètre. Si cette perturbation est due au hasard (c.-à-d. Que l'une de vos variables x avait juste une légère corrélation aléatoire avec vos variables y), le modèle n'en tiendra pas compte par rapport à une régression non régularisée car la régression non régularisée n'a aucun coût associé à augmentation des tailles bêta. Cependant, si cette perturbation est due à un signal réel, votre régression régularisée la manquera plus probablement, c'est pourquoi elle a un biais plus élevé (et pourquoi il y a un compromis de biais de variance).
la source
Histoire:
Ma grand-mère marche, mais ne grimpe pas. Certaines mamies le font. Une grand-mère était célèbre pour avoir escaladé le Kilimandjaro .
Ce volcan dormant est grand. Il est à 16 000 pieds au-dessus de sa base. (Ne détestez pas mes unités impériales.) Il y a aussi parfois des glaciers au sommet.
Si vous montez une année où il n'y a pas de glacier et que vous arrivez au sommet, est-ce le même sommet que s'il y avait un glacier? L'altitude est différente. Le chemin que vous devez emprunter est différent. Et si vous montez au sommet lorsque l'épaisseur du glacier est plus grande? Cela en fait-il davantage un accomplissement? Environ 35 000 personnes tentent de l'escalader chaque année, mais seulement 16 000 y parviennent.
Application:
Je voudrais donc expliquer le contrôle des poids (alias minimiser la complexité du modèle) à ma grand-mère, comme suit:
Grand-mère, votre cerveau est un penseur incroyable, que vous le sachiez ou non. Si je vous demande combien des 16 000 personnes qui pensent avoir atteint le sommet l'ont fait, vous diriez «toutes».
Si je mettais des capteurs dans la peau de tous les 30 000 grimpeurs et mesurais la hauteur au-dessus du niveau de la mer, alors certaines de ces personnes n'étaient pas aussi hautes que d'autres et pourraient ne pas être qualifiées. Quand je fais cela, je vais sur un modèle constant - je dis que si la hauteur n'est pas égale à un centile des hauteurs maximales mesurées, ce n'est pas le sommet. Certaines personnes sautent au sommet. Certaines personnes franchissent la ligne et s'assoient.
Je pourrais ajouter la latitude et la longitude au capteur, et ajuster des équations d'ordre supérieur et peut-être pourrais-je obtenir un meilleur ajustement, et avoir plus de gens dedans, peut-être même exactement 45% du total des gens qui essaient.
Alors disons que l'année prochaine est une année "grand glacier" ou "pas de glacier" car un volcan transforme vraiment l' albédo de la terre. Si je prends mon modèle complexe et exigeant de cette année et que je l'applique aux gens qui grimpent l'année prochaine, le modèle va avoir des résultats étranges. Peut-être que tout le monde "passera" ou même sera trop haut pour passer. Peut-être que personne ne passera du tout, et il pensera que personne n'a réellement terminé la montée. Surtout lorsque le modèle est complexe, il aura tendance à ne pas se généraliser correctement. Il peut correspondre exactement aux données de «formation» de cette année, mais lorsque de nouvelles données arrivent, elles se comportent mal.
Discussion:
Lorsque vous limitez la complexité du modèle, vous pouvez généralement avoir une meilleure généralisation sans sur-ajustement. L'utilisation de modèles plus simples, plus construits pour s'adapter aux variations du monde réel, tend à donner de meilleurs résultats, toutes choses étant égales par ailleurs.
Vous avez maintenant une topologie de réseau fixe, vous dites donc "mon nombre de paramètres est fixe" - je ne peux pas avoir de variation dans la complexité du modèle. Absurdité. Mesurez l'entropie dans les poids. Lorsque l'entropie est plus élevée, cela signifie que certains coefficients sont beaucoup plus «informatifs» que d'autres. Si vous avez une entropie très faible, cela signifie qu'en général, les coefficients portent des niveaux similaires d '"informativité". L'informativité n'est pas nécessairement une bonne chose. Dans une démocratie, vous voulez que tous les gens soient égaux, et des choses comme George Orwell «plus égales que les autres» sont une mesure des défaillances du système. Si vous n'avez pas une bonne raison à cela, vous voulez que les poids soient assez similaires les uns aux autres.
Sur une note personnelle: au lieu d'utiliser le vaudou ou l'heuristique, je préfère des choses comme les "critères d'information" car ils me permettent d'obtenir des résultats fiables et cohérents. AIC , AICc et BIC sont des points de départ communs et utiles. La répétition de l'analyse pour déterminer la stabilité de la solution ou la gamme des résultats des critères d'information est une approche courante. On pourrait envisager de mettre un plafond sur l'entropie dans les poids.
la source
Une simple intuition est la suivante. N'oubliez pas que pour la régularisation, les fonctionnalités doivent être standardisées afin d'avoir env. la même échelle.
Disons que la fonction de minimisation n'est que la somme des erreurs quadratiques:
L'ajout de fonctionnalités réduira probablement cette , surtout si la fonctionnalité est sélectionnée dans un pool bruyant. Cette fonctionnalité réduit par hasard le , ce qui conduit à un sur-ajustement.S S ESSE SSE
Considérons maintenant la régularisation, LASSO dans ce cas. Les fonctions à minimiser sont alors
L'ajout d'une fonctionnalité supplémentaire entraîne désormais une pénalité supplémentaire: la somme des coefficients absolus augmente! La réduction de l'ESS devrait l'emporter sur la pénalité supplémentaire ajoutée. Il n'est plus possible d'ajouter des fonctionnalités supplémentaires sans frais.
La combinaison de la standardisation des fonctionnalités et de la pénalisation de la somme des coefficients absolus restreint l'espace de recherche, ce qui réduit le sur-ajustement.
Maintenant LASSO:
tend à mettre les coefficients à zéro, tandis que la régression de crête:
tend à rétrécir les coefficients proportionnellement. Cela peut être considéré comme un effet secondaire du type de fonction pénalisante. L'image ci-dessous aide à cela:
La fonction de pénalisation de régularisation donne en pratique un «budget» pour les paramètres, comme illustré ci-dessus par la zone cyan.
Voyez qu'à gauche, LASSO, la fonction est susceptible de frapper l'espace sur un axe; mettre l'un des coefficients à zéro, et en fonction du budget réduire l'autre. A droite, la fonction peut frapper les axes, répartissant plus ou moins le budget sur les paramètres: conduisant à un rétrécissement des deux paramètres.SSE
Photo prise à partir de https://onlinecourses.science.psu.edu/stat857/node/158
En résumé: la régularisation pénalise l'ajout de paramètres supplémentaires et, selon le type de régularisation, réduira tous les coefficients (crête) ou mettra un certain nombre de coefficients à 0 tout en conservant les autres coefficients dans la mesure où le budget le permet (lasso)
la source
En ajoutant du bruit guassien à l'entrée, le modèle d'apprentissage se comportera comme un régularisateur de pénalité L2.
Pour voir pourquoi, envisagez une régression linéaire où du bruit iid est ajouté aux entités. La perte sera désormais fonction des erreurs + contribution de la norme des poids.
voir dérivation: https://www.youtube.com/watch?v=qw4vtBYhLp0
la source
Je me souviens que dans une classe universitaire, mon professeur a dit que pénaliser de grands paramètres peut réduire le sur-ajustement, car cela empêche le modèle de mettre trop de poids sur des caractéristiques spécifiques des données, ce qui provoque un sur-ajustement, car le modèle se souvient simplement de certaines caractéristiques spécifiques des données et les relie à l'étiquette au lieu d'essayer d'apprendre les règles générales.
la source