Método de Newton em otimização

Fonte: testwiki
Revisão em 20h12min de 15 de março de 2024 por imported>CunhaDC (Método de Newton: Edições para que algumas afirmações ficassem mais precisas, pequenas correções de texto.)
(dif) ← Revisão anterior | Revisão atual (dif) | Revisão seguinte → (dif)
Saltar para a navegação Saltar para a pesquisa
Uma comparação entre o método do gradiente (verde) e método de Newton (vermelho) para minimizar uma função (considerando passos pequenos). O método de Newton utiliza informações de curvatura (ou seja, a segunda derivada) para seguir uma rota mais direta.

Em cálculo numérico, o método de Newton (também chamado de Newton-Raphson) é um método iterativo para encontrar as raízes de uma função diferenciável Predefinição:Math, que são soluções para a equação Predefinição:Math . Dessa forma, pode-se aplicar o método de Newton à derivada Predefinição:Math de uma função Predefinição:Math duas vezes diferenciável para encontrar as raízes da derivada (soluções para Predefinição:Math), também conhecidas como pontos críticos de Predefinição:Math. Essas soluções podem ser mínimos, máximos ou pontos de sela. Isto é relevante nos problemas de otimização, nos quais se deseja encontrar mínimos (ou máximos) de uma função objetivo.

Método de Newton

No contexto da otimização, o método de Newton pode ser usado para minimizar funções estritamente convexas, ou para maximizar funções estritamente côncavas. Consideremos primeiro o caso de funções de uma única variável real. Em seguida, consideraremos o caso de funções multivariáveis, mais geral e mais útil na prática.

Dada uma função duas vezes diferenciável f:, buscamos resolver o problema de otimização irrestrito:

minxf(x).

O método de Newton tenta resolver este problema construindo uma sequência {xk} a partir de uma estimativa inicial (ponto de partida) x0. Se a função é estritamente convexa, isto é, se sua segunda derivada é sempre positiva, espera-se que essa sequência convirja para um minimizador x* de f. Em cada iteração, a função é aproximada por seu polinômio de Taylor de segunda ordem, em torno do ponto atual xk:

f(xk+t)f(xk)+f(xk)t+12f(xk)t2.

O próximo termo da sequência, xk+1, é definido de modo a minimizar esta aproximação quadrática em t. Quando a função é convexa, essa expressão define uma parábola convexa, que possui um único ponto de mínimo. Ele pode ser obtido igualando a zero a derivada da expressão em relação a t:

f(xk)+f(xk)t*=0t*=f(xk)f(xk);

xk+1=xk+t*=xkf(xk)f(xk).

Interpretação geométrica

A interpretação geométrica do método de Newton é que, a cada iteração, equivale ao ajuste de uma parábola ao gráfico de f(x), em torno do valor atual xk, tendo a mesma inclinação (primeira derivada) e curvatura (segunda derivada) da função original naquele ponto. Então, move-se até o mínimo (ou máximo) dessa parábola. Em dimensões superiores, faz-se o ajuste de um paraboloide à curva da função original, seguindo o mesmo procedimento. Em dimensões superiores, caso o método seja aplicado a funções que não sejam estritamente convexas nem estritamente côncavas, além de pontos de mínimo ou de máximo, os pontos de derivada nula do paraboloide ajustado podem corresponder a pontos de sela. Observe que se f for uma função quadrática, então o ponto crítico (mínimo, máximo ou ponto de sela) exato é encontrado em uma única iteração.

Dimensões superiores

O esquema iterativo acima pode ser generalizado para d>1 dimensões substituindo a derivada pelo vetor gradiente(𝐟(𝐱)=𝐟(𝐱)=𝐠𝐟(𝐱)d), e o inverso da segunda derivada pela inversa da matriz hessiana (𝐟(𝐱)=𝟐𝐟(𝐱)=𝐇𝐟(𝐱)d×d). Obtém-se assim o esquema iterativo:

f(𝐱𝐤+𝐭)f(𝐱𝐤)+[𝐟(𝐱𝐤)]T𝐭+12𝐭T[𝐟(𝐱𝐤)]𝐭;

𝐟(𝐱𝐤)+[𝐟(𝐱𝐤)]𝐭*=𝟎𝐭*=[𝐟(𝐱𝐤)]1𝐟(𝐱𝐤);

𝐱𝐤+𝟏=𝐱𝐤[𝐟(𝐱𝐤)]1𝐟(𝐱𝐤).

Frequentemente, o método de Newton é modificado para incluir um pequeno tamanho de passo 0<γ1 em vez de γ=1:

𝐱𝐤+𝟏=𝐱𝐤γ[𝐟(𝐱𝐤)]1𝐟(𝐱𝐤).

Isso geralmente é feito para garantir que as condições de Wolfe (ou a condição de Armijo) sejam satisfeitas em cada iteração do método. Para tamanhos de passo menores que 1, o método é frequentemente chamado de método de Newton relaxado ou amortecido.

Convergência

Se f:d for uma função fortemente convexa com hessiana Lipschitz contínua, então, dado um ponto 𝐱𝟎 suficientemente próximo da solução única 𝐱*=argminf(𝐱), a sequência {𝐱𝟎,𝐱𝟏,𝐱𝟐,}, gerada pelo método de Newton, converge para a 𝐱*, com uma taxa de convergência quadrática.[1]

Calculando a direção de Newton

Computar a inversa da hessiana em dimensões altas para calcular a direção de Newton 𝐭*=[𝐟(𝐱𝐤)]1𝐟(𝐱𝐤) pode ser uma operação computacionalmente onerosa. Nesses casos, em vez de inverter diretamente a matriz, pode-se calcular o vetor 𝐭* como a solução do sistema de equações lineares correspondente,

[𝐟(𝐱𝐤)]𝐭*=𝐟(𝐱𝐤),

que pode ser resolvido por diversos métodos, diretos ou iterativos. Parte desses métodos são aplicáveis apenas a certos tipos de equações, por exemplo, a fatoração de Cholesky e o método do gradiente conjugado só podem ser usados se 𝐟(𝐱𝐤) for uma matriz definida positiva.

Portanto, se o problema abordado tiver uma matriz hessiana indefinida (o que ocorre se a função não for nem estritamente convexa, nem estritamente côncava), métodos mais gerais devem ser usados para solucionar os sistemas lineares, por exemplo, a fatoração LU. Nestes casos, o método de Newton fornece pontos de sela dos paraboloides ajustados (ao invés de mínimos ou máximos).

Existem também vários métodos quase-Newton, nos quais uma aproximação para a matriz hessiana (ou diretamente para sua inversa) é construída avaliando mudanças no gradiente.

Se a hessiana estiver próxima de uma matriz singular, quer dizer, se seu número de condicionamento for elevado demais, a resolução numérica do sistema linear (em aritmética de ponto flutuante) pode produzir resultados muito imprecisos e o processo iterativo pode divergir. Nesses casos, algumas estratégias podem ser adotadas. Pode-se, por exemplo, modificar a hessiana adicionando uma matriz de correção 𝐁𝐤 de modo a fazer 𝐟(𝐱𝐤)+𝐁𝐤 definida positiva. Uma abordagem é definir 𝐁𝐤 de forma que todo autovalor menor ou igual a zero da matriz hessiana original seja transformado num pequeno valor positivo ϵ>0.

Uma abordagem explorada no algoritmo Levenberg-Marquardt (que usa uma matriz hessiana aproximada) é adicionar à hessiana uma matriz proporcional à matriz identidade, μ𝐈, com o coeficiente μ ajustado a cada iteração conforme necessário. Para um valor μ elevado (comparado com a ordem de grandeza dos autovalores da hessiana), o método de Newton se degenera no método de gradiente descendente, com tamanho de passo 1/μ.

Algumas ressalvas

O método de Newton, em sua versão mais básica, traz algumas ressalvas:

  1. Não pode ser usado se a matriz hessiana for singular.
  2. Pode convergir para um ponto de sela ao invés de para um mínimo local (caso a matriz hessiana seja invertível, mas indefinida, com autovalores negativos e positivos).
  3. Pode não convergir se condições mínimas não forem satisfeitas (grau de convexidade da função a ser minimizada, proximidade do ponto de partida a um ótimo local, tamanho de passo suficientemente pequeno).

Ver também

Notas

Referências

Ligações externas

Predefinição:Isaac Newton

Predefinição:Portal3