Algoritmo de Retropropagação

 

Na aplicação do algoritmo de retroporpagação, distinguem-se dois passos distintos de computação. O primeiro passo e conhecido como passo para frente, ou propagação, e o segundo como passo para trás, ou retropropagação.

No passo para frente, os pesos sinápticos se mantêm inalterados em toda a rede e os sinais funcionais da rede são calculados individualmente, neurônio por neurônio. O sinal funciona que aparece na saída do neurônio j é calculado como:

yj(n) = f(vj(n))

onde vj(n) é o campo local induzido do neurônio j, isto é, o somatório ponderado das entradas do neurônio mais o bias.

Este processo é repetido neurônio a neurônio e camada por camada até a camada de saída. Quando isso acontece a saída é comparada com a resposta desejada obtendo-se o sinal de erro para o j-ésimo neurônio de saída. Assim, a fase de propagação da computação começa na primeira camada oculta, com a apresentação do veto de entrada, e termina na camada de saída calculando o sinal de erro de cada neurônio desta camada.

O passo de retropropagação, por outro lado, começa na camada de saída passando-se os sinais de erro para a esquerda através da rede, camada por camada, e recursivamente calculando-se o gradiente local de cada neurônio. Este processo recursivo permite que os pesos sinápticos sofram modificações de acordo com a regra delta:

Δwji(n) = ηδj(n)yi(n)

onde Δwji(n) é a correção do peso, η é a taxa de aprendizagem, δj(n) é o gradiente local e yi(n) é o sinal de entrada o neurônio j.

Para um neurônio localizado na camada de saída, o gradiente local δ é simplesmente igual ao sinal de erro daquele neurônio multiplicado pela primeira derivada da sua função de ativação. Assim utilizamos a regra delta para calcular as modificações dos pesos de todas as conexões que alimentam a camada de saída. Dados os gradientes locais para os neurônios da camada de saída, utilizamos, a equação:

Δj(n) = φj’(vj(n)) Σ δk(n)wkj(n)

para calcular os gradientes locais para todos os neurônios na penúltima camada, e conseqüentemente as modificações dos pesos de todas as conexões que a alimentam. A computação recursiva continua, camada por camada, propagando as modificações para todos os pesos sinápticos da rede.

Note que para a apresentação de cada exemplo de treinamento, o padrão de entrada está fixo durante todo o ciclo, englobando o passo de propagação seguido pelo passo de retropropagação.