Algoritmo de Gauss-Newton – Wikipédia, a enciclopédia livre

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[editar | editar código-fonte]

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]

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

onde

é 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

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

Notas[editar | editar código-fonte]

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:

com

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

é 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[editar | editar código-fonte]

Curva calculada obtida com e (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

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

Denotado por e o valor de e a taxa da tabela Seja e Encontraremos e tal que a soma dos quadrados dos resíduos

()

será minimizada.

A Jacobiana do vetor dos resíduos em relação às incógnitas é uma matriz com -th linhas de entrada

Começando com as estimativas iniciais de =0,9 e =0,2, depois de cinco iterações do Algoritmo de Gauss-Newton os valores otimizados e são obtidos. Podemos também determinar as erros: ± e ± 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[editar | editar código-fonte]

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 estiver mal condicionada. Por exemplo, considere o problema com m=2 equações e n=1 variáveis, dadas por:

A otimização é em . 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[editar | editar código-fonte]

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 β, é

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

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

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:

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

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

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

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 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 seja relativamente pequena em magnitude.

Versões Aperfeiçoadas[editar | editar código-fonte]

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 seja um ponto estacionário, mantem-se que para todos suficientemente pequenos . Assim, se ocorre divergência, uma solução é a de empregar uma fração , do vetor incremento Δ na atual fórmula.

.

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 .

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.

,

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

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[editar | editar código-fonte]

  1. Björck (1996)
  2. Rouaud, Mathieu (2013). Probability, Statistics and Estimation (PDF). [S.l.: s.n.] p. 82 
  3. Björck (1996) p260
  4. Björck (1996) p341, 342
  5. Fletcher (1987) p.113
  6. Nocedal (1997) [falta página]

Fontes[editar | editar código-fonte]