Algoritmo Silva-Almeida

Fonte: testwiki
Saltar para a navegação Saltar para a pesquisa

No âmbito da Redes Neuronais Artificiais (RNA), o algoritmo Silva-Almeida é um algoritmo metaheurístico que se utiliza para acelerar a convergência durante o processo de Backpropagation numa RNA[1]. É uma modificação do método do gradiente.

Formulação

Este método, dentro de certas condições, tem convergência garantida. Consiste, essencialmente, em modificar step size parameter, η, a cada iteração e de cada peso dos ramos do perceptrão multicamada, dependendo da variação do gradiente da função de custo.

A equação para a atualização de η:

ηjin={ηjin1u,se (Ewji)n×(Ewji)n1>0ηjin1d,se (Ewji)n×(Ewji)n1<0

Onde o sobrescrito indica o número da iteração. Os parâmetros a serem definidos para o método são 0<d<1<u .

Estes indicam se o tamanho do passo do algoritmo deve diminuir d (down) ou aumentar u (up).

Funcionamento

Com uma simples análise a fórmula que calcula o step size parameter a cada iteração repara-se que, se o gradiente tiver a mesma direção duas iterações consecutivas, então, deseja-se que o algoritmo acelere e prossiga nessa direção mais rapidamente. Caso contrário, em duas iterações seguidas, o gradiente mudar de direção, vamos querer que o método abrande pois podemos estar perto de uma região que force a divergência do algoritmo.

Valores típicos, u=1.1,d=0.9

Referências