Otimização/O problema de mínimos quadrados
Origem: Wikilivros, livros abertos por um mundo aberto.
| Otimização |
Este tipo de problema é muito frequente em ciências experimentais. Para ter um exemplo em mente durante a discussão que será feita mais adiante, considere as seguintes informações:
Segundo dados disponibilizados pelo IBGE, o Produto Interno Bruto per capita na cidade de São Paulo, no período de 2002 a 2005, foi (em reais): 17734, 19669, 20943 e 24083, respectivamente.
Com base nessas informações, como poderia ser feita uma previsão do valor correspondente ao ano seguinte (2006)?
Uma escolha possível seria supor que a cada ano o PIB aumenta uma aproximadamente constante, ou seja, usar um modelo linear para obter tal estimativa (que possivelmente será bem grosseira). Intuitivamente, bastaria analisar os dados disponíveis e a partir deles deduzir qual é o aumento que ocorre a cada ano. Depois, a previsão para 2006 seria aproximadamente igual à de 2005 somada com aquele aumento anual.
Esta idéia poderia até funcionar para o caso deste exemplo, mas o que fazer se a quantidade de dados disponíveis sobre algum fenômeno (ou alguma situação) for significativamente maior?
A melhor escolha, sem dúvida, é fazer uso de um computador para obter o modelo que melhor descreve o "comportamento" dos dados experimentais.
Em geral, os problemas de mínimos quadrados consistem em identificar os valores de determinados parâmetros, de modo que se satisfaçam certas equações
. No contexto do exemplo anterior, se procura um modelo linear para os dados, ou seja, uma função y = mx + n que os descreva da melhor forma possível. Assim, os parâmetros a considerar são m e n. Os valores ideais para essas variáveis seriam aqueles que verificassem as seguintes equações:
Note que a partir dessas equações poderiam ser definidas as funções hi como:
- h1(m,n) = 2002m + n − 17734
- h2(m,n) = 2003m + n − 19669
- h3(m,n) = 2004m + n − 20943
- h4(m,n) = 2005m + n − 24083
É de se esperar que o sistema de equações obtido a pouco não admitirá uma solução exata, pois se tem mais equações do que variáveis.
Isso geralmente acontece, pois é comum haver uma quantidade p de equações bem maior que o número n de parâmetros a identificar. Em particular, quando todas as equações hi são lineares em suas n variáveis, dificilmente existirá uma solução exata para o sistema linear resultante, pois este terá mais equações do que incógnitas (como no exemplo). Em geral, não é possível encontrar parâmetros que satisfaçam exatamente todas as equações. Por isso, costuma-se tentar identificar os parâmetros que "melhor se aproximam" de uma solução exata, em algum sentido.
Uma forma de obter uma solução aproximada (uma "quase-solução") resulta da seguinte observação: o valor de cada função hi em uma solução exata x deveria ser zero. Se tal exigência é restritiva demais, e com ela não é possível encontrar qualquer solução, uma possibilidade seria exigir um pouco menos. Por exemplo, poderia ser exigido apenas que o valor de hi, para
seja, em geral, pequeno. Uma das formas de capturar essa idéia em termos mais precisos é dizer que se pretende minimizar a soma dos quadrados dos valores de cada hi. Em símbolos, o problema passaria a ser:
Índice |
[editar] O caso linear
Neste caso, para cada índice
, a função hi é afim linear, ou seja:
onde
e
para cada
. Deste modo, pode-se definir uma função H como
de modo que
Motivando a introdução da seguinte notação:
Assim,
- H(x) = Ax + b
Logo, buscar uma solução exata é o mesmo que procurar uma solução para o seguinte sistema linear:
- Ax = − b
E uma solução aproximada poderia ser buscada a partir do seguinte problema de minimização:
- Exercício
Verifique que se houver uma solução exata, ela também será um minimizador de
. A recíproca é verdadeira?
| Resolução |
|---|
| Primeiramente, observe que para qualquer x tem-se
Isso significa que 0 é uma cota inferior para os valores assumidos por esta soma de quadrados. Além disso, se e consequentemente Então, em Não vale a recíproca, pois se para um certo
Isto significa que |
Analisando a função objetivo do problema de minimização anterior, tem-se:
Logo, como
é simétrica e semi-definida positiva, tem-se f convexa. Isso implica que a condição necessária de primeira ordem é também suficiente. Assim, qualquer ponto
tal que
é solução do problema aproximado.
Calculando o gradiente da função objetivo tem-se:
Deste modo, a solução do problema é obtida resolvendo o sistema
Observe também que isso implica
, ou seja,
.
[editar] Exemplo de aplicação
Considere dado um conjunto de pontos do plano
, por exemplo
, representando dados obtidos experimentalmente.
Perguntas:
- 1. Qual é a função afim linear que melhor se aproxima dos dados experimentais?
| Resolução |
|---|
| As funções afim lineares no plano são aquelas que possuem a forma mx + b. Então os parâmetros a identificar são m e b.
Como são as funções hi? Lembrando que tais funções teriam imagem igual a zero em uma solução exata, pode-se tomar hi(m,b) = mxi + b − yi Assim, A expressão final pode ser simplificada adotando a seguinte notação De fato, nesses termos tem-se
|
- 2. Qual é a função quadrática que melhor se aproxima dos dados experimentais?
| Resolução |
|---|
| As funções quadráticas possuem a forma ax2 + bx + c. Então os parâmetros a identificar são a, b e c.
Pode-se tomar Procedendo como antes, tem-se
onde |
- Exercício
Explorar o exemplo anterior com dados concretos, implementando um dos três métodos de gradientes conjugados.
| Resolução |
|---|
| A resolução deste exercício é deixada a cargo do leitor. Sinta-se livre para melhorar a qualidade deste texto, incluindo-a neste módulo. |
- Observações
Conforme se aumenta o grau do polinômio que faz a aproximação dos dados, as colunas de A têm elementos elevados a potências cada vez maiores, fazendo com que os autovalores de
sejam cada vez mais dispersos. Com isso,
torna-se mal condicionada.
- Exercício
É possível, usando o problema de mínimos quadrados, verificar o postulado de Euclides que diz que "por dois pontos distintos passa uma única reta"?
| Resolução |
|---|
| A resolução deste exercício é deixada a cargo do leitor. Sinta-se livre para melhorar a qualidade deste texto, incluindo-a neste módulo. |
- Exercício
Usando o problema de mínimos quadrados, é possível inferir que "por três pontos distintos passa uma única curva quadrática"?
| Resolução |
|---|
| A resolução deste exercício é deixada a cargo do leitor. Sinta-se livre para melhorar a qualidade deste texto, incluindo-a neste módulo. |
[editar] O caso não linear
Para esse tipo de problemas, há dois métodos:
- Gauss-Newton
- Levemberg-Marquardt
Ambos são métodos do tipo Newton. Então, para entender cada um deles é preciso entender o Método de Newton.
[editar] O método de Newton
Para entender a essência do método de Newton, primeiro considere que o problema a ser resolvido é
sendo
, e portanto
de classe
. A idéia de Newton é usar o desenvolvimento até segunda ordem da série de Taylor da função f em cada ponto iterado. Isto é, se o iterado é
, então:
Então a condição de Newton é que em cada iteração a Hessiana
deve ser definida positiva.
Calculando o gradiente da função Q, segue:
Se x * é o (único) minimizador de Q, então
donde
Sendo
definida positiva, tal matriz é também inversível. Portanto:
Assim, pode-se usar a seguinte iteração:
[editar] Algoritmo de Newton (puro)
Início: TomeSe
, pare: x0 é ponto crítico. Senão, Calcule d0, solução de
Faça x1 = x0 + d0 e k = 1 Iteração: Se
, pare: xk é ponto crítico. Senão, calcular dk, solução de
Faça xk + 1 = xk + dk e k = k + 1
Voltando ao problema original, de mínimos quadrados, se tinha:
Calculando o gradiente desta função, resulta:
Considera-se
definida por
Deste modo, a Jacobiana de H verifica:
pois o produto de uma matriz por um vetor tem como resultado um vetor que é a combinação linear das colunas da matriz, com coeficientes que são as coordenadas do vetor.
Além disso, tem-se
Seja
Sabe-se que uma matriz D é definida positiva se xtDx > 0 para qualquer
. Fazendo
, tem-se:
Para que D seja definida positiva, é necessário que
( deve gerar todo o espaço), neste caso, se diz que JH(x) é de posto máximo.
[editar] Algoritmo de Gauss-Newton
Início: TomeSe
, pare: x0 é ponto crítico. Senão, Calcule d0, solução de
, onde
Faça x1 = x0 + d0 e k = 1 Iteração: Se
, pare: xk é ponto crítico. Senão, calcular dk, solução de
Faça xk + 1 = xk + dk e k = k + 1
[editar] Algoritmo de Levemberg-Marquardt
A idéia de Levemberg-Marquardt foi perturbar a matriz B(x), considerando B(x) + ρI, para algum ρ > 0 pequeno.
Início: TomeSe
, pare: x0 é ponto crítico. Senão, Calcule d0, solução de
, onde
Faça x1 = x0 + d0 e k = 1 Iteração: Se
, pare: xk é ponto crítico. Senão, calcular dk, solução de
Faça xk + 1 = xk + dk e k = k + 1
- Exercício
Enumere as diferenças que existem nos seguintes algoritmos:
- Newton
- Gauss-Newton
- Levenberg-Marquardt
| Resolução |
|---|
| Newton
Desenvolvendo f em série de Taylor e exigindo que a matriz hessiana de f seja definida positiva o método de Newton usa Gauss-Newton Em alguns casos a matriz hessiana de f pode ser bem complicada. Nesses casos então a idéia do método de Gauss-Newton é usar uma boa aproximação para essa matriz. Podemos escrever
Usando Taylor em h temos:
Substituindo
Calculando o gradiente e depois a segunda derivada temos:
Denotando
A idéia do método de Levenberg-Marquardt é pertubar a matriz B(x) um pouco, considerando B(x) + ρI com ρ > 0 pequeno. Portanto o método de Levenberg-Marquardt escolhe dk tal que
|

![\min_{x \in \mathbb{R}^n} \sum_{i=1}^{p}\left[h_i(x)\right]^2](http://upload.wikimedia.org/math/3/4/7/3470be3f179953794dcfc7541e9e9ee1.png)




![\sum_{i=1}^{p}\left[h_i(\bar{x})\right]^2 \ge 0](http://upload.wikimedia.org/math/8/4/4/8443c02f8126173405e28f40cce08d59.png)

![\sum_{i=1}^{p}\left[h_i(\bar{x})\right]^2 = \sum_{i=1}^{p} 0^2 = 0](http://upload.wikimedia.org/math/2/c/3/2c392f5d040ba415ce0a1ab0a0600123.png)
a soma dos quadrados assumir um valor positivo
implica que existe algum 





.





![x^* = \bar{x} - \left[\nabla^2 f(\bar{x})\right]^{-1} \nabla f(\bar{x})](http://upload.wikimedia.org/math/7/3/9/7395446ff81a2b611cd012443ca53f12.png)
![x_{k+1} = x_k - \left[\nabla^2 f(x_k)\right]^{-1} \nabla f(x_k)](http://upload.wikimedia.org/math/4/6/5/465db59f68a8a60d4eb53cac01f08587.png)
Se
, pare:
Faça
, pare:
Faça ![f(x) = \frac{1}{2}\sum_{i=1}^{p}\left[h_i(x)\right]^2](http://upload.wikimedia.org/math/3/b/b/3bbbe56250893dd4de24102f0154d300.png)


![\nabla f(x) = \left[J_H(x)\right]H(x)](http://upload.wikimedia.org/math/3/1/a/31a63f0d717566675bf96d585bb2f3ed.png)


![x^\top \nabla h_i(x) \nabla h_i(x)^\top x = \left[\nabla h_i(x)^\top x\right]^2 \ge 0](http://upload.wikimedia.org/math/4/5/3/453c292a34d939f6554d88487b35e8a6.png)
, onde
Faça
Faça
, onde
Faça
.
.
onde
na ![\begin{align}
f(\bar{x}) & =\frac{1}{2}h(\bar{x})^{\top}h(\bar{x})\\
& =\frac{1}{2}(h(x)+J(x)(\bar{x}-x))^{\top}(h(x)+J(x)(\bar{x}-x))\\
& =\frac{1}{2}[(h(x)^{\top}h(x)+2h(x)^{\top}(J(x)(\bar{x}-x))+(J(x)(\bar{x}-x))^{\top}(J(x)(\bar{x}-x))]\\
& =f(x)+h(x)^{\top}(J(x)(\bar{x}-x))+ (J(x)(\bar{x}-x))^{\top}(J(x)(\bar{x}-x))
\end{align}](http://upload.wikimedia.org/math/d/e/2/de2fc4a20fc0677f656399cc67e197a0.png)
e
, então o método de Gauss-Newton escolhe
.