Modelos reais raramente são lineares.
E nem todos os fenômenos podem ser bem aproximados por modelos redutíveis a lineares nos parâmetros, como vimos da última vez.
Como ajustar parâmetros de modelos genuinamente não lineares?
Considere um conjunto de dados $(x_i, y_i)$ com $x_i, y_i \in \mathbb{R}$, $i = 1, \ldots, N$.
Buscamos aproximar o fenômeno com um modelo da forma
onde $\boldsymbol{\beta} = (\beta_1, \ldots, \beta_m)$ é um conjunto de parâmetros (desconhecidos) do modelo.
para $j=1, \ldots, m.$
onde $D\mathbf{r}(\boldsymbol\beta)^t$ é a transposta da matriz Jacobiana $D\mathbf{r}(\boldsymbol\beta)$, cujas linhas são os gradientes da função vetorial cujos componentes são os resíduos: $$ \mathbf{r}(\boldsymbol\beta) = \left(y_i - \varphi(x_i, \boldsymbol\beta)\right)_{i=1, \ldots, n}. $$
Os métodos de Gradiente descendente, Gauss-Newton e Levenberg-Marquardt, por exemplo, são algoritmos iterativos clássicos.
Neles, busca-se uma sequência minimizante $\boldsymbol\beta^{(0)}, \boldsymbol\beta^{(1)}, \ldots$ se aproximando do ponto de mínimo desejado.
A escolha do ponto de partida $\boldsymbol\beta^{(0)}$ é delicada, pois pode nos levar à mínimos locais, longe de um bom ajuste.
O algoritmo termina quando algum critério de parada é alcançado. Por exemplo:
A sua convergência é relativamente lenta.
A escolha do tamanho de passo $\eta$ não segue uma receita muito bem definida.
Passos muito grandes podem fazer com que o método não-convirja ("pule para um lugar mais alto do outro lado do vale").
Passos muito pequenos podem levar ao acúmulo de erros numéricos ("pequenas mudanças em um passo curto acarretam em grandes mudanças no ângulo de direcionamento).
A partir do ponto $\boldsymbol{\beta}^{(k)}$, em que o erro $E(\boldsymbol{\beta}^{(k)})$ ainda não é suficientemente pequeno (caso contrário já teríamos resolvido o problema), buscamos uma aproximação linear para os resíduos $\mathbf{r}(\boldsymbol{\beta})$.
Como aproximação linear, é natural tomarmos a linearização em torno do ponto dado:
onde $D\mathbf{r}(\boldsymbol{\beta}^{(k)})$ é a diferencial de $\mathbf{r}$, cusas linhas são os gradientes de cada resíduo $r_i$.
Isso nada mais é do que um problema de mínimos quadrados linear.
Assumindo-se que as colunas de $D\mathbf{r}(\theta^{(k)})$ sejam linearmente independentes (i.e. $N\geq m$ e matriz com posto máximo), a solução é dada pelas equações normais
Observação: No caso de uma matriz quadrada ($m=N$) invertível, obtemos o método de Newton $\boldsymbol{\beta}^{(k+1)} = \boldsymbol{\beta}^{(k)} - D\mathbf{r}(\boldsymbol{\beta}^{(k)})^{-1}\mathbf{r}(\boldsymbol{\beta}^{(k)})$.
O método pode divergir: Isso pode acontecer quando $\boldsymbol\beta^{(k+1)}$ não está muito próximo de $\boldsymbol\beta^{(k)}$, de modo que o passo seja muito grande;
O método pode ter que ser abortado: A hipótese de que as colunas de $D\mathbf{r}(\boldsymbol\beta^{(k)})$ sejam linearmente independentes pode falhar em alguma iteração, de modo que o cálculo de $\theta^{(k+1)}$ não seja possível.
É mais recente, de meados do século XX.
Motivado pelas deficiências do método de Gauss-Newton.
Pode ser visto como um meio termo entre o gradiente descendente e o Gauss-Newton.
É uma forma de um Gauss-Newton amortecido.
Pode ser mais lento, mas é mais robusto do que o Gauss-Newton.
Procura alcançar dois objetivos:
O parâmetro $\lambda$ é um parâmetro positivo de regularização, ou suavização, ou, ainda, de amortecimento.
Esse é um problema de mínimos quadrados linear multi-objetivo.
Por esse ponto de vista, é um clássico problema de mínimos quadrados linear da form $\operatorname{argmin}\|A\boldsymbol\beta + \mathbf{y}\|^2$.
Se $D\mathbf{r}(\boldsymbol{\beta}^{(k)})$ tiver posto máximo, assim também o tem a matriz $A$, de forma que o problema tem solução única.
A sua forma normal $A^tA\boldsymbol{\beta} = A^t\mathbf{y}$ nos leva à fórmula de recursão (verifique!)
Observe que $\lambda^{(k)}>0$ tem o papel de reduzir o passo $\boldsymbol{\beta}^{(k+1)} - \boldsymbol{\beta}^{(k)}$.
Por esse motivo ele é visto como um parâmetro de amortecimento.
Ele também busca evitar abruptos "buracos" locais.
O parâmetro $\lambda^{(k)}$ é também conhecido como parâmetro de confiança, pois outra forma de interpretar o problema de otimização resolvido a cada iteração é como um método de região de confiança (trust-region method).
Visto como um parâmetro de regularização/penalização, ele controla qual parte da função objetivo é levada mais em consideração.
Diferentes estratégias para a escolha do parâmetro podem ser seguidas.
Maiores informações podem ser encontradas em Boyd.
Há vários outros métodos, alguns sendo variações dos vistos acima (e.g. gradiente estocástico), mas não é o nosso objetivo explorar os diversos métodos. Isso fica para um curso de otimização.
Vários métodos não são especificos para mínimos quadrados (não-linear), mas se aplicam a minimização de funções não-lineares em geral, como o método de Newton, Davidon–Fletcher–Powell (DFP), Broyden–Fletcher–Goldfarb–Shanno (BFGS) e Limited-memory BFGS, etc.
Devo mencinar que os métodos como descritos acima são métodos para problemas de minimização sem restrição.
Métodos para problemas com restrição podem ser modificados para levar a restrição em consideração ou para atacar um formulação via multiplicadores de Lagrange.
Devo ressaltar, ainda, os métodos livres de derivada, ou derivative-free.
São úteis quando não temos a derivada disponível ou ela é muito custosa de se calcular.
Exemplos notáveis são os seguintes.
Verifique a formula do gradiente da função erro $E(\boldsymbol\beta) = \|\mathbf{r}(\boldsymbol\beta)\|^2$, onde $\mathbf{r}(\boldsymbol\beta)$ é o vetor $\mathbf{r}(\boldsymbol\beta) = \left(y_i - \varphi(x_i, \boldsymbol\beta)\right)_{i=1}^N$.
Obtenha a fórmula
a partir da forma normal $A^tA\boldsymbol{\beta} = A^t\mathbf{y}$ como descrito no método de Levenberg-Marquardt.