La normalisation L2 de la régression des crêtes punit-elle l'interception? Sinon, comment résoudre sa dérivée?

8

Je suis nouveau au ML. J'ai été informé que la normalisation L2 de la régression des crêtes ne punit pas l'interceptionθ0. Comme dans la fonction de coût:

θJ(θ)=12i=1m(hθ(x(i))y(i))2+λj=1nθj2
Le terme de normalisation L2 λj=1nθj2 uniquement les sommes j=1 à n, Pas de j=0 à n. J'ai également lu que:

dans la plupart des cas (tous les cas?), il vaut mieux ne pas régulariser θ0, car il est peu probable qu'il réduise le sur-ajustement et rétrécisse l'espace des fonctions représentables

qui provient de la dernière réponse de user48956 de Pourquoi un modèle de régression linéaire à interception nulle prédit-il mieux qu'un modèle avec interception?

Je ne sais pas comment résoudre la dérivée de la fonction de coût, car:

θJ(θ)=12XθYTXθY+λ(θ)Tθ,
θ=[θ1θ2...θn] , θ=[θ0θ1...θn] et X=[1X1(1)X2(1)...Xn(1)1X1(2)X2(2)...Xn(2)...1X1(m)X2(m)...Xn(m)].

θ et θsont différents. Par conséquent, ils ne peuvent pas être mélangés de mon point de vue. Et le dérivé est sur le pointθ,qui contient θ. Après avoir googlé et consulté les questions sur ce forum, il n'y a toujours aucun moyen pour moi d'obtenir la solution:

θ=(XTX+λI)1XTY
Quelqu'un peut-il me donner un indice? Merci d'avance pour votre aide!

Cependant, je pense qu'il existe deux solutions rapides à ce problème:

Tout d'abord, nous n'ajoutons pas la colonne all 1 à X. À savoirX=[X1(1)X2(1)...Xn(1)X1(2)X2(2)...Xn(2)...X1(m)X2(m)...Xn(m)]. C'est-à-dire que nous n'incluons pas du tout l'interception dans le modèle:

y=θ1X1+θ2X2+...+θnXn.
Je crois que cette méthode est adoptée dans le livre classique Machine Learning in Action de Peter Harrington que je lis actuellement. Dans son implémentation de la régression des crêtes (P166 et P177 si vous avez aussi le livre), tous lesXpassé à la régression de crête n'a pas la toute 1 colonne. Aucune interception n'est donc installée du tout.

Deuxièmement, l'interception est également punie dans la réalité.

La régression logistique de scikit régularise l'interception par défaut.

qui provient encore une fois de la dernière réponse de user48956 de Pourquoi un modèle de régression linéaire à interception nulle prédit-il mieux qu'un modèle avec une interception?

Les deux solutions rapides mènent à la solution

θ=(XTX+λI)1XTY.

Le dérivé de la normalisation L2 de la régression des crêtes peut-il être réellement résolu ou est-il simplement résolu par des solutions rapides?

Naomi
la source
2
Voir aussi stats.stackexchange.com/questions/86991 . La réponse à votre Q est que tout peut être résolu: il suffit de décomposer le premier terme en theta_0 et theta_prime. Vous pouvez immédiatement résoudre pour un thêta_0 optimal: c'est la moyenne globale. Menant à votre "solution rapide # 1" comme la bonne solution pour theta_prime sur les données soustraites en moyenne.
amoeba
3
La deuxième solution est universellement considérée comme incorrecte. La pénalisation de l'interception est l'une des quelques erreurs de conception dans sklearn.
Matthew Drury
1
@MatthewDrury Je pense que j'ai mentionné un hack pour "corriger" cela et vous a rendu triste. Mais je veux dire à OP que le hack est une énorme interception, comme 1e9. La régularisation y prend alors peu d'effet.
Haitao Du
1
Yah, tu te souviens bien, chaque fois que je fais ça, je meurs un peu à l'intérieur.
Matthew Drury
@amoeba Merci beaucoup! Je trouve la solution dans ma réponse sous votre direction. Pouvez-vous m'aider à le vérifier? De plus, je découvre que l'apprentissage automatique en action soustrait la moyenne deY et n'ajoute pas la toute 1 colonne à Xqui sont à la fois la bonne voie à suivre. Cependant, lors de la normalisation des fonctionnalités, il diviseXμpar variance et non par écart-type! J'ai posé une autre question à ce sujet: pas par écart-type Pouvez-vous m'aider à nouveau sur cette question? Merci!
Naomi

Réponses:

3

Les éléments de l'apprentissage statistique par Hastie et al. souligne dans P63 que:

L'interception θ0 a été exclu de la peine

De plus, il dit:

Les solutions de faîtage ne sont pas équivariantes sous l'échelle des entrées, et donc on normalise normalement les entrées avant de résoudre (3.41) (3.41 est la fonction de coût). On peut montrer (Exercice 3.5) que la solution de (3.41) peut être séparée en deux parties, après reparamétrisation à l'aide d'entrées centrées: chacuneXj(i) est remplacé par Xj(i)xj¯. Nous estimons θ0 par y¯=1mi=1my(i) Les coefficients restants sont estimés par une régression de crête sans interception, en utilisant le centré Xj(i). Nous supposons désormais que ce centrage a été effectué, de sorte que la matrice d'entréeX a n (plutôt que n+1) Colonnes.

Bien que je me demande pourquoi The Elements of Statistical Learning suggère d'abord la standardisation des fonctionnalités et que seul le centrage des fonctionnalités est effectué. Peut-être d'accord avec l'exercice 3.5 qui utilise uniquement le centrage des fonctionnalités.

Quoi qu'il en soit, je pense qu'il est juste d'appliquer la standardisation z-score aux fonctionnalités. J'essaie donc maintenant de résoudre la dérivée de la fonction de coût de la régression de crête en suivant la suggestion de l'amibe commentateur ci-dessus. Merci beaucoup à lui!

Tout d'abord, la fonction de coût:

θJ(θ)=12i=1m(yiθ0X1(i)X1¯σ1θ1X2(i)X2¯σ2θ2...Xn(i)Xn¯σnθn)2+λj=1nθj2,
Xj¯ est la moyenne de l'attribut Xj et σj est l'écart type de Xj. Pour le raccourcir:
θJ(θ)=12i=1m(yiθ0j=1nXj(i)Xj¯σjθj)2+λj=1nθj2
Maintenant, nous calculons d'abord la valeur de θ0 dans l'expression ci-dessus en définissant la dérivée par rapport à θ0égal à zéro. Depuisλj=1nθj2 n'a pas θ0, on a:
θ0J(θ)=i=1m(yiθ0j=1nXj(i)Xj¯σjθj)=0
C'est:
i=1m(yiθ0)i=1mj=1nXj(i)Xj¯σjθj=0
Comme
i=1mj=1nXj(i)Xj¯σjθj=0
(parce que Xj¯ est la moyenne de l'attribut Xj ), nous avons donc maintenant
i=1m(yiθ0)=0,
évidemment:
θ0=y¯=1mi=1my(i)

Ainsi, l'ordonnée à l'origine de la régression de crête normalisée est toujours y¯. Par conséquent, si nous centralisons d'abordY en soustrayant sa moyenne (obtenir (yi) pour l'exemple de données i), ne pas inclure toutes les 1 colonne dans X, puis effectuez la normalisation sur X (avoir (Xj(i)) pour Xj d'exemple de données i) , la fonction de coût sera simplement

θJ(θ)=12i=1m((yi)j=1n(Xj(i))θj)2+λj=1nθj2
C'est
θJ(θ)=12XθYTXθY+λ(θ)Tθ,
θ=[θ1θ2...θn], X n'a pas toutes 1 colonne et normalisé de X, Y est centré par rapport à Y. Maintenantθ (sans pour autant θ0) peut être résolu avec:
θ=((X)TX+λI)1(X)TY
Pour les entités normalisées, le modèle linéaire sera
y=y¯+θ1X1+θ2X2+...+θnXn(1),
Xi=XiXi¯σi(2)
Si nous utilisons (2) dans (1) comme suggéré dans la réponse de Plasty Grove . Ainsi, pour les données d'entrée d'origine, le modèle linéaire sera
y=y¯+X1X1¯σ1θ1+X2X2¯σ2θ2+...+XnXn¯σnθn
C'est
y=θ1σ1X1+θ2σ2X2+...+θnσnXn+y¯X1¯σ1θ1X2¯σ2θ2...Xn¯σnθn
C'est pourquoi après avoir résolu des coefficients d'entités normalisées, pour renvoyer des données d'entrée de coefficients d'origine (entités non normalisées), nous devons retourner θi/σi
Naomi
la source
Bel exemple détaillé. Quelques commentaires: vous commentez l'effet du centrageY, mais pour omettre un terme d'interception et obtenir des estimations correctes, il faut centrer Xfonctionnalités aussi bien. Cependant, je suis d'accord que cet exemple est d'accord avec la justification de ne pas pénaliser le terme d'interception (pour obtenir une inférence cohérente). Deuxièmement, l'intuition devrait servir à quelque chose ici. Nous acceptons tous que prédireY par sa moyenne est semblable à un modèle de paramètre 0, donc pour obtenir l'effet additif de X dans le modèle, il ne faut pas pénaliser le terme qui capte simplement l'effet Y moyen en présence de X.
AdamO