No livro de Bishop sobre aprendizado de máquina, ele discute o problema de ajustar uma função polinomial a um conjunto de pontos de dados.
Seja M a ordem do polinômio ajustado. Ele afirma que
Vemos que, à medida que M aumenta, a magnitude dos coeficientes geralmente aumenta. Em particular para o polinômio M = 9, os coeficientes foram ajustados com os dados, desenvolvendo grandes valores positivos e negativos, de modo que a função polinomial correspondente corresponda exatamente a cada um dos pontos de dados, mas entre os pontos de dados (principalmente perto dos fins do faixa) a função exibe grandes oscilações.
Não entendo por que valores grandes implicam um ajuste mais próximo dos pontos de dados. Eu pensaria que os valores se tornariam mais precisos após o decimal para um melhor ajuste.
fonte
Respostas:
Esse é um problema conhecido com polinômios de alta ordem, conhecido como fenômeno de Runge . Numericamente, está associado ao mau condicionamento da matriz de Vandermonde , que torna os coeficientes muito sensíveis a pequenas variações nos dados e / ou arredondamentos nos cálculos (ou seja, o modelo não é identificável de maneira estável ). Veja também esta resposta no SciComp SE.
Existem muitas soluções para esse problema, por exemplo , aproximação de Chebyshev , splines de suavização e regularização de Tikhonov . A regularização de Tikhonov é uma generalização da regressão de crista , penalizando uma norma do vetor de coeficiente θ , onde para suavizar a matriz de pesos Λ é algum operador derivado. Para penalizar as oscilações, você pode usar Λ θ = p ′ ′ [ x ] , onde p [ x ]| | Ganhe muitosq] | | θ Λ Λ θ = p′ ′[ x ] p[x] é o polinômio avaliado nos dados.
EDIT: A resposta por notas utilizador hxd1011 que algumas das numéricos problemas mal-condicionado podem ser resolvidos usando polinômios ortogonais, o que é um ponto bom. Eu observaria, no entanto, que os problemas de identificação com polinômios de alta ordem ainda permanecem. Ou seja, o mau condicionamento numérico está associado à sensibilidade a perturbações "infinitesimais" (por exemplo, arredondamento), enquanto o mau condicionamento "estatístico" diz respeito à sensibilidade a perturbações "finitas" (por exemplo, valores extremos; o problema inverso está mal colocado ).
Os métodos mencionados no meu segundo parágrafo dizem respeito a essa sensibilidade externa . Você pode pensar nessa sensibilidade como uma violação do modelo de regressão linear padrão, que ao usar um desajuste de pressupõe implicitamente que os dados são gaussianos. A regularização de splines e Tikhonov lida com essa sensibilidade externa, impondo uma suavidade antes do ajuste. A aproximação de Chebyshev lida com isso usando umL2 desajuste aplicadasobre o domínio contínuo, isto é, não apenas nos pontos de dados. Embora os polinômios de Chebyshev sejam ortogonais (com base em um determinado produto interno ponderado), acredito que, se usados com umdesajuste de L 2 sobre os dados,ainda assimL∞ L2 tem sensibilidade externa.
fonte
A primeira coisa que você deseja verificar é se o autor está falando sobre polinômios brutos vs. polinômios ortogonais .
Para polinômios ortogonais. o coeficiente não está ficando "maior".
Aqui estão dois exemplos de expansão polinomial de 2ª e 15ª ordem. Primeiro, mostramos o coeficiente para a expansão de 2ª ordem.
Então nós mostramos a 15ª ordem.
Note que estamos usando polinômios ortogonais ; portanto, o coeficiente da ordem inferior é exatamente o mesmo que os termos correspondentes nos resultados da ordem superior. Por exemplo, a interceptação e o coeficiente para a primeira ordem são 20,09 e -29,11 para ambos os modelos.
fonte
summary(lm(mpg~poly(wt,2),mtcars)); summary(lm(mpg~poly(wt,5),mtcars)); summary(lm(mpg~ wt + I(wt^2),mtcars)); summary(lm(mpg~ wt + I(wt^2) + I(wt^3) + I(wt^4) + I(wt^5),mtcars))
poly(x,2,raw=T)
summary(lm(mpg~poly(wt,15, raw=T),mtcars))
. Efeito maciço nos coeficientes!Abhishek, você está certo de que melhorar a precisão dos coeficientes aumentará a precisão.
Eu acho que a questão da magnitude é bastante irrelevante para o argumento geral de Bishop - que o uso de um modelo complicado com dados limitados leva a um "ajuste excessivo". No exemplo dele, 10 pontos de dados são usados para estimar um polinômio de 9 dimensões (ou seja, 10 variáveis e 10 incógnitas).
Se ajustarmos uma onda senoidal (sem ruído), o ajuste funcionará perfeitamente, pois as ondas senoidais [em um intervalo fixo] podem ser aproximadas com precisão arbitrária usando polinômios. No entanto, no exemplo de Bishop, temos uma certa quantidade de "ruído" que não devemos caber. A maneira como fazemos isso é mantendo o número de pontos de dados em relação ao número de variáveis do modelo (coeficientes polinomiais) grandes ou usando a regularização.
A regularização impõe restrições "suaves" ao modelo (por exemplo, na regressão de crista), a função de custo que você tenta minimizar é uma combinação de "erro de ajuste" e complexidade do modelo: por exemplo, na regressão de crista, a complexidade é medida pela soma dos coeficientes quadrados. efeito, isso impõe um custo na redução de erros - o aumento dos coeficientes só será permitido se houver uma redução grande o suficiente no erro de ajuste [quão grande é o tamanho suficiente é especificado por um multiplicador no termo de complexidade do modelo]. Portanto, a esperança é que, escolhendo o multiplicador apropriado, não nos ajustemos a termos adicionais de ruído pequeno, uma vez que a melhoria no ajuste não justifica o aumento dos coeficientes.
Você perguntou por que coeficientes grandes melhoram a qualidade do ajuste. Essencialmente, o motivo é que a função estimada (sin + ruído) não é um polinômio, e as grandes alterações na curvatura necessárias para aproximar o efeito do ruído com polinômios exigem grandes coeficientes.
Observe que o uso de polinômios ortogonais não tem efeito (adicionei um deslocamento de 0,1 apenas para que os polinômios ortogonais e brutos não fiquem em cima um do outro)
fonte