J'imagine que plus le coefficient d'une variable est grand, plus le modèle doit pouvoir "basculer" dans cette dimension, ce qui augmente les possibilités d'adaptation au bruit. Bien que je pense avoir une idée raisonnable de la relation entre la variance dans le modèle et les coefficients élevés, je ne comprends pas aussi bien pourquoi ils se produisent dans des modèles surévalués. Est-il incorrect de dire qu'ils sont un symptôme de surajustement, et que le coefficient de contraction est plus une technique permettant de réduire la variance dans le modèle? La régularisation par réduction de coefficient semble reposer sur le principe que les coefficients élevés sont le résultat d’un modèle suréquipé, mais j’interprète peut-être mal la motivation de la technique.
Mon intuition que des coefficients élevés soient généralement un symptôme de surajustement provient de l'exemple suivant:
Disons que nous voulions ajuster points qui se situent tous sur l'axe des x. Nous pouvons facilement construire un polynôme dont les solutions sont les points suivants: . Disons que nos points sont à . Cette technique donne tous les coefficients> = 10 (sauf un coefficient). Au fur et à mesure que nous ajouterons plus de points (et augmenterons ainsi le degré du polynôme), la magnitude de ces coefficients augmentera rapidement.f ( x ) = ( x - x 1 ) ( x - x 2 ) . . . . ( x - x n - 1 ) ( x - x n ) x = 1 , 2 , 3 , 4
Cet exemple montre comment je relie actuellement la taille des coefficients de modèle à la "complexité" des modèles générés, mais je crains que ce cas ne soit trop stérile pour véritablement indiquer un comportement réel. J'ai délibérément construit un modèle suréquipé (un ajustement MLS polynomial au 10ème degré sur des données générées à partir d'un modèle d'échantillonnage quadratique) et j'ai été surpris de voir la plupart du temps de petits coefficients dans mon modèle:
set.seed(123)
xv = seq(-5,15,length.out=1e4)
x=sample(xv,20)
gen=function(v){v^2 + 7*rnorm(length(v))}
y=gen(x)
df = data.frame(x,y)
model = lm(y~poly(x,10,raw=T), data=df)
summary(abs(model$coefficients))
# Min. 1st Qu. Median Mean 3rd Qu. Max.
# 0.000001 0.003666 0.172400 1.469000 1.776000 5.957000
data.frame(sort(abs(model$coefficients)))
# model.coefficients
# poly(x, 10, raw = T)10 7.118668e-07
# poly(x, 10, raw = T)9 3.816941e-05
# poly(x, 10, raw = T)8 7.675023e-04
# poly(x, 10, raw = T)7 6.565424e-03
# poly(x, 10, raw = T)6 1.070573e-02
# poly(x, 10, raw = T)5 1.723969e-01
# poly(x, 10, raw = T)3 6.341401e-01
# poly(x, 10, raw = T)4 8.007111e-01
# poly(x, 10, raw = T)1 2.751109e+00
# poly(x, 10, raw = T)2 5.830923e+00
# (Intercept) 5.956870e+00
On retiendra peut-être de cet exemple que deux tiers des coefficients sont inférieurs à 1 et que, par rapport aux autres coefficients , il existe trois coefficients anormalement élevés (et les variables associées à ces coefficients sont également celles qui sont le plus proches). liés au modèle d'échantillonnage réel).
La régularisation (L2) est-elle simplement un mécanisme permettant de réduire la variance dans un modèle et ainsi "lisser" la courbe afin de mieux ajuster les données futures, ou tire-t-il parti d'une heuristique dérivée de l'observation selon laquelle les modèles surchargés tendent à afficher des coefficients élevés? Est-ce une affirmation précise que les modèles suralimentés ont tendance à présenter des coefficients élevés? Dans l’affirmative, peut-on expliquer un peu le mécanisme à l’origine du phénomène et / ou me diriger vers des ouvrages?
la source
Réponses:
Dans le contexte de la régularisation, un "grand" coefficient signifie que la magnitude de l'estimation est supérieure à ce qu'elle aurait été si une spécification de modèle fixe avait été utilisée. C'est l'impact d'obtenir non seulement les estimations, mais aussi les spécifications du modèle, à partir des données.
Considérez ce qu'une procédure comme une régression par étapes fera pour une variable donnée. Si l'estimation de son coefficient est faible par rapport à l'erreur type, il sera supprimé du modèle. Cela peut être dû au fait que la valeur réelle est vraiment petite ou simplement à une erreur aléatoire (ou à une combinaison des deux). Si elle est abandonnée, nous n'y prêtons plus attention. Par contre, si l'estimation est grande par rapport à son erreur type, elle sera conservée. Notez le déséquilibre: notre modèle final rejettera une variable lorsque l'estimation du coefficient est petite, mais nous la conserverons lorsque l'estimation est grande. Nous risquons donc de surestimer sa valeur.
En d'autres termes, surexploitation signifie que vous surestimez l'impact d'un ensemble donné de prédicteurs sur la réponse. Mais le seul moyen de surestimer l'impact est si les coefficients estimés sont trop grands (et inversement, les estimations pour vos prédicteurs exclus sont trop petites).
step
Voici un exemple de ce dont je parle.
la source
step
) que dans votre deuxième expérience. (valeurs "aveuglément" appropriées). N'est-ce pas contraire à ce que vous suggérez?poly
(je suppose que non)?Une réponse très simple sans regarder dans les détails: quand vous surévaluez, les estimateurs de paramètres ont tendance à avoir des variances importantes, et avec de grandes variances, de grandes valeurs sont exactement ce à quoi vous devriez vous attendre!
la source
David. Je pense que le problème de votre exemple est que vous n’avez pas normalisé vos données (c.-à-d. X ^ 10 >> X.
David a donc raison de réduire davantage les coefficients les plus grands (vous pouvez donc vous retrouver avec beaucoup de petits coefficients, alors que la régularisation de L1 peut vous en donner un grand et le zéro, le reste)
donc, fondamentalement, il est clair que de petits changements devraient avoir de petits effets (et bien sûr, nous revenons à la question de savoir à quel point il est petit - normaliser vos données, etc.). Mais l’essentiel est dans les dimensions supérieures, où la corrélation entre en jeu: imaginez que vous ayez deux variables x, y hautement corrélées (toutes les deux normalisées à la variance 1), leur différence sera donc petite = "bruit" - ce qui pénalise les poids élevés. vous empêcher de vous adapter à ce bruit (et d'obtenir de très grands coefficients d'annulation presque pour y et x).
L'exemple reste valable pour toute relation linéaire (y = mx)
rechercher la régression de crête
la source
Cette image est tirée de ma note du cours de DL d'Andrew Ng, merci de me faire savoir si vous avez des questions.
la source