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?
fonte
Respostas:
No contexto da regularização, um coeficiente "grande" significa que a magnitude da estimativa é maior do que teria sido se uma especificação de modelo fixo tivesse sido usada. É o impacto de obter não apenas as estimativas, mas também a especificação do modelo, a partir dos dados.
Considere o que um procedimento como a regressão gradual fará para uma determinada variável. Se a estimativa de seu coeficiente for pequena em relação ao erro padrão, ela será descartada do modelo. Isso pode ocorrer porque o valor verdadeiro é realmente pequeno ou simplesmente devido a um erro aleatório (ou uma combinação dos dois). Se cair, não prestamos mais atenção. Por outro lado, se a estimativa for grande em relação ao seu erro padrão, ela será retida. Observe o desequilíbrio: nosso modelo final rejeitará uma variável quando a estimativa do coeficiente for pequena, mas a manteremos quando a estimativa for grande. Portanto, é provável que superestimemos seu valor.
Em outras palavras, o que significa excesso de ajuste é que você está exagerando o impacto de um determinado conjunto de preditores na resposta. Mas a única maneira de superestimar o impacto é se os coeficientes estimados forem muito grandes (e, inversamente, as estimativas para seus preditores excluídos são muito pequenas).
O que você deve fazer é incorporar ao seu experimento um procedimento de seleção de variáveis, por exemplo, regressão passo a passoβ3 β10 são sistematicamente grandes demais, quando comparadas com a não seleção de variáveis. Os procedimentos de regularização visam corrigir ou mitigar esse problema.
step
. Em seguida, repita seu experimento várias vezes, em diferentes amostras aleatórias e salve as estimativas. Você deve achar que todas as estimativas dos coeficientes a β 10Aqui está um exemplo do que estou falando.
Compare isso com o que acontece quando você não usa a seleção de variáveis e apenas encaixa tudo às cegas. Embora ainda exista algum erro nas estimativas de a β 10β3 β10 , o desvio médio é muito menor.
fonte
step
) do que no seu segundo experimento (valores de ajuste "cegos"). Isso não é contrário ao que você estava sugerindo que deveria acontecer?poly
(acho que não)?Uma resposta muito simples, sem examinar seus detalhes: quando você está ajustando demais, os estimadores de parâmetros tendem a obter grandes variações e, com grandes variações, grandes valores são exatamente o que você deve esperar!
fonte
David. Acho que o problema com o seu exemplo é que você não normalizou seus dados (ou seja, X ^ 10 >> X.
Então, David está certo que diminui ainda mais os coeficientes maiores (para que você possa acabar com muitos coeficientes pequenos, enquanto a regularização L1 pode fornecer um grande e o restante zero)
então basicamente está encapsulando que pequenas mudanças devem ter pequenos efeitos (e, é claro, voltamos à questão de quão pequena é pequena - normalizando seus dados etc.). Mas o principal está nas dimensões mais altas, nas quais a correlação entra em jogo: imagine que você tem duas variáveis x, y que são altamente correlacionadas (ambas normalizadas para a variação 1), então a diferença delas será pequena = "ruído" - penalizando grandes pesos, portanto, evite que você se ajuste a esse ruído (e obtenha coeficientes de cancelamento quase muito grandes para y e x).
O exemplo ainda vale para qualquer relação linear (y = mx)
procure regressão de cume
fonte
Esta imagem é da minha anotação do curso de DL de Andrew Ng, por favor me avise se você tiver alguma dúvida
fonte