Imagino que cuanto mayor es el coeficiente de una variable, más capacidad tiene el modelo de "oscilar" en esa dimensión, lo que proporciona una mayor oportunidad de ajustar el ruido. Aunque creo que tengo una idea razonable de la relación entre la varianza del modelo y los coeficientes grandes, no tengo una idea tan clara de por qué se producen en los modelos de sobreajuste. ¿Es incorrecto decir que son un síntoma de sobreajuste y que la reducción de coeficientes es más bien una técnica para reducir la varianza del modelo? La regularización a través de la reducción de coeficientes parece funcionar según el principio de que los coeficientes grandes son el resultado de un modelo sobreajustado, pero quizás estoy interpretando mal la motivación de la técnica.
Mi intuición de que los coeficientes grandes suelen ser un síntoma de sobreajuste proviene del siguiente ejemplo:
Digamos que queremos encajar $n$ puntos que se sitúan en el eje x. Podemos construir fácilmente un polinomio cuyas soluciones son estos puntos: $f(x) = (x-x_1)(x-x_2)....(x-x_{n-1})(x-x_n)$ . Digamos que nuestros puntos están en $x=1,2,3,4$ . Esta técnica da todos los coeficientes >= 10 (excepto un coeficiente). A medida que añadimos más puntos (y por tanto aumentamos el grado del polinomio) la magnitud de estos coeficientes aumentará rápidamente.
Este ejemplo es la forma en que actualmente estoy conectando el tamaño de los coeficientes del modelo con la "complejidad" de los modelos generados, pero me preocupa que este caso sea demasiado estéril para ser realmente indicativo del comportamiento del mundo real. Construí deliberadamente un modelo sobreajustado (un ajuste OLS polinómico de 10º grado sobre datos generados a partir de un modelo de muestreo cuadrático) y me sorprendió ver coeficientes mayoritariamente pequeños en mi 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
Tal vez la conclusión de este ejemplo sea que dos tercios de los coeficientes son inferiores a 1, y en relación con los demás coeficientes En el caso de la muestra, hay tres coeficientes que son inusualmente grandes (y las variables asociadas a estos coeficientes también resultan ser las más relacionadas con el verdadero modelo de muestreo).
¿Es la regularización (L2) sólo un mecanismo para disminuir la varianza de un modelo y, por tanto, "suavizar" la curva para que se ajuste mejor a los datos futuros, o se aprovecha de una heurística derivada de la observación de que los modelos sobreajustados tienden a presentar coeficientes grandes? ¿Es una afirmación exacta que los modelos sobreajustados tienden a presentar coeficientes grandes? Si es así, ¿podría alguien explicar un poco el mecanismo que hay detrás del fenómeno y/o dirigirme a alguna bibliografía?
5 votos
¿Qué quiere decir exactamente con un coeficiente "grande"? Al fin y al cabo, si nos limitamos a cambiar las unidades en las que expresamos la variable dependiente (como por ejemplo, de parsecs a femtómetros) podemos hacer que los coeficientes tengan un valor arbitrariamente grande o pequeño.
2 votos
No tengo una buena respuesta para eso. Tenía entendido que atacar los coeficientes "grandes" era una heurística que motivaba la regularización L2. Pero aumentar sintéticamente la magnitud de los coeficientes requeriría también cambiar la constante de regularización para compensar la diferente magnitud en el modelo ahora, ¿no? No creo que la noción de "grande" aquí sea tan ambigua como la haces parecer, aunque no pueda caracterizarla muy bien.
0 votos
@DavidMarx: No creo que la regularización L2 vaya a por los coeficientes "grandes", ¿verdad? Más bien tiende a empujar a cero los coeficientes que probablemente no eran comparativamente grandes, en cierto sentido forzándote a elegir en lugar de encontrar un compromiso entre los dos.
0 votos
@wayne ah, creo que lo tenía al revés. Había pensado que encogía los coeficientes más grandes o encogía todos los coeficientes proporcionalmente. Eso tendría más sentido si la regularización L2 empujara las variables con coeficientes más pequeños fuera del modelo.
1 votos
@wayne referencia la diapositiva 19 aquí: web.as.uky.edu/statistics/users/pbreheny/764-F11/notes/9-1.pdf A juzgar por las trayectorias de los coeficientes en este ejemplo, parece que los coeficientes que están cerca de 0 en el modelo no regularizado cambian poco a medida que cambia el parámetro de regularización, mientras que los coeficientes que son "grandes" son empujados a 0 mucho más rápido que los otros coeficientes. No creo que esté leyendo esto incorrectamente como una técnica de regularización que se dirige principalmente a los coeficientes más grandes del modelo, reduciéndolos más/rápidamente que los otros coeficientes.
1 votos
Sí, lo tenía al revés, lo siento. Parece que veo mucho la "L1-regularización", pero rara vez la "L2-regularización", con la detección comprimida, el lazo, etc. Es culpa mía.
2 votos
Después de 8 ediciones, creo que tengo mi respuesta. Caramba.