Otimização
Estrutura
• Introdução
• Métodos baseados no gradiente
–
–
–
–
Método de Newton
Método de Gauss-Newton
Método de Steepest Decent
Método de Levenberg-Marquardt
• Métodos Heurísticos
– Simulated Annealing
– Método das Formigas
Introdução
 p1 
 
p  
 pM 
M 1
parâmetros
 d1 
 
d   
d N 
N 1
 g1 ( p ) 


g ( p)    
 g N ( p )
N 1
dados
observados
dados
preditos
Introdução
 p1 
 
p  
 pM 
M 1
parâmetros
 d1 
 
d   
d N 
N 1
 g1 ( p ) 


g ( p)    
 g N ( p )
N 1
dados
observados
dados
preditos
 ( p)  [d  g ( p)]T [d  g ( p)]
norma L2
(função escalar)
Introdução
 p1 
 
p  
 pM 
M 1
parâmetros
 d1 
 
d   
d N 
N 1
 g1 ( p ) 


g ( p)    
 g N ( p )
N 1
dados
observados
dados
preditos
 ( p)  [d  g ( p)]T [d  g ( p)]
norma L2
(função escalar)
 ( p* )  0M 1
Introdução
 p1 
 
p  
 pM 
M 1
parâmetros
 d1 
 
d   
d N 
N 1
 g1 ( p ) 


g ( p)    
 g N ( p )
N 1
dados
observados
dados
preditos
 ( p)  [d  g ( p)]T [d  g ( p)]
norma L2
(função escalar)
 ( p* )  0M 1
Problema linear
Problema não-linear
Introdução
 p1 
 
p  
 pM 
M 1
parâmetros
 d1 
 
d   
d N 
N 1
 g1 ( p ) 


g ( p)    
 g N ( p )
N 1
dados
observados
dados
preditos
 ( p)  [d  g ( p)]T [d  g ( p)]
norma L2
(função escalar)
 ( p* )  0M 1
Problema linear
Problema não-linear
Introdução
 p1 
 
p  
 pM 
M 1
parâmetros
 d1 
 
d   
d N 
N 1
 g1 ( p ) 


g ( p)    
 g N ( p )
N 1
dados
observados
dados
preditos
 ( p* )  0M 1
Problema linear
g ( p)  B p  b
1
T
 T 
*
p   B B  B [ d  b ]


Problema não-linear
 ( p)  [d  g ( p)]T [d  g ( p)]
g ( p)  B p  b
norma L2
(função escalar)
p   G( p0 ) T G( p0 )  G( p0 ) T [d  g ( p0 )]


1
Introdução
 ( p)
Problema linear
p1
p2
Introdução
 ( p)
p1
p2
mínimo
Introdução
 ( p)
O mínimo pode
ser calculado
diretamente
p1
p2
p*
Introdução
 ( p)
Ou a partir de
uma aproximação
inicial
p0
p1
p2
p0
Introdução
 ( p)
p0
p1
p2
p
p0
Introdução
 ( p)
p0
p1
p2
p*
p
p0
Nesse caso, o
mínimo é
encontrado com
apenas um
“passo” a partir
da aproximação
inicial
Introdução
 ( p)
Por outro lado, em
um problema nãolinear, o mínimo é
encontrado após
sucessivos “passos” a
partir de uma
aproximação inicial
p0
p1
p2
p*
p0
Introdução
 ( p)
p1
p2
p*
Introdução
 ( p)
p1
p2
p*
Introdução
p1
 ( p)
p1
p2
p2
Curvas de nível
p*
Introdução
p1
p2
Aproximação
inicial
Introdução
p1
p2
Introdução
p1
p2
Introdução
p1
p2
Introdução
p1
Estimativa do
ponto mínimo
obtida após a
otimização
p2
Introdução
p1
p2
A partir de um
determinado ponto,
é necessário
estabelecer uma
direção e o
comprimento do
passo que será
dado
Introdução
p1
p2
Introdução
p1
p2
Introdução
p1
Direção
p2
Introdução
p1
Tamanho do passo
p2
Introdução
Existem dois grupos principais de
métodos para estimar o mínimo
de uma função:
Introdução
Existem dois grupos principais de
métodos para estimar o mínimo
de uma função:
Métodos que se baseiam no
gradiente da função
Métodos Heurísticos
Introdução
• Métodos baseados no gradiente
– Método de Newton
– Método de Gauss-Newton
– Método de Steepest Decent
– Método de Levenberg-Marquardt
• Métodos Heurísticos
– Simulated Annealing
– Método das Formigas
Métodos baseados no gradiente
Vamos às contas!
Métodos baseados no gradiente
 ( p)
Métodos baseados no gradiente
 ( p)
1 T
 ( p0   p)   ( p0 )   ( p0 )  p   p  ( p0 ) p
2
T
Métodos baseados no gradiente
 ( p)
1 T
 ( p0   p)   ( p0 )   ( p0 )  p   p  ( p0 ) p
2
T
 ( p0 ) p   ( p0 )
Métodos baseados no gradiente
 ( p)
1 T
 ( p0   p)   ( p0 )   ( p0 )  p   p  ( p0 ) p
2
T
 ( p0 ) p   ( p0 )
Diferença entre os métodos
Métodos baseados no gradiente
 ( p)
1 T
 ( p0   p)   ( p0 )   ( p0 )  p   p  ( p0 ) p
2
T
Newton
 ( p0 )
Gauss - Newton
 ( p0 )
Steepest Decent
1
Levenberg - Marquardt
 ( p0 )   
 ( p0 ) p   ( p0 )
Diferença entre os métodos
Métodos baseados no gradiente
Método
Convergência
Steepest Decent
0
Levenberg - Marquardt
1
Gauss - Newton
2
Newton
3
0 – lento

3 – rápido
Métodos baseados no gradiente
Método
Aproximação
inicial
Steepest Decent
Pode ser distante
Levenberg - Marquardt
Pode ser distante
Gauss - Newton
Deve ser próxima
Newton
Deve ser próxima
Métodos baseados no gradiente
Método
Direção
Steepest Decent
É a do gradiente
Entre a do gradiente e a do
Levenberg - Marquardt produto hessiana-gradiente
Gauss - Newton
Predita pelo produto
hessiana-gradiente
Newton
Predita pelo produto
hessiana-gradiente
Métodos baseados no gradiente
Método
Tamanho do passo
Steepest Decent
Depende de um parâmetro
e do gradiente
Depende de um parâmetro,
Levenberg - Marquardt do gradiente e da hessiana
Gauss - Newton
Depende do gradiente e da
hessiana
Newton
Depende do gradiente e da
hessiana
Métodos baseados no gradiente
Método
Custo
computacional
Steepest Decent
0
Levenberg - Marquardt
2
Gauss - Newton
1
Newton
3
0 – baixo

3 – alto
Métodos Heurísticos
(Simulated Annealing)
temp_inicial, temp_final, kappa, itmax, pinferior, psuperior, pinicial
iteracao = 0, p1 = pinicial, calcula f(p1), fminimo = f(p1), pminimo = p1
temperatura = temp_inicial
FAÇA {
• iteracao = iteracao + 1
• sorteia p2, calcula f(p2)
• SE [f(p2) < fminimo]  fminimo = f(p2), pminimo = p2
• probabilidade de sobrevivência ps
• SE [f(p2) < f(p1)]  ps = 1
• SE [f(p2) ≥ f(p1)]  ps = exp {[f(p1) - f(p2)]/temperatura}
• SE{[ps = 1] OU [ps ≠ 1] E [moeda ≤ ps]}  p1 = p2
• temperatura = kappa*temperatura
} ENQUANTO [(iteracao <= itmax) E (temperatura >= temp_final)]
Métodos Heurísticos
(Simulated Annealing)
temp_inicial, temp_final, kappa, itmax, pinferior, psuperior, pinicial
iteracao = 0, p1 = pinicial, calcula f(p1), fminimo = f(p1), pminimo = p1
temperatura = temp_inicial
FAÇA {
• iteracao = iteracao + 1
• sorteia p2, calcula f(p2)
• SE [f(p2) < fminimo]  fminimo = f(p2), pminimo = p2
• probabilidade de sobrevivência ps
• SE [f(p2) < f(p1)]  ps = 1
• SE [f(p2) ≥ f(p1)]  ps = exp {[f(p1) - f(p2)]/temperatura}
• SE{[ps = 1] OU [ps ≠ 1] E [moeda ≤ ps]}  p1 = p2
• temperatura = kappa*temperatura
} ENQUANTO [(iteracao <= itmax) E (temperatura >= temp_final)]
Métodos Heurísticos
(Simulated Annealing)
1,0
λ alto
0,8
λ baixo
f(p1) ≤ f(p2)
exp [-x/λ]
f(p2) - f(p1) = x
λ médio
0,6
0,4
temperatura = λ
0,2
0,0
0
20
40
60
x
80
100
Métodos Heurísticos
(Método das Formigas)
Modificada de Dorigo e Gambardella, 1997)
Download

Otimização