Você está na página 1de 41

E STATÍSTICA C OMPUTACIONAL

Departamento de Métodos Estatísticos


Instituto de Matemática
Universidade Federal do Rio de Janeiro
Otimização Numérica

I Problemas de otimização envolvem a minimização ou maximização de


uma função objetivo ou função de custo.

I Veremos métodos determinísticos e estocásticos de otimização:

I Determinísticos: Gradient Descent (Ascent), Busca Exaustiva, Método de


Otimização de Newton e Algoritmo EM.

I Estocástico: Simulated Annealing


Gradient Descent (para o mínimo)

I Acha o mínimo (ou máximo - gradient ascent) de uma função


“andando"na direção oposta da maior variação local da função objetivo.

I O que é gradiente?

O gradiente é uma função f (x1 , x2 , · · · , xn ) denotada por ∇f , tal que:


 
∂f ∂f
∇f = ,··· ,
∂x1 ∂xn
Exemplo: f(x,y,z) = 2x + 3y2 − sen(z)
 
∂f ∂f ∂f
∇f = , , = (2, 6y , −cos(z))
∂x ∂y ∂z

A cada ponto (x, y , z), o gradiente mostra em qual direção a função muda
mais depressa.
Gradient Descent (para o mínimo)

I Suponha que a função objetivo é S = S(X ), X = {X1 , X2 , · · · , XN }


I O processo iterativo para achar o valor mínimo da função objetivo é
dado por:

X (k +1) = X (k ) − α(k ) ∇S(X (k ) )

onde:
I X é o vetor de variáveis a serem otimizadas;
I α(k ) é o passo de procura (pode ser constante α = α(k ) )
I k é o contador
I Algoritmo:
1. Dê valores iniciais X (0) e escolha α(k ) . Faça k = 0
2. Obtenha X (k +1) = X (k ) − α(k ) ∇S(X (k ) )
3. Retorne a (2) até que |X (k −1) − X (k ) | < 

I PS. Para achar o máximo da função (Gradient Ascent), substituir o


passo 2 por X (k +1) = X (k ) + α(k ) ∇S(X (k ) )
Gradient Descent

I O método não é muito eficiente, e torna-se lento quando chegamos


perto do valor mínimo;

I Cuidado com o passo de procura: Muito grande pode levar à


divergência; muito pequeno pode demorar a convergir;

I Problema: pode ficar perdido em um mínimo local.

I Idem para o Gradient Ascent.


Busca Exaustiva

I é um método pouco eficiente, porém pode ser útil para resolver


problemas com instâncias pequenas

I funciona bem na computação paralela.

I A ideia básica é dividir o domínio da função uniformemente e obter os


valores da função em “todos os pontos"
Método de Otimização de Newton

I Usa informação da 2a derivada da função objetivo;

I Suponha que S(x) seja pelo menos duas vezes diferenciável

I A expansão de taylor de S(x) em torno do vetor h é:

1 T 2
S(x + h) = S(x) + ∇S(x)T h + h D S(x)h + o(h3 )
2
onde:
I ∇S(x) é o gradiente
I D 2 S(x) é matriz hessiana (matriz de derivadas de 2a ordem)
I Mantendo apenas os dois primeiros termos da série temos:

S(x + h) ≈ S(x) + ∇S(x)T h


∇S(x + h) ≈ ∇S(x) + D 2 S(x)h
I O ponto ótimo é obtido quando ∇S(x + h) = 0 → Ponto de máximo ou
mínimo.
Método de Otimização de Newton

I Logo, hotm ≈ −[D 2 S(x)]−1 ∇S(x)

I O vetor que otimiza a função S(x) é

(x + hotm ) ≈ x − [D 2 S(x)]−1 ∇S(x)


I O processo iterativo de otimização de Newton é dado por:

x (k +1) = x (k ) + α(k ) d (k )
onde d (k ) = −[D 2 S(x (k ) )]−1 ∇S(x (k ) )
I No caso α(k ) = 1, e x escalar, temos:

f 0 (x (k ) )
x (k +1) = x (k ) −
f 00 (x (k ) )
I As iterações são feitas até f 0 (x (k ) ) ou |x (k +1) − x (k ) | for muito pequeno.
Exemplo

Considere o seguinte modelo de regressão Poisson com uma covariável:

(yi |β1 , β2 ) ∼ Poi(exp(β1 + β2 xi )), i = 1, . . . , n.

Como encontrar o estimador de máxima verossimilhança para os


coeficientes de interesse?

A função log-verossimilhança é dada por


n
X
`(β1 , β2 ) = c + [yi (β1 + β2 xi ) − exp(β1 + β2 xi )] .
i=1

Daí, temos
n
d`(β1 , β2 ) X
u1 (β1 , β2 ) = = [yi − exp(β1 + β2 xi )]
dβ1
i=1
n
d`(β1 , β2 ) X
u2 (β1 , β2 ) = = [(yi − exp(β1 + β2 xi ))xi ].
dβ2
i=1

d`(β1 ,β2 )
Qual a solução dos sistemas dβi
= 0, i = 1, 2? Ou seja, quais os
estimadores βb1 e βb2 ?
Podemos calcular a matriz de segundas derivadas:
n  
X exp(β1 + β2 xi ) exp(β1 + β2 xi )xi
H(β) = − 2 .
exp(β1 + β2 xi )xi exp(β1 + β2 xi )xi
i=1

Isso leva ao algoritmo iterativo:

β (i) = β (i−1) − [H(β (i−1) )]−1 u(β (i−1) ),

em que u(β) = (u1 (β1 , β2 ), u2 (β1 , β2 ))

Exemplo 8.r
Algoritmo Esperança-Maximização (EM)

I O algoritmo EM pode ser aplicado em modelos de dados faltantes.

I Estes modelos têm uma função de verossimilhança que pode ser


expressa por Z
f (x|θ) = f (x, z|θ)dz.

I A função de interesse é a marginal de um modelo conjunto para (x, z).


Exemplo: modelo Poisson

Considere (x1 , . . . , xn ) uma amostra aleatória tal que xi ∼ Poi(τi ) e


(y1 , . . . , yn ) uma amostra aleatória tal que yi ∼ Poi(βτi ), independente da
primeira.

A função de verossimilhança para (β, τ1 , . . . , τn )0 é dada por


n
Y
L(β, τ |x, y ) = fX (xi |τi )fY (yi |τi , β)
i=1
n x
Y e−τi τi i e−βτi (βτi )yi
= .
xi ! yi !
i=1

Podemos mostrar que


y xi + yi
β̂ = , e τ̂i = , i = 1, . . . , n.
x β̂ + 1
Suponha que x1 é um dado faltante. Neste caso, como poderíamos obter
τ̂1 = (x1 + y1 )/(β̂ + 1) e β̂ = y /x?

Uma opção é ignorar a observação y1 e considerar os dados


((x2 , y2 ), . . . , (xn , yn )). Mas estaríamos descartando dados observados.

Outra opção é considerar a verossimilhança para dados incompletos ou


faltantes,
Z
f (y1 , (x2 , y2 ), . . . , (xn , yn )|β, τ ) = f ((x1 , y1 ), (x2 , y2 ), . . . , (xn , yn )|β, τ )dx1 .

Definimos f (y1 , (x2 , y2 ), . . . , (xn , yn )|β, τ ) como a verossimilhança para os


dados incompletos.
Nesse problema temos duas funções de verossimilhança:

I Dados completos:

L(β, τ |(x1 , y1 ), (x2 , y2 ), . . . , (xn , yn )) = f ((x1 , y1 ), (x2 , y2 ), . . . , (xn , yn )|β, τ ).

I Dados incompletos:
Z
L(β, τ |y1 , (x2 , y2 ), . . . , (xn , yn )) = f ((x1 , y1 ), (x2 , y2 ), . . . , (xn , yn )|β, τ )dx1 .
Exemplo: modelo de mistura

Suponha que a variável aleatória X tem distribuição dada por uma mistura tal
que
fX (x|θ) = θf1 (x) + (1 − θ)f2 (x),
em que f1 e f2 são funções de densidade de probabilidades conhecidas.

Para uma amostra aleatória (X1 , . . . , Xn ) com distribuição fX temos a função


de verossimilhança dada por
n
Y
L(θ|x) = [θf1 (xi ) + (1 − θ)f2 (xi )],
i=1
Considere introduzir no problema variáveis aleatórias auxiliares Z1 , Z2 , . . . , Zn
tal que
Zi ∼ Ber(θ), i = 1, . . . , n
Dessa forma,

f (xi |zi = 1) = f1 (xi )


f (xi |zi = 0) = f2 (xi ).

Ao integrarmos Zi obtemos a função de densidade de probabilidade original


para Xi .

Podemos mostrar que a função de verossimilhança completa é dada por


n n
Y o
Lc (θ|x, z) = [(f1 (xi ))zi (f2 (xi ))1−zi ]θzi (1 − θ)1−zi .
i=1

Se conhecêssemos (z1 , . . . , zn ), então encontraríamos facilmente o


estimador de máxima verossimilhança para θ na função de verossimilhança
completa.
Algoritmo Esperança-Maximização (EM)

I Método iterativo que calcula o estimador de máxima verossimilhança em


casos de dados incompletos ou faltantes.
I Transformamos o problema de encontrar o máximo de uma função
complicada em dois problemas mais simples: esperança (E) e
maximizaço (M).
I Foi introduzido por Dempster (1977).
I Iremos abordar o problema de maximizar funções de verossimilhança.

Suponha que observamos uma amostra aleatória (X1 , . . . , Xn ) da distribuição


f (x|θ).

Considere a função de verossimilhança L(θ|x) = ni=1 f (xi |θ).


Q

Queremos encontrar θ̂ = argmáxθ L(θ|x).

Considere as variáveis auxiliares ou dados faltante (Z1 , . . . , Zn ) e a


distribuição conjunta para (X , Z ), f (x, z|θ).
Seja X a variável aleatória observada e Z a variável aleatória faltante. De
forma geral temos:

I Função de verossimilhança para dados completos,

Lc (θ|x, z) = f (x, z|θ); e


I Função verossimilhança para dados incompletos,
Z
L(θ|x) = f (x|θ) = f (x, z|θ)dz.
Identidade básica do algoritmo
Sabemos que a distribuição condicional de z faltante dado os observáveis e
θ é dada por
f (x, z|θ)
f (z|x, θ) = .
f (x|θ)
Daí,
log f (z|x, θ) = log f (x, z|θ) − log f (x|θ) = `c (θ|x, z) − `(θ|x).
sendo `c (θ|x, z) e `(θ|x) os logaritmos das funções de verossimilhança
completa e incompleta, respectivamente.

Se tomamos a esperança na distribuição do que é faltante, ou seja, na


distribuição de (z|x, θ) para θ = θ0 obtemos a relação

`(θ|x) = E(`c (θ|x, z)|x, θ0 ) − E(log(f (z|x, θ))|x, θ0 ).

Para maximizar `(θ|x), pode ser mostrado que basta maximizar:

E(`c (θ|x, z)|θ0 , x).


Algoritmo iterativo para maximizar

Q(θ|x, θ0 ) = E(`c (θ|x, z)|θ0 , x),

sendo a esperança calculada na distribuição de (z|x, θ0 ).


1. Inicialize m = 0 e dê um valor inicial para θ̂(m)
2. Calcule a esperança Q(θ|x, θ̂(m) ); e
3. Maximize Q(θ|x, θ̂(m) ) em θ:

θ̂(m+1) = argmáxθ Q(θ|x, θ̂m ).

4. Faça m = m + 1 e repita os passos anteriores até atingir o critério de


parada.
Podemos mostrar que
L(θ̂(m+1) |x) > L(θ(m) |x),
com igualdade se, e somente se, Q(θ̂(m+1) |x, θ̂(m) ) = Q(θ̂(m) |x, θ̂(m) )
Exemplo: modelo Poisson

Voltemos ao modelo Poisson. Consideramos x1 como dado faltante.

Podemos considerar o Algoritmo EM para encontrar as estimativas de


máxima verossimilhança.

Precisamos calcular
E(`c (β, τ |x, y )|β0 , τ0 ),
na distribuição de X1 |τ0 , β0 , isto é, em (X1 |τ0 , β0 ) ∼ Poi(τ01 ).
Passo E: Calculamos o valor esperado

Q(τ, β|τ01 ) = E(`c (β, τ |x, y )|β0 , τ0 )


X n n
X
= c+ [−τi + xi log(τi )] + [−βτi + yi (log(β) + log(τi ))]
i=2 i=1
− τ1 + τ01 log(τ1 ).

Passo M: Maximizamos a função Q(τ, β|τ10 ) em (τ, β).


Vimos que no caso de dados completos ((x1 , y1 ), . . . , (xn , yn )),
y xi + yi
β̂ = , e τ̂i = , i = 1, . . . , n.
x β̂ + 1
No caso de x1 faltante, o algoritmo EM (Passo M) é dado por

Pn
i=1 yi
β̂(m+1) = Pn
x
i=2 i + τ1(m)
xi + yi
τ̂i(m+1) = , i = 2, . . . , n
β̂(m+1) + 1
τ1(m) + y1
τ̂1(m+1) = .
β̂(m+1) + 1

Exemplo 36c.r
Exemplo: Modelo de ligação genética (Rao, 1973)

I Suponha que espécies de animais são classificados em 4 categorias


com probabilidades:
 
1 θ 1 1 θ
+ , (1 − θ), (1 − θ),
2 4 4 4 4
I Suponha que observamos os seguintes dados em 197 animais:

y = (y1 , y2 , y3 , y4 ) = (125, 18, 20, 34)


I Verossimilhança:

L(θ|y ) ∝ (2 + θ)y1 (1 − θ)y2 +y3 θy4


I Supondo f (θ) ∝ 1, a posteriori é proporcional à verossimilhança.
I Posteriori:

f (θ|y ) ∝ (2 + θ)y1 (1 − θ)y2 +y3 θy4


I Aumente os dados observados pela divisão da primeira categoria em
duas categorias com probabilidades 1/2 e θ/4.
I Agora temos as categorias 1.1 (com prob. 1/2) e 1.2 (com prob. θ/4)
I Os dados aumentados são: Z = (x1 , x2 , x3 , x4 , x5 )

x1 + x2 = y1 = 125
x3 = y2 = 18
x4 = y3 = 20
x5 = y4 = 34
I A posteriori aumentada tem uma forma funcional bem mais simples:

P(θ|y , z) ∝ θx2 +x5 (1 − θ)x3 +x4

Q(θ|θ0 ) = E(`c (θ|y , z)) em relação a (z|θ0 , y )

Q(θ|θ0 ) = E[(x2 + x5 )log(θ) + (x3 + x4 )log(1 − θ)|θ0 , y ]


= [E(x2 |θ0 , y ) + y4 ]log(θ) + (y2 + y3 )log(1 − θ)
Note que (x2 |θ0 , y ) ∼ Bin(y1 , p), onde

θ0 /4 θ0
p= =
1/2 + θ0 /4 2 + θ0

θ0
então E(x2 |θ0 , y ) = y1 ( 2+θ ).
0

Logo,

 
125θ0
Q(θ|θ0 ) = + 34 log(θ) + 35log(1 − θ)
θ0 + 2
Passo M:

∂Q(θ|θ0 )
|θ=θ̂ = 0
∂θ

Logo,

E(x2 |θ0 , Y ) + x5 (x3 + x4 )


− =0
θ̂ 1 − θ̂
E(x2 |θ0 , Y ) + x5
θ̂ =
E(x2 |θ0 , Y ) + x3 + x4 + x5
125θ0
onde E(x2 |θ0 , Y ) = θ0 +2
Algoritmo

Algoritmo:
1. Inicialize θ(0)
2. Passo E: Substitua θ(i) em Q(θ|θ(i) )
3. Passo M: Maximize Q(θ|θ(i) ) com respeito a θ, e obtenha θ(i+1)

E(x2 |θ(i) , y ) + x5
θ(i+1) =
E(x2 |θ(i) , y ) + x3 + x4 + x5
Exemplo 2: Regressão com dados censurados

Exemplo: Tempos de falha de motores em determinadas temperaturas

150 170 190 220


8064* 1764 408 408
8064* 2772 408 408
8064* 3444 1344 504
8064* 3542 1344 504
8064* 3780 1440 504
8064* 4860 1680* 528*
8064* 5196 1680* 528*
8064* 5448* 1680* 528*
8064* 5448* 1680* 528*
8064* 5448* 1680* 528*

O modelo sugerido é:

ti = β 0 + β 1 v i + i , i ∼ N(0, σ 2 )
onde ti = log10 (tempo), e vi = 1000/(temperatura + 273, 2)
Algoritmo EM

I Se os dados não fossem censurados, teríamos um problema de


regressão simples.
I Com censura, usamos o algoritmo EM.
1. Passo E: Estima-se o valor dos dados que foram censurados.
2. Passo M: Ajusta-se o modelo ao conjunto de dados aumentado.
I Reordenamos os dados de forma que os primeiros m valores não são
censurados, e os N − m restantes são censurados
I Denotamos por z os valores “não censurados” que correspondem aos
dados de m + 1 a N

ti ∼ N(β0 + β1 vi , σ 2 ), i = 1, · · · , m → Não censurados


zi ∼ N(β0 + β1 vi , σ 2 ), i = m + 1, · · · , N → Censurados
ci → valor da censura em i
Denote por θ o vetor paramétrico: θ = {β0 , β1 , σ 2 }
Temos:

m  
Y 1 1
L(θ|v , t, c, z) = √ exp − 2 (ti − β0 − β1 vi )2
2πσ 2σ
i=1
N  
Y 1 1 2
× √ exp − 2 (zi − β0 − β1 vi )
2πσ 2σ
i=m+1

`c (θ|v , t, c, z) = log(L(θ|v , z))


m
√ 1 X
E(`c (θ|v , t, c, z)) = −Nlog( 2πσ) − (ti − β0 − β1 vi )2
2σ 2
i=1
N
1 X h
− E(zi2 |β0 , β1 , σ, zi > ci )
2σ 2
i=m+1

− 2(β0 + β1 vi )E(zi |β0 , β1 , σ, zi > ci ) + (β0 + β1 vi )2 ]


Como obter E(zi |β0 , β1 , σ, zi > ci ) e E(zi2 |β0 , β1 , σ, zi > ci )?

(zi |β0 , β1 , σ) ∼ N(β0 + β1 vi , σ 2 )

(zi |β0 , β1 , σ, zi > ci ) ⇒ Normal Truncada

é possível mostrar que:


c − µ 
i i
E(zi |β0 , β1 , σ, zi > ci ) = µi + σH
σ
e
c − µ 
i i
E(zi2 |β0 , β1 , σ, zi > ci ) = µ2i + σ 2 + σ(ci + µi )H
σ
φ(x)
onde µi = β0 + β1 vi e H(x) = 1−Φ(x)
Maximizar Q leva às equações usuais para estimar β0 e β1 , mas a
maximização com respeito a σ requer solucionar a seguinte equação:

m N
X (ti − β0 − β1 vi )2 X h
+ E(zi2 |β0 , β1 , σ0 , zi > ci )
σ4
i=1 i=m+1

N
−2(β0 + β1 vi )E(zi |β0 , β1 , σ0 , zi > ci ) + (β0 + β1 vi )2 /σ 4 − 2 = 0
σ

Pode-se mostrar que:

 1/2
(i) (i) (i)
" ! !#
Xm
(tj − µj )2 2
N
X c j − µj cj − µj
σi+1 =  + σi 1+ H /N 
N σi σi
j=1 j=m+1

(i) (i) (i)


onde µj = β0 + β1 vj
Algoritmo

Algoritmo:

1. Estime β00 , β10 e σ 0 por mínimos quadrados usando os dados


censurados (como em uma regressão usual)

2. Faça i = i + 1 e estime σ (i)

(i−1) (i−1)
3. Estime E(zj |β0 , β1 , σ (i) , zj > cj ), j = m + 1, · · · , N

(i) (i)
4. Estime β0 e β1 substituindo E(zj |·), j = m + 1, · · · , N

5. Volte ao passo 2.

(i) (i−1) (i) (i−1)


6. Pare quando |β0 − β0 | < , |β1 − β1 | <  e |σ (i) − σ (i−1) | < 
Arrefecimento simulado (Simulated anneling)

I Método utilizado para maximização ou minimização de funções.

I Deseja-se maximizar ou minimizar f (x), x ∈ R.

I Método introduzido por Metropolis et al. (1953).

I Ideia: mudar a escala (temperatura) da função objetivo permite


mudanças mais rápidas de uma moda para outra na superfície de
interesse.

I Isto é, a mudança de escala evita que o método fique preso em modas


locais.
Maximização de f (x)

I Dada uma temperatura T > 0, definimos uma nova função objetivo dada
por  
f (x)
g(x) ∝ exp .
T
I O valor que maximiza g(x) também maximiza f (x).

I Um valor x ? é proposto da distribuição U(x (i−1) − ∆, x (i−1) + ∆). Esse


valor é aceito com probabilidade α dada por:

g(x ? )
 
α = mín 1, .
g(x (i−1) )
I A função g é utilizada com o objetivo de diminuir vales e picos, tornando
possível passar de uma moda local para uma outra moda. Esta função
depende de T , que diz quanto a função deve ser suavizada.
Figura: Exemplo da função g(x) para diferentes temperaturas.

I Para T < 1 a função g(x) se torna mais concentrada e os picos mais


altos.
I Para T > 1 a função se torna mais vaga e os picos menos acentuados.
Temperatura

I A temperatura T é grande no início do algoritmo, de forma a permitir


passar de modas locais para moda global e deve ser reduzida aos
poucos até que a moda global seja atingida.

I As questões que devem ser resolvidas são:

I Definição de T ;

I Escolha de ∆; e

I Escolha do esquema de redução da temperatura.

I Um reinício pode ser incluído, isto é, o algoritmo é reiniciado partindo do


melhor valor até aquele momento para a otimização da função.

I Para o caso multivariado basta escolher (x1? , . . . , xp? ) da distribuição


uniforme p-variada (hipercubo de dimensão p).
Exemplo: mistura de normais

Deseja-se maximizar a função:


!
0, 7 x − 10
f (x) = 0, 3φ (x − 10) + p φ p .
1, 5 1, 5

0.15
0.10
f(x)
0.05
0.00

6 8 10 12 14 16 18 20 22
x

Figura: Maximizar a função mistura discreta de normais.

Exemplo 34.r
Exemplo: senos e cosenos

Deseja-se maximizar a função:

f (x) = (cos(50x) + sen(20x))2 , x ∈ (0; 0, 5).

3
f(x)
2
1
0

0.00 0.10 0.20 0.30 0.40 0.50


x

Figura: Maximizar a função f (x) = (cos(50x) + sen(20x))2 .

Exemplo 35.r
Exemplo: duas dimensões

Deseja-se maximizar a seguinte função:

f (x, y ) = 0, 60 exp{−0, 5[(x − 2)2 + (y − 2)2 ]}


+ 0, 35 exp{−0, 5[(x − 5)2 + (y − 5)2 ]}
+ 0, 05 exp{−0, 5[(x − 3)2 + (y − 6)2 ]}.

Esta função possui um máximo local no ponto (5, 5) e o máximo global no


ponto (2, 2).

Exemplo 36.r

I Considere como acerto o algoritmo atingir o ponto (2, 2) para


f (2, 2) = 0, 6000534, então o critério utilizado foi acerto quando
|máx − f (2, 2)| < 0, 01, em que máx é o valor da função no ponto ótimo
do algoritmo.
I Seja k tal que a cada k iterações a temperatura é reduzida em 10% no
algoritmo.
I O ponto inicial foi escolhido aleatoriamente da U((1, 7) × (1, 7)).
k ∆ T inicial % de acerto
10 4
100 0,001 103 12
107 12
10 96
100 0,02 103 86
107 86
10 100
100 1 103 100
107 100

Note que para ∆ = 0, 001 os resultados obtidos são muito ruins, para
∆ = 0, 02 são bastante bons e para ∆ = 1 são excelentes.

Para aumento na temperatura inicial, dependendo do ∆ utilizado, tanto pode


resultar em melhora como em piora das estimativas. Por exemplo, para
∆ = 0, 02 e k = 1.000 quando T é aumentado as estimativas melhoram,
mas para k = 100 acontece o contrário. Entretanto, há efeito da temperatura.

Sugestão: tente reproduzir os dados da tabela acima.

Você também pode gostar