(Pourquoi) les modèles suralimentés ont-ils tendance à avoir des coefficients élevés?

33

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 , 4nF(X)=(X-X1)(X-X2)....(X-Xn-1)(X-Xn)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?

David Marx
la source
4
Qu'entendez-vous exactement par "grand" coefficient? Après tout, si nous modifions simplement les unités dans lesquelles nous exprimons la variable dépendante (par exemple de parsecs en femtomètres), nous pouvons rendre les coefficients arbitrairement grands ou petits.
whuber
1
Je n'ai pas de bonne réponse à cela. Je croyais comprendre qu'attaquer de "gros" coefficients était une heuristique motivante derrière la régularisation de L2. Mais pour augmenter synthétiquement la magnitude des coefficients, il faudrait également changer la constante de régularisation pour compenser la magnitude différente dans le modèle actuel, n'est-ce pas? Je ne pense pas que la notion de «grande taille» soit aussi ambiguë que vous la donnez, même si je ne peux pas la décrire très bien.
David Marx
@ DavidMarx: Je ne pense pas que la régularisation de la L2 aille après les "gros" coefficients, n'est-ce pas? Il a plutôt tendance à pousser des coefficients qui n'étaient probablement pas relativement grands à zéro, ce qui vous oblige dans un sens à choisir plutôt qu'à trouver un compromis entre les deux.
Wayne
@wayne ah, je pense que je l'ai eu à l'envers. J'avais pensé que cela réduisait les coefficients plus grands ou tous les coefficients proportionnellement. Cela aurait plus de sens si la régularisation de L2 excluait les variables avec des coefficients plus petits du modèle.
David Marx
1
Après 8 modifications, je pense avoir ma réponse. Sheesh.
Hong Ooi

Réponses:

15

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β3βdix

Voici un exemple de ce dont je parle.

repeat.exp <- function(M)
{
    x <- seq(-2, 2, len=25)
    px <- poly(x, 10)
    colnames(px) <- paste0("x", 1:10)
    out <- setNames(rep(NA, 11), c("(Intercept)", colnames(px)))
    sapply(1:M, function(...) {
        y <- x^2 + rnorm(N, s=2)
        d <- data.frame(px, y)
        b <- coef(step(lm(y ~ x1, data=d), y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10, trace=0))
        out[names(b)] <- b
        out
    })
}

set.seed(53520)
z <- repeat.exp(M=1000)

# some time later...
rowMeans(abs(z), na.rm=TRUE)

(Intercept)          x1          x2          x3          x4          x5          x6          x7          x8          x9         x10 
   1.453553    3.162100    6.533642    3.108974    3.204341    3.131208    3.118276    3.217231    3.293691    3.149520    3.073062 

β3βdix

repeat.exp.base <- function(M)
{
    x <- seq(-2, 2, len=25)
    px <- poly(x, 10)
    colnames(px) <- paste0("x", 1:10)
    out <- setNames(rep(NA, 11), c("(Intercept)", colnames(px)))
    sapply(1:M, function(...) {
        y <- x^2 + rnorm(N, s=2)
        d <- data.frame(px, y)
        b <- coef(lm(y ~ ., data=d))
        out[names(b)] <- b
        out
    })
}

set.seed(53520)
z2 <- repeat.exp.base(M=1000)

rowMeans(abs(z2))
(Intercept)          x1          x2          x3          x4          x5          x6          x7          x8          x9         x10 
   1.453553    1.676066    6.400629    1.589061    1.648441    1.584861    1.611819    1.607720    1.656267    1.583362    1.556168 

β1β2

Hong Ooi
la source
Je suis un peu confus par votre exemple modifié. Vous dites que "vous devriez trouver que toutes les estimations des coefficients β3 à β10 sont systématiquement trop grandes par rapport à l'absence de sélection de variable", mais il semble que vous ayez obtenu des valeurs plus grandes dans votre première expérience (avec step) que dans votre deuxième expérience. (valeurs "aveuglément" appropriées). N'est-ce pas contraire à ce que vous suggérez?
David Marx
De plus, vous et d'autres personnes ici avez suggéré que je devrais normaliser les variables dans mon exemple. Je vois le raisonnement, mais je ne connais pas de bonne façon de le faire. Devrais-je améliorer mes exemples de données pour inclure des colonnes pour chaque puissance de X et normaliser ces valeurs? Ou y a-t-il un moyen de normaliser les variables directement dans ma formule de modèle où j'appelle poly(je suppose que non)?
David Marx
? Vous obtenez des écarts absolus plus importants lorsque vous utilisez pas à pas, par rapport à ne pas utiliser pas à pas. Je ne sais pas ce que vous demandez. En ce qui concerne la normalisation: inutile si vous le faites comme je l’ai indiqué, c’est-à-dire qu’il faut comparer l’approche par étapes et par étapes. Chaque variable est comparée d’un traitement à l’autre plutôt que d’autres variables.
Hong Ooi
6

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!

kjetil b halvorsen
la source
Si je vous ai bien compris, cela expliquerait pourquoi le modèle prédit des valeurs "élevées", et non pas pourquoi il serait composé de "grands" coefficients.
David Marx
Non, c'est faux! Au moins certains des estimateurs de coefficients individuels auront des variances importantes, de sorte que les valeurs estimées de ces coefficients auront tendance à être grandes. (d’ailleurs, même en cas de surajustement, certains coefficients pourraient être stables, mais pas tous). De plus, pour conserver la propriété de prédiction de non-biais, il y aura généralement d'importantes covariances négatives entre les estimateurs de coefficients indépendants.
kjetil b halvorsen
1
Cela ne répond pas complètement à la question, cependant. S'il ne s'agissait que de grandes variances, vous obtiendrez de petites estimations aussi souvent que de grandes estimations (de manière informelle). Le problème vient du fait que nous supposons que les petites estimations (par rapport à leurs erreurs standard) ne sont "pas importantes" et abandonnons ces variables du modèle. En conséquence, les seules estimations restantes seront les grandes.
Hong Ooi
0

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

seanv507
la source
1
david pourquoi ne pas refaire l’exemple en normalisant toutes les variables x, x ^ 2, ..., x ^ n à la moyenne nulle et à l’écart type 1, puis voir les résultats que vous obtenez ... ce n’est pas très étonnant que votre les coefficients sont petits quand vos variables d'entrée sont grandes
seanv507
0

démonstration démultipliée

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.

Pradi KL
la source
1
Pouvez-vous expliquer pourquoi vous pensez que cette note sur la régularisation du réseau de neurones répond à la question sur la taille des coefficients et le surajustement?
whuber
la régularisation tente de prévenir les 3 surdosage liés et tente de pénaliser un coefficient élevé en raison de la raison ci
Pradi KL