Multiplicadores de Lagrange e estabilidade de problemas inversos (parte 2)
Autor: Renato "Lugner" | Publicado: 2011-05-03T17:27:00-07:00

Já vimos, no post anterior, que, dada uma restrição do tipo E'E = d, querendo-se minimizar s's, há um L tal que grad(E'E + Ls's) = 0. Minimizar s's significa estar dando um vínculo de norma mínima ao nosso problema.

Podemos resolver esse gradiente. Note que (demonstre!) grad s'R'Rs = 2R'Rs. Como E'E = (As-T)'(As-T) = (T'-s'A')(As-T) = T'As - T'T - s'A'As + (As)'T. Note que o produto interno T'As é comutativo. Então, temos:

grad E'E = 2s'A'T - T'T - s'A'As = 2A'T - 2A'As

grad s's = 2s

Assim, definindo L = -σ, temos, minimizando o funcional E'E + Ls's:

2A'T - 2A'As + 2Ls = 2A'T - 2A'As - 2σs = 0 =&gt; A'As + σs = A'T =&gt; (A'A + σI)s = A'T 

Vendo I como sendo I'I, podemos generalizar esse resultado para uma matriz de regularização R qualquer:

(A'A + σR'R)s = A'T, se quisermos minimizar, ao invés de s's, s'R'Rs.

(Verifique que o resultado é esse!) 


Agora, tratemos de alguns casos específicos. Um cubo sísmico, por exemplo. Seja o sistema com a configuração similar ao da figura abaixo, e suponhamos que a distância seja tão pequena que não há refração. Cada cubo tem 1 km de lado, e as vagarosidades do vetor s são dadas em s/km. Os tempos de trânsito são dados em segundos, e as distâncias, em quilômetros.



Suponhamos que a matriz de distâncias seja


A = 1.001.001.030.961.091.03

e o vetor de tempos de trânsito obtido seja

T = 6.305.616.40

A solução, por mínimos quadrados é

s = -4.7411.08

Obviamente, é uma solução totalmente absurda, pois não pode haver uma velocidade negativa aqui. Além disso, o número de condição do operador, definida pela razão do maior autovalor pelo menos autovalor do operador, seria altíssima, o que, em primeira aproximação, significa que meu problema é extremamente instável. Portanto, devemos seguir alguma estratégia de estabilização.

Usando um vínculo de norma mínima, podemos obter o melhor σ para a estabilização do problema ao nosso nível de significância (usemos 5%), de duas formas.

A primeira é graficamente. Fazendo várias iterações, em cada uma aumentando σ e obtendo uma solução e, então, no final, produzindo um gráfico. No ponto em que a curva resultante parasse de oscilar (devido à instabilidade) e começasse uma queda suave (mostre que, quando σ aumenta, a solução tende para zero!).



O gráfico acima foi feito nesse sentido para nosso exemplo. Perceba que as maiores oscilações terminam ainda antes de σ = 0.1. Note que isso é algo MUITO impreciso...

Um segundo método é usar um programa iterativo para calcular, com dez (ou mais) ruídos aleatórios gaussianos diferentes, dez vetores solução e, então, obter a média e o desvio padrão de cada parâmetro. Então, aumentando σ, até que todos os parâmetros se ajustem à condição imposta (nível de significância de 5%, em nosso caso).

No nosso exemplo, depois de rodar um programa no Octave (que disponibilizo no final desse post), obteve-se um σ ótimo de σ = 0.01, com solução média s* = (2.71, 3.26), e desvios-padrão D = (0.11, 0.12). É uma solução bastante estável, mas que pode não reproduzir exatamente a realidade (pois estamos impondo uma condição que pode ser verdadeira ou não; e, de fato, não reproduz com tanta precisão, pois a solução real é s = (2.00, 4.00)).

Relembremos de nossa equação normal para o nosso problema com vínculo:

(A'A + σR'R)s = A'T

Observe que σ age como uma espécie de "peso" entre a matriz de Gram e o regularizador. Se deixarmos ambas com o mesmo tamanho, restringiríamos bastante a busca de σ, a valores pequenos, entre 0 e 2, talvez. Então, basta escrevermos essa expressão da seguinte forma:

(A'A + σ*kR'R)s = A'T

Em que k é a razão das normas das matrizes de Gram e do regularizador, e σ* é o novo multiplicador a buscar por tentativa e erro. Esse processo chama-se normalização.


Escrevi um script para MATLAB/Octave para fazer essa investigação no caso de vínculos de norma mínima. Pois é, computador existe para fazer essas tarefas mais "burras" mesmo...


Download: http://www.4shared.com/file/sRWgtab8/Lagrange_investig.html



Próximo post, falarei do vínculo de suavidade, e de vínculos de Tikhonov de ordem maior. Até mais!