Anda di halaman 1dari 23

do Algoritmo Levenberg-Marquardt para

Utilizacao
Treinamento de Redes Neurais
Roberto Menezes
Universidade Federal de Sergipe
Graduacao
em Engenharia Eletrica

Programa de Pos

29 de setembro de 2014

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

1 / 23


Introducao

O algoritmo de Levenberg-Marquardt (LM) foi desenvolvido para resolver


de funcoes
nao-lineares

iterativamente problemas de minimizacao


pelo

metodo
de mnimos quadrados.
intermediario

Ele serve como um algoritmo de otimizacao


entre o
algoritmo do Gradiente Descendente e o algoritmo Gauss-Newton e
de cada um desses metodos.

insere as limitacoes

Combinando os atributos positivos das duas tecnicas,


o algoritmo LM cria

uma tecnica
hbrida para muitas aplicacoes.

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

2 / 23

Algoritmo do Gradiente Descendente

O algoritmo do Gradiente Descendente e pouco dependente dos valores


dos pesos inicias escolhidos. Por outro lado, esse algoritmo aborda o
mnimo em uma forma linear (primeira ordem) e sua velocidade de

convergencia
e lenta.
objetivo decresce a cada iteracao.

Vantagens: Ao valor da funcao


Desvantagens: O algoritmo tende a fazer um zigzag a medida que
caminha para o valor mnimo, deixando o processo mais lento.

wi +1 = wi e(wi )

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

3 / 23

Algoritmo do Gradiente Descendente

Figura: Exemplo do uso do algoritmo do Gradiente Descendente


roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

4 / 23

Algoritmo do Gradiente Descendente


Gradiente Descendente
Passo 1: Escolher um ponto inicial w0 , (na ordem de 105 ) e inicializar
(i = 1);
o numero
de iteracoes

atraves
do gradiente:
Passo 2: Calcular a direcao

e(wi )
e(wi ) e atualizar w:
Passo 3: Determinar o melhor passo i na direcao
wi +1 = wi i e(wi )

Passo 4: Testar o novo ponto wi +1 para otimalidade. Se wi +1 e otimo,


o
vai para o Passo 5;
processo para. Se nao
sera feita (i = i + 1) e o Passo 2 recomeca.
Passo 5: Uma nova iteracao

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

5 / 23

do Algoritmo do Gradiente Descendente


Aplicacao
f (x1 , x2 ) = x1 x2 + 2x12 + 2x1 x2 + x22
Funcao:

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

6 / 23

do Algoritmo do Gradiente Descendente


Aplicacao
f (x1 , x2 ) = (1 x1 )2 + 10(x2 x12 )2
Funcao:

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

7 / 23

Algoritmo Gauss-Newton

O algoritmo de Gauss-Newton tem propriedades de convergencia

quadratica
que faz ele muito rapido.
Por outro lado a convergencia
desse

metodo
depende fortemente da escolha dos valores dos pesos iniciais.

e mais eficiente quado o ponto


Vantagens: O decrescimo
a cada iteracao
de canyon.
inicial esta na regiao
do
Desvantagens: Se o ponto inicial escolhido estiver longe do da regiao
canyon, o algoritmo ira convergir lentamente.

wi +1 = wi (2 e(wi ))1 e(wi )

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

8 / 23

Algoritmo Gauss-Newton

Figura: Exemplo do uso do algoritmo Gauss-Newton

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

9 / 23

Algoritmo Gauss-Newton
Gauss-Newton
Passo 1: Escolher um ponto inicial w0 , (na ordem de 105 ) e inicializar
(i = 1);
o numero
de iteracoes

atraves
do gradiente:
Passo 2: Calcular a direcao

e(wi )
Passo 3: Calcular a matriz Hessiana:

2 e(wi )
Passo 4: Atualizar w:
wi +1 = wi (2 e(wi ))1 e(wi )

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

10 / 23

Algoritmo Gauss-Newton

Gauss-Newton

Passo 5: Testar o novo ponto wi +1 para otimalidade. Se wi +1 e otimo,


o
vai para o Passo 6;
processo para. Se nao
sera feita (i = i + 1) e o Passo 2 recomeca.
Passo 6: Uma nova iteracao

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

11 / 23

do Algoritmo Gauss-Newton
Aplicacao
f (x1 , x2 ) = x1 x2 + 2x12 + 2x1 x2 + x22
Funcao:

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

12 / 23

do Algoritmo Gauss-Newton
Aplicacao
f (x1 , x2 ) = (1 x1 )2 + 10(x2 x12 )2
Funcao:

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

13 / 23

Algoritmo Levenberg-Marquardt

O LM utiliza o Gradiente Descendente para chegar mais rapido


a` regiao

canyon e o Gauss-Newton para convergir mais rapido


a partir dessa

regiao.
dos pesos, como proposta por Levenberg e:

Sua regra de atualizacao


wi +1 = wi (2 e(wi ) + I )1 e(wi )

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

14 / 23

Algoritmo Levenberg-Marquardt

leva em consideracao

E possvel observar que a regra de atualizacao


da superfcie do erro (metodo

tanto a inclinacao
do Gradiente

Descendente) quanto a` curvatura desta superfcie (metodo


de
Gauss-Newton).

O fator de ajuste indica qual dos dois metodos


sera predominante: para

fatores de ajuste grandes, o metodo


do gradiente descendente predomina
dos pesos ocorre fortemente na direcao
de inclinacao
da
e a atualizacao
superfcie do erro;

Caso contrario,
o metodo
de Gauss-Newton predomina e a atualizacao

ocorre mais no sentido da curvatura da funcao.

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

15 / 23

Algoritmo Levenberg-Marquardt

O algoritmo controla o valor do fator de ajuste () da seguinte forma:

Comeca-se com um valor arbitrario;


atual e aplica-se a regra de atualizacao
de
Calcula-se o erro na situacao
pesos;
o novo erro;
Calcula-se, entao,
e aumentar
Caso o erro tenha aumentado, deve-se desfazer a atualizacao
o fator de ajuste (geralmente multiplicando-o por dez);
novamente;
Em seguida, deve-se recomecar a iteracao
e diminui o fator de ajuste
Caso o erro tenha diminudo, aceita-se a iteracao
(geralmente dividindo-o por dez).

do gradiente
Desta maneira, o valor de w ira caminhar mais na direcao
`
quanto mais distante ele estiver do ponto mnimo. Ao chegar as
proximidades dele, o algoritmo de Gauss-Newton sera predominante.

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

16 / 23

Algoritmo Levenberg-Marquardt
Levenberg-Marquardt
Passo 1: Escolher um ponto inicial w0 , 0 (na ordem de 104 ), c1
(0 < c1 < 1), c2 (c2 > 1), (na ordem de 105 ) e inicializar o numero
de

(i = 1);
iteracoes
atraves
do gradiente:
Passo 2: Calcular a direcao

e(wi )
Passo 3: Calcular a matriz Hessiana:

2 e(wi )

Passo 4: Testar a otimalidade para o ponto. Se wi e otimo,


o processo
vai para o Passo 5;
para. Se nao

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

17 / 23

Algoritmo Levenberg-Marquardt

Levenberg-Marquardt
Passo 5: Atualizar w:
wi +1 = wi (2 e(wi ) + I )1 e(wi )
Passo 6: Comparar e(wi +1 ) com e(wi ). Se e(wi +1 ) < e(wi ) ir para o
ir para o Passo 8;
Passo 7. Se nao,
Passo 7: Atualizar i +1 = c1 i , i = i + 1 e va para o Passo 2;
Passo 8: Atualizar i = c2 i e va para o Passo 5;

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

18 / 23

do Algoritmo Levenberg-Marquardt
Aplicacao
f (x1 , x2 ) = x1 x2 + 2x12 + 2x1 x2 + x22
Funcao:

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

19 / 23

do Algoritmo Levenberg-Marquardt
Aplicacao
f (x1 , x2 ) = (1 x1 )2 + 10(x2 x12 )2
Funcao:

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

20 / 23

Problemas percebidos no uso do algoritmo de


Levenberg-Marquardt

erro. Podendo ser


A dificuldade de se calcular a Hessiana da funcao
e aproximadamente linear nas
simplificado considerando que a funcao
vizinhancas do ponto em que se calcula a matriz.
A dificuldade de calcular a matriz inversa presente na regra de
o que e computacionalmente trabalhoso.
atualizacao,

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

21 / 23

Problemas Percebidos no Uso do Algoritmo de


Levenberg-Marquardt

Para valores muito elevados do fator de ajuste, o calculo


da matriz
Hessiana e desprezado. Esse ultimo
ponto levou Marquardt a propor uma

melhoria no algoritmo original que faz com que a parcela relativa ao


passe a incorporar informacao
da
gradiente descendente tambem
de pesos
curvatura da superfcie do erro, fazendo com que a atualizacao

seja consideravel
mesmo quando o gradiente e bem pequeno:
wi +1 = wi (2 e(wi ) + diag [2 e(wi )])1 e(wi )

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

22 / 23

Fim

roberto.menezess@ymail.com (UFS)

Algoritmo Levenberg-Marquardt

29 de setembro de 2014

23 / 23

Anda mungkin juga menyukai