Imagino que quanto maior o coeficiente de uma variável, maior a capacidade do modelo de "girar" nessa dimensão, proporcionando uma oportunidade maior de ajustar o ruído. Embora eu ache que tenho um senso razoável da relação entre a variação no modelo e os coeficientes grandes, não tenho uma noção tão boa do por que eles ocorrem em modelos com excesso de ajuste. É incorreto dizer que eles são um sintoma de sobreajuste e que o encolhimento por coeficiente é mais uma técnica para reduzir a variação no modelo? A regularização por meio de retração de coeficiente parece operar com o princípio de que coeficientes grandes são o resultado de um modelo com excesso de ajuste, mas talvez eu esteja interpretando mal a motivação por trás da técnica.
Minha intuição de que grandes coeficientes são geralmente um sintoma de sobreajuste vem do seguinte exemplo:
Digamos que queríamos ajustar pontos que estão todos no eixo x. Podemos facilmente construir um polinômio cujas soluções são os seguintes pontos: . Digamos que nossos pontos estejam em . Esta técnica fornece todos os coeficientes> = 10 (exceto um coeficiente). À medida que adicionamos mais pontos (e, portanto, aumentamos o grau do polinômio), a magnitude desses coeficientes aumentará rapidamente.
Este exemplo é como atualmente estou conectando o tamanho dos coeficientes do modelo à "complexidade" dos modelos gerados, mas estou preocupado que este caso seja estéril para realmente ser um indicativo do comportamento do mundo real. Eu construí deliberadamente um modelo com excesso de ajustes (um OLS polinomial de 10º que se encaixa nos dados gerados a partir de um modelo de amostragem quadrática) e fiquei surpreso ao ver principalmente pequenos coeficientes no meu modelo:
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
Talvez a conclusão deste exemplo seja que dois terços dos coeficientes são menores que 1 e, em relação aos outros coeficientes , existem três coeficientes extraordinariamente grandes (e as variáveis associadas a esses coeficientes também são as mais próximas relacionados ao verdadeiro modelo de amostragem).
A regularização (L2) é apenas um mecanismo para diminuir a variação de um modelo e, assim, "suavizar" a curva para melhor se ajustar aos dados futuros, ou está tirando proveito de uma heurística derivada da observação de que modelos superdotados tendem a exibir grandes coeficientes? É uma afirmação precisa de que os modelos superalimentados tendem a exibir grandes coeficientes? Nesse caso, alguém talvez possa explicar um pouco o mecanismo por trás do fenômeno e / ou me direcionar para alguma literatura?