Me imagino que cuanto mayor es el coeficiente de una variable, más capacidad tiene el modelo para "oscilar" en esa dimensión, lo que brinda una mayor oportunidad de ajustar el ruido. Aunque creo que tengo un sentido razonable de la relación entre la varianza en el modelo y los coeficientes grandes, no tengo un buen sentido de por qué ocurren en los modelos sobreajustados. ¿Es incorrecto decir que son un síntoma de sobreajuste y la reducción del coeficiente es más una técnica para reducir la varianza en el modelo? La regularización a través de la reducción del coeficiente parece funcionar según el principio de que los coeficientes grandes son el resultado de un modelo sobreajustado, pero tal vez estoy malinterpretando la motivación detrás de la técnica.
Mi intuición de que los coeficientes grandes son generalmente un síntoma de sobreajuste proviene del siguiente ejemplo:
Digamos que queríamos ajustar puntos que todos se sientan 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 proporciona todos los coeficientes> = 10 (excepto un coeficiente). A medida que agreguemos más puntos (y así aumentemos el grado del polinomio), la magnitud de estos coeficientes aumentará rápidamente.
Este ejemplo es cómo 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 estéril para ser realmente indicativo del comportamiento del mundo real. Deliberadamente construí un modelo sobreajustado (un ajuste OLS polinomial de décimo grado en los datos generados a partir de un modelo de muestreo cuadrático) y me sorprendió ver coeficientes en su mayoría 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
Quizás la conclusión de este ejemplo es que dos tercios de los coeficientes son menores que 1, y en relación con los otros coeficientes , hay tres coeficientes que son inusualmente grandes (y las variables asociadas con estos coeficientes también son las más cercanas relacionado con el verdadero modelo de muestreo).
¿Es la regularización (L2) solo un mecanismo para disminuir la varianza en un modelo y, por lo tanto, "suavizar" la curva para que se ajuste mejor a los datos futuros, o se está aprovechando de una heurística derivada de la observación de que los modelos sobreajustados tienden a exhibir coeficientes grandes? ¿Es una afirmación precisa de que los modelos sobreajustados tienden a exhibir coeficientes grandes? Si es así, ¿alguien puede explicar un poco el mecanismo detrás del fenómeno y / o dirigirme a alguna literatura?
fuente
Respuestas:
En el contexto de regularización, un coeficiente "grande" significa que la magnitud de la estimación es mayor de lo que hubiera sido, si se hubiera utilizado una especificación de modelo fija . Es el impacto de obtener no solo las estimaciones, sino también la especificación del modelo, a partir de los datos.
Considere qué hará un procedimiento como la regresión por pasos para una variable dada. Si la estimación de su coeficiente es pequeña en relación con el error estándar, se eliminará del modelo. Esto podría deberse a que el valor verdadero es realmente pequeño, o simplemente debido a un error aleatorio (o una combinación de ambos). Si se cae, ya no le prestamos atención. Por otro lado, si la estimación es grande en relación con su error estándar, se mantendrá. Observe el desequilibrio: nuestro modelo final rechazará una variable cuando el coeficiente estimado sea pequeño, pero lo mantendremos cuando el estimado sea grande. Por lo tanto, es probable que sobreestimemos su valor.
Dicho de otra manera, lo que significa sobreajustar es exagerar el impacto de un conjunto determinado de predictores en la respuesta. Pero la única forma en que puede exagerar el impacto es si los coeficientes estimados son demasiado grandes (y, por el contrario, las estimaciones para sus predictores excluidos son demasiado pequeñas).
step
Aquí hay un ejemplo de lo que estoy hablando.
fuente
step
) que en su segundo experimento (valores de ajuste "a ciegas"). ¿No es esto contrario a lo que sugerías que debería suceder?poly
(supongo que no)?Una respuesta muy simple sin analizar sus detalles: cuando está sobreajustando, los estimadores de parámetros tienden a obtener grandes variaciones, y con grandes variaciones, ¡los valores grandes son justo lo que debe esperar!
fuente
David Creo que el problema con su ejemplo es que no ha normalizado sus datos (es decir, X ^ 10 >> X.
Entonces, David tiene razón, ya que reduce más los coeficientes más grandes (por lo que puede terminar con muchos coeficientes pequeños, mientras que la regularización L1 podría darle uno grande y el resto cero)
así que básicamente es encapsular que los pequeños cambios deberían tener pequeños efectos (y, por supuesto, volvemos a la cuestión de cuán pequeño es pequeño: normalizar sus datos, etc.). Pero la clave está en las dimensiones más altas, donde la correlación entra en juego: imagine que tiene dos variables x, y que están altamente correlacionadas (ambas normalizadas a la varianza 1), entonces su diferencia será pequeña = "ruido" - penalizar grandes pesos por lo tanto evite que se ajuste a este ruido (y obtenga coeficientes de cancelación casi muy grandes para y y x).
El ejemplo aún se cumple para cualquier relación lineal (y = mx)
buscar regresión de cresta
fuente
Esta imagen es de mi nota del curso DL de Andrew Ng, por favor avíseme si tiene alguna pregunta
fuente