gradiente simplex & aplicações - ime.unicamp.brcheti/apre.pdf · hessiana simplex método de...

31

Upload: trinhlien

Post on 04-Dec-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Gradiente Simplex

&

Aplicações

Bruno Henrique Cervelin

DMA - IMECC - UNICAMP

16 de março de 2012

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

1 Gradiente SimplexDe�nição de SimplexDe�nição e Propriedades do Gradiente Simplex

2 Métodos de Busca LinearFormas de encontrar αk

Forma de encontrar dkCálculo do Gradiente Simplex tq ∆k ≤ µ‖∇S f (xk)‖Método de Busca linear Baseado em Gradiente simplexConvergência Global

3 Método do �ltro implícito

4 Hessiana Simplex

5 Método de busca padrão guiado por derivadas simplexMétodo de busca padrãoSID-PSM

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Referências:Vicente

Kelley

Manual SID-PSM - Vicente

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

De�nição de SimplexDe�nição e Propriedades do Gradiente Simplex

Gradiente Simplex

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

De�nição de SimplexDe�nição e Propriedades do Gradiente Simplex

Um simplex no IRn é um conjunto de n + 1 pontos x0, x1, . . . , xn noIRn.

matriz de direções simplex:

L(S) = [x1 − x0, x2 − x0, . . . , xn − x0]

vetor de diferença de valor de função objetivo:

δf (S) = [f (x1)− f (x0), f (x2)− f (x0), . . . , f (xn)− f (x0)]t

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

De�nição de SimplexDe�nição e Propriedades do Gradiente Simplex

Quando L(S) é não singular, o simplex S é não singular;

diâmetro:diam(S) = max

0≤i,j≤n‖xi − xj‖,

tamanho orientado∆ = max

1≤j≤n‖x0 − xj‖.

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

De�nição de SimplexDe�nição e Propriedades do Gradiente Simplex

O volume de um simplexé de�nido como

vol(S) =|det(L)|

n!.

O volume não é uma medida boa para quali�car a geometria dosimplex, usamos em seu lugar o volume normalizado:

von =

(S

diam(S)

)=

|det(L)|n!diam(Y )n

L não singular ⇒ vol(S) > 0. (det(A) 6= 0 se A não singular)

um simplex é dito Λ− posicionado se ‖D−1‖ < Λ, onde D é amatriz diagonal da decomposição SVD de Lt/∆.

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

De�nição de SimplexDe�nição e Propriedades do Gradiente Simplex

Gradiente simplex é de�nido como a solução do sistema

Lt∇S f (x0) = δf (S)

Se S é não singular

∇S f (x0) = L−tδf (S).

∇S f (x0) pode ser visto como os coe�cientes da interpolação linearde f pelo modelo m(x) = f (x0) + (x − x0)tg nos pontos x1,x2,. . .,xn.

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

De�nição de SimplexDe�nição e Propriedades do Gradiente Simplex

[Kelley]: Se ∇f for Lipschitz contínua em uma vizinhaça de S então

‖∇f (x0)−∇S f (x0)‖ ≤ K∆,

onde K é uma constante que depende de cond2(S) e da constantede Lipschitz de ∇f .A demonstração baseia-se no teorema de Taylor e na suavidade de f .

[Vicente] outra forma de ver esse teorema é usando a perspectiva deinterpolação linear.

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Formas de encontrar αk

Forma de encontrar dk

Cálculo do Gradiente Simplex tq ∆k≤ µ‖∇S f (x

k)‖

Método de Busca linear Baseado em Gradiente simplexConvergência Global

Métodos de Busca Linear

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Formas de encontrar αk

Forma de encontrar dk

Cálculo do Gradiente Simplex tq ∆k≤ µ‖∇S f (x

k)‖

Método de Busca linear Baseado em Gradiente simplexConvergência Global

Mesma idéia da otmização com derivadas.

Escolhemos direção dk de descida e procuramos αk que diminua ovalor da função

φ(α) = f (xk + αdk).

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Formas de encontrar αk

Forma de encontrar dk

Cálculo do Gradiente Simplex tq ∆k≤ µ‖∇S f (x

k)‖

Método de Busca linear Baseado em Gradiente simplexConvergência Global

Formas para encontrar αk

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Formas de encontrar αk

Forma de encontrar dk

Cálculo do Gradiente Simplex tq ∆k≤ µ‖∇S f (x

k)‖

Método de Busca linear Baseado em Gradiente simplexConvergência Global

usando derivadas:encontrar α tal que:

φ′(α) = 0.

sem derivadas: iniciamos com um intervalo [a0, b0] que sabemospossuir um minimizador para φ e dividimos os intervalos descartandoa parte onde não temos o minimizador.

backtracking: dado β ∈ (0, 1) calculamos φ(xk + βidk) parai = 0, 1, 2, . . . até encontrarmos decrésimo (simples ou su�ciente).

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Formas de encontrar αk

Forma de encontrar dk

Cálculo do Gradiente Simplex tq ∆k≤ µ‖∇S f (x

k)‖

Método de Busca linear Baseado em Gradiente simplexConvergência Global

Formas para encontrar dk

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Formas de encontrar αk

Forma de encontrar dk

Cálculo do Gradiente Simplex tq ∆k≤ µ‖∇S f (x

k)‖

Método de Busca linear Baseado em Gradiente simplexConvergência Global

com derivadas:

dk = −∇f (xk) (Maxima descida)dk = −Hk∇f (xk) (Quase Newton)

sem derivadas:Sabemos que ‖∇f (x0)−∇S f (x0)‖ ≤ K∆, logo se tivermos umsimplex S , com ∆ pequeno, o gradiente simplex estará próximo dogradiente.Logo consideraremos −∇S f (x0) um bom candidato a direção dedescida. Se não conseguirmos um drecéscimo su�ciente diminuimoso tamanho de ∆k , obtemos uma nova amostra e calculamos umnovo gradiente simplex.

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Formas de encontrar αk

Forma de encontrar dk

Cálculo do Gradiente Simplex tq ∆k≤ µ‖∇S f (x

k)‖

Método de Busca linear Baseado em Gradiente simplexConvergência Global

Se calcularmos ∇S f (xk) tal que ∆k ≤ µ‖∇S f (xk)‖, para algumaconstante µ > 0, temos

‖∇f (xk)−∇S f (xk)‖‖∇S f (xk)‖

≤ Kµ,

logo se µ→ 0, então ∇S f (xk)→ ∇f (xk).

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Formas de encontrar αk

Forma de encontrar dk

Cálculo do Gradiente Simplex tq ∆k≤ µ‖∇S f (x

k)‖

Método de Busca linear Baseado em Gradiente simplexConvergência Global

INICIALIZACÃO:1 de�na: i = 0.2 de�na: ∇S f (xk)(0) = ∇S f (xk)3 ω ∈ (0, 1) (é de�nido pelo método de busca linear).

ENQUANTO ∆k > µ‖∇S f (xk)(i)‖REPITA:

1 faça i = i + 12 De�na ∆k = ωiµ‖∇S f (xk)(0)‖3 Calcule um novo gradiente simplex ∇S f (xk)(i) baseado em uma

amostra contendo xk e contida em B(xk ; ∆k).4 ∇S f (xk) = ∇S f (xk)(i)

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Formas de encontrar αk

Forma de encontrar dk

Cálculo do Gradiente Simplex tq ∆k≤ µ‖∇S f (x

k)‖

Método de Busca linear Baseado em Gradiente simplexConvergência Global

Método de Busca linear Baseado emGradiente simplex

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Formas de encontrar αk

Forma de encontrar dk

Cálculo do Gradiente Simplex tq ∆k≤ µ‖∇S f (x

k)‖

Método de Busca linear Baseado em Gradiente simplexConvergência Global

Inicialização:1 ponto inicial x02 amostra de pontos {y0

0= x0, y

10, . . . , yn

0}

3 β, η e ω ∈ (0, 1)

4 jmax ∈ N

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Formas de encontrar αk

Forma de encontrar dk

Cálculo do Gradiente Simplex tq ∆k≤ µ‖∇S f (x

k)‖

Método de Busca linear Baseado em Gradiente simplexConvergência Global

para k = 1, 2, . . .1 Calcular Gradiente Simplex tal que ∆k ≤ µ‖∇S f (xk)‖

De�na jatual = jmax e µ = 1.2 Busca Linear: para j = 0, 1, 2, . . . , jatual

de�na α = βj

calcule f (xk − α∇S f (xk)).se f (xk − α∇S f (xk)) ≤ f (xk)− ηα‖∇S f (xk)‖2PARE, de�na αk = α, vá para passo 4

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Formas de encontrar αk

Forma de encontrar dk

Cálculo do Gradiente Simplex tq ∆k≤ µ‖∇S f (x

k)‖

Método de Busca linear Baseado em Gradiente simplexConvergência Global

3 Fracasso da busca linear:divida µ por 2recalcule ∇S f (xk) tal que ∆k ≤ µ‖∇S f (xk)‖faça jatual = jatual + 1volte para o passo 2

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Formas de encontrar αk

Forma de encontrar dk

Cálculo do Gradiente Simplex tq ∆k≤ µ‖∇S f (x

k)‖

Método de Busca linear Baseado em Gradiente simplexConvergência Global

4 De�naxk+1 = arg min

x∈Xk

{f (xk − αk∇S f (xk)), f (x)}

onde Xk é o conjunto de pontos em que f foi avaliada nos passos 1e 3.de�na y0k+1 = xk+1.atualize y1k+1, . . . , y

nk+1 a partir de y0k , y

1

k , . . . , ynk removendo um

ponto.

Possível critério de parada: ∆k < ∆tol .

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Formas de encontrar αk

Forma de encontrar dk

Cálculo do Gradiente Simplex tq ∆k≤ µ‖∇S f (x

k)‖

Método de Busca linear Baseado em Gradiente simplexConvergência Global

Para a convergência global precisamos que f seja diferenciável e ∇fLipschitz seja conínua no conjunto de nível

L(x0) = {x ∈ IRn|f (x) ≤ f (x0)}.

Como, nos passos 1 e 3, podemos analizar pontos fora do conjunto denível precisamos aumentar L(x0) de�nindo

L(x0)aum = L(x0) ∪⋃

x∈L(x0)

B(x ; ∆max) =⋃

x∈L(x0)

B(x ; ∆max)

.Onde ∆max é um limitante superior para ∆k .Consideraremos, então, ∇f Lipschitz contínua em Laum(x0) comconstante ν.

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Formas de encontrar αk

Forma de encontrar dk

Cálculo do Gradiente Simplex tq ∆k≤ µ‖∇S f (x

k)‖

Método de Busca linear Baseado em Gradiente simplexConvergência Global

se ∇f (xk) 6= 0⇒ passos 1 e 3 serão satisfeitos em um número �nitode passos.

se ∇f (xk) 6= 0⇒ o decréscimo su�ciente é satisfeito quando

0 ≤ α ≤ 2(1− η − Kµ)

ν

e

µ <1− ηK

.

Pode-se mostrar que, se f satisfaz as condições do slide anterior, asequência dos iterandos satisfazem

limk→+∞

‖∇f (xk)‖ = 0

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Método do �ltro implícito

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Não atualiza a amostra, o que fazemos é escolher uma nova amostraa cada iteração (pode ser muito caro)

Não é usada uma estratégia de precisão no gradiente simplex, logo abusca linear pode falhar.

Incorpora uma estratégia Quase-Newton, usando o gradiente simplexno lugar do gradiente quando calcula a aproximação para a hessiana.

Quando a busca linear falha, a aproximação da hessiana é reiniciada.

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

A Hessiana Simplex ∇2

S f (x0) pode ser calculada resolvendo osistema

(xi − x0)t∇S f (x0) + (xi − x0)t∇2

S f (x0)(xi − x0) = f (xi )− f (x0),

onde, xi , i = 0, . . . , p são conhecidos e p = (n + 1)(n + 2)/2− 1.

A Hessiana-Simplex pode ser vista como os coe�cientes de umainterpolação quadrática de f .

calcular a Hessiana Simplex é muito caro, temos que avaliar naordem de n2 pontos

para diminuirmos o número de avaliações de função podemoscalcular uma matriz diagonal que aproxima a hessiana, usandoapenas 2n pontos.

Com o cálculo da Hessiana Simplex podemos desenvolver métodossemelhantes ao método de Newton para otimização sem derivada.

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Método de busca padrãoSID-PSM

Método de busca padrão

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Método de busca padrãoSID-PSM

1 INICIALIZAÇÃO: D = conjunto bases geradoras positivas2 PASSO DE BUSCA: procure x ∈ Mk que diminua o valor da função

objetivo avaliando um número �nito de pontos.3 PASSO DE PESQUISA: escolha Bk ⊂ D base geradora positiva.

Procure x que diminua o valor da função objetivo nas direções deBk .

4 ATUALIZAÇÃO DO TAMANHO DO PASSO: se o passo 2 ou 3 foisucesso devemos aumentar ou manter o tamanho do passo, se nãodevemos diminuir.

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Método de busca padrãoSID-PSM

Método de busca padrão guiado porderivadas simplex

*SID-PSM*

Bruno Henrique Cervelin Gradiente Simplex & Aplicações

Gradiente SimplexMétodos de Busca LinearMétodo do �ltro implícito

Hessiana SimplexMétodo de busca padrão guiado por derivadas simplex

Método de busca padrãoSID-PSM

Utilizamos uma derivadas simplex para fazer o passo de busca.

guardamos a informação dos pontos avaliados.

a cada iteração no método de busca tentamos encontrar umsubconjunto dos pontos já avaliados que estão a uma distânciamáxima do iterando que seja Λ− posicionado e que contenha oiterando.

se conseguirmos tal conjunto calculamos uma derivada simplex, porexemplo o gradiente simplex, andamos nessa direção pela malhaprocurando um ponto que diminua o valor de f .

Bruno Henrique Cervelin Gradiente Simplex & Aplicações