Algoritmo de Gauss-Newton

Fonte: testwiki
Saltar para a navegação Saltar para a pesquisa

O algoritmo de Gauss-Newton é um método usado para resolver problemas de mínimos quadrados não lineares. Ele pode ser visto como uma modificação do Método de Newton para achar o mínimo de uma função. Diferentemente do Método de Newton, o Algoritmo de Gauss-Newton apenas pode ser usado para minimizar uma soma dos valores quadrados da função, mas tem a vantagem de que as derivadas segundas, que podem ser difíceis de calcular, não são necessárias.

Problemas de mínimos quadrados não lineares surgem, por exemplo, em regressão não linear, onde os parâmetros de um modelo são procurados de forma que o modelo esteja em concordância com as observações disponíveis.

O método foi nomeado a partir dos matemáticos Carl Friedrich Gauss e Isaac Newton.

Descrição

Dada "m" funções r = (r1, …, rm) de n variáveis 'β = (β1, …, βn), com m n', o Algoritmo de Gauss-Newton iterativamente encontra o mínimo das somas dos quadrados[1]

S(β)=i=1mri2(β).

Começando com uma estimativa inicial β(0) para o mínimo, o método prossegue com as iterações

β(s+1)=β(s)(𝐉𝐫𝐉𝐫)1𝐉𝐫𝐫(β(s))

onde

𝐉𝐫=riβj(β(s))

é a Matriz Jacobiana de "r" e o símbolo denota a matriz transposta.

Na montagem de dados, onde o objetivo é encontrar os parâmetros β tais que uma dada função modelo y = f(x, β) ajuste melhor alguns pontos de dados (xi, yi), as funções ri são os resíduos

ri(β)=yif(xi,β).

Então, o método de Gauss-Newton pode ser expresso em termos da Jacobiana da função "f" como

β(s+1)=β(s)(𝐉𝐟𝐉𝐟)1𝐉𝐟𝐫(β(s)).

Notas

A suposição mn na demonstração do algoritmo é necessária, senão a matriz JrTJr não será invertível e as equações normais não poderão ser resolvidas (pelo menos exclusivamente).

O Algoritmo de Gauss-Newton pode ser obtido por aproximação linear do vetor das funções ri. Usando o Teorema de Taylor, podemos escrever em cada iteração:

𝐫(β)𝐫(βs)+𝐉𝐫(βs)Δ

com Δ=ββs.

A tarefa de encontrar Δ minimizando a soma dos quadrados do lado direito, por exemplo:

𝐦𝐢𝐧𝐫(βs)+𝐉𝐫(βs)Δ22

é um problema linear de mínimos quadrados, que pode ser resolvido explicitamente, obtendo-se as equações normais no algoritmo.

As equações normais são m equações normais simultâneas no desconhecido incremento Δ. Elas podem ser solucionadas em um passo, usando decomposição de Cholesky, ou, melhor, a fatoração QR de Jr. Para sistemas de grandes dimensões, um método iterativo, tal como o método do gradiente conjugado, pode ser mais eficiente. Se existe uma dependência linear entre as colunas de Jr, as iterações falharão, já que JrTJr se tornará singular.

Exemplo

Curva calculada obtida com β^1=0,362 e β^2=0,556 (em azul) e os dados observados (em vermelho).

Neste exemplo, o Algoritmo de Gauss-Newton será usado para ajustar um modelo a alguns dados, minimizando os erros das somas dos quadrados entre os dados e as previsões do modelo.

Numa experiência de biologia, estudando a relação entre a concentração de substrato ["S"] e a taxa de reação de uma reação mediada por enzimas, foram obtidos os dados da tabela a seguir:

i 1 2 3 4 5 6 7
[S] 0,038 0,194 0,425 0,626 1,253 2,500 3,740
taxa 0,050 0,127 0,094 0,2122 0,2729 0,2665 0,3317

É desejado encontrar uma curva (função modelo) com a fórmula

taxa=Vmax[S]KM+[S]

que melhor se adapte aos dados, no sentido dos mínimos quadrados, com os parâmetros Vmax e KM a serem determinados.

Denotado por xi e yi o valor de [S] e a taxa da tabela i=1,,7. Seja β1=Vmax e β2=KM. Encontraremos β1 e β2 tal que a soma dos quadrados dos resíduos

ri=yiβ1xiβ2+xi (i=1,,7)

será minimizada.

A Jacobiana 𝐉𝐫 do vetor dos resíduos ri em relação às incógnitas βj é uma matriz 7×2 com i-th linhas de entrada

riβ1=xiβ2+xi, riβ2=β1xi(β2+xi)2.

Começando com as estimativas iniciais de β1=0,9 e β2=0,2, depois de cinco iterações do Algoritmo de Gauss-Newton os valores otimizados β^1=0,362 e β^2=0,556 são obtidos. Podemos também determinar as erros: β^1=0,36 ± 0,07 e β^2=0,56 ± 0,35 com 80% de confiança.[2] A soma dos quadrados dos resíduos diminuiu desde o valor inicial de 1.445 para 0,00784 depois da quinta iteração. O gráfico à direita mostra a curva determinada pelo modelo dos parâmetros otimizados e os dados observados.

Propriedades de Convergência

Pode ser mostrado[3] que o incremento Δ é um sentido descendente para "S", e, se o algoritmo converge, então o limite é um ponto estacionário de "S". Contudo, a convergência não é garantida, nem mesmo a convergência local como no Método de Newton.

A taxa de convergência do Algoritmo de Gauss-Newton pode se aproximar do quadrático.[4] O algoritmo pode convergir lentamente ou nunca se a suposição inicial estiver longe do mínimo ou se a matriz J𝐫𝐓𝐉𝐫 estiver mal condicionada. Por exemplo, considere o problema com m=2 equações e n=1 variáveis, dadas por:

r1(β)=β+1r2(β)=λβ2+β1.

A otimização é em β=0. Se |λ| = 0, então o problema é de fato linear e o método converge em uma iteração. Se |λ| < 1, então o método converge linearmente e o erro decresce assintóticamente com um fator |λ| em cada iteração. No entanto, se |λ| > 1, então o método não converge nem mesmo localmente.[5]

Derivação com o Método de Newton

No que segue, o Algoritmo de Gauss-Newton será derivado com o Método de Newton por otimização da função através de uma aproximação. Como consequência, a taxa de convergência do Algoritmo de Gauss-Newton será no máximo quadrática.

A relação de recorrência do Método de Newton para minimizar uma função "S" de parâmetros β, é

β(s+1)=β(s)𝐇1𝐠

onde g denota o vetor gradiente de S e H denota a Matriz de Hessian de S. Uma vez que S=i=1mri2, o gradiente é dado por:

gj=2i=1mririβj.

Elementos de Hessien são calculados através da diferenciação dos elementos do gradiente, gj, com respeito a βk

Hjk=2i=1m(riβjriβk+ri2riβjβk).

O método de Gauss-Newton é obtido ignorando os termos derivados de segunda ordem (o segundo termo nesta expressão). Isto é, o Hessian é aproximado por:

Hjk2i=1mJijJik

onde Jij=riβj são entradas da Jacobiana Jr. O gradiente e o Hessien aproximado podem ser escritos numa notação matricial como:

𝐠=2𝐉𝐫𝐫,𝐇2𝐉𝐫𝐉𝐫.

Estas expressões são substituídas na relação de recorrência acima pra obter as equações operacionais.

β(s+1)=β(s)+Δ;Δ=(𝐉𝐫𝐉𝐫)1𝐉𝐫𝐫.

A convergência do método de Gauss-Newton não é garantida em todas as instâncias. A aproximação

|ri2riβjβk||riβjriβk|

que precisa ser capaz de ignorar os termos derivados de segunda ordem, pode ser válida em dois casos, nos quais a convergência é de se esperar.[6]

  1. Os valores da função ri são pequenos em magnitude, ao menos em torno do mínimo.
  2. As funções são apenas "ligeiramente" não lineares, de modo que 2riβjβk seja relativamente pequena em magnitude.

Versões Aperfeiçoadas

Com o método de Gauss-Newton a soma dos quadrados S pode não decrescer em cada iteração. Contudo, uma vez que Δ é um sentido descendente, a menos que S(βs) seja um ponto estacionário, mantem-se que S(βs+αΔ)<S(βs) para todos suficientemente pequenos α>0. Assim, se ocorre divergência, uma solução é a de empregar uma fração α, do vetor incremento Δ na atual fórmula.

βs+1=βs+α Δ.

Em outras palavras, o vetor incremento é muito longo, mas ele aponta "para baixo", então somente uma parte irá decrescer o objetivo da função S. Um valor ideal para α pode ser encontrado usando um algoritmo de linha de pesquisa, ou seja, a magnitude de α é determinada encontrando o valor que minimiza S, geralmente usando um método de pesquisa direto no intervalo 0<α<1.

Nos casos em que a direção do vetor de deslocamento é tal que a fração otimizada, α, é próxima de zero, um método alternativo para o tratamento de divergência é a utilização do algoritmo de Levenberg-Marquardt, também conhecido como o "método da região de segurança". As equações normais são modificadas de tal forma que o vetor de incremento seja virado na direção de descida mais acentuada.

(𝐉𝐓𝐉+λ𝐃)Δ=𝐉T𝐫,

onde D é uma matriz diagonal positiva. Note que quando D é a matriz identidade e λ+, então Δ/λ𝐉T𝐫, portanto a direção de Δ se aproxima da direção do gradiente 𝐉T𝐫.

O chamado parâmetro de Marquardt, λ, também pode ser otimizado por uma linha de pesquisa, mas é ineficiente já que o vetor de deslocamento deve ser recalculado toda vez que λ for alterado. Uma estratégia mais eficiente é a seguinte: quando a divergência ocorre, deve-se aumentar o parâmetro de Marquartdt até que haja uma diminuição em S. Então deve-se manter o valor de uma iteração para a outra, mas, se possível, diminuí-lo até que um valor de corte seja atingido quando o parâmetro de Marquardt pode ser definido em zero; a minimização de S se torna então um padrão de minimização de Gauss-Newton.

Referências

  1. Björck (1996)
  2. Predefinição:Citar livro
  3. Björck (1996) p260
  4. Björck (1996) p341, 342
  5. Fletcher (1987) p.113
  6. Nocedal (1997) Predefinição:Page needed

Fontes


Predefinição:Isaac Newton