Aspectos de Implementação do
Algoritmo Backpropagation
• Função de Ativação
• Momento
• Inicialização dos Pesos
• Critério de Parada
• Generalização
• Normalização dos vetores entrada-saída
• Número de camadas intermediárias
• Escolha dos padrões de treinamento
• Sobretreinamento
Função de Ativação
• Tem que ser derivável em todo o seu domínio!
Necessário para o cálculo do gradiente local dos
neurônios
 Função Linear, Função Sigmóide (ou Logística), Função
Tangente Hiperbólica
1
 ( x) 
1  e  x

e  x
 ( x) 
 x 2
1 e
 ( x)  ax

 ( x)  a



 ( x)  y (1  y ) ; y   ( x)
1  e  x
 ( x) 
1  e  x

 ( x)  1  tanh(x)2

 ( x)  1  y 2 ; y   ( x)
Momento
• Método do Gradiente Descendente
 Converge lentamente se  for muito pequeno
 Apresenta oscilações se  for muito grande
Momento
 Solução simples: acresentar uma taxa de
momento
wij (k )  wij (k 1)  wij (k 1)
Ei
wij (k  1)  
 wij (k  2)
wij
 é a taxa de momento
 em torno de 0.9 (normalmente)
• Com a taxa de momento, pode-se escolher uma taxa de aprendizado
mais elevada
Momento
Evolução da função custo sem momento
Evolução da função custo com momento
Inicialização dos Pesos
• Como escolher os valores iniciais dos pesos ?
O ideal seria possuir alguma informação a respeito dos
valores desejados destes parâmetros
 Entretanto normalmente esta informação é impossível de se
obter a priori
 Pesos, e bias, devem ser pequenos (<<1) e escolhidos de forma
aleatória dentro de um certo intervalo
Importância da escolha dos valores iniciais:
 peso elevado pode resultar, mesmo para entradas pequenas,
na saturação do neurônio
 Neurônios operando próximos da saturação é uma das causas do
decaimento lento da função custo.
 Outra causa deste decaimento lento é a proximidade de um
mínimo local
Inicialização dos Pesos
• Os pesos iniciais deve ser pequenos o suficiente para
que o neurônio opere em uma região fora da
saturação e grande o suficiente para que o tempo de
treinamento não se torne muito elevado
Critério de Parada
• Como saber se o Algoritmo de Treinamento
convergiu adequadamente ?
Não existe um critério bem definido para parada
 Gradiente da Função Custo é nulo !
 Esta condição não é suficiente para garantir um desempenho
desejado para a RNA (mínimo local)
 Avaliar a Função Custo no final de uma determina época !
 Considera-se que o algoritmo convergiu quando a Função Custo
estiver próximo de um determinado valor, por exemplo 0.01 (o
mínimo ainda pode ser local)
 Combinação dos dois casos anteriores !!
 Considerar a validação e os dois casos anteriores !!!
 Quando trabalha-se com RNAs uma das características mais
importantes do uso das mesmas é a Generalização.
 Deve-se considerar no critério de parada a avaliação da Função
Custo medida com um conjunto de entradas para o qual a RNA
não foi treinada
Critério de Parada (conjunto de teste)
4.00
10.00
0.00
3.00
-10.00
Graus (rad)
Graus (rad)
Sinal de Saída Desejado, yd(t)
Sinal de Saída da Planta, y(t)
Sinal de Saída Desejado, yd(t)
Sinal de Saída da Planta, y(t)
-20.00
2.00
1.00
-30.00
0.00
-40.00
0.00
0.00
1.00
2.00
3.00
1.00
4.00
2.00
Tempo (seg)
3.00
4.00
Tempo (seg)
• Início do treinamento
2.00
• Final do treinamento
Função Custo = 0.022
Sinal de Saída Desejado, yd(t)
Sinal de Saída da Planta, y(t)
1.60
Graus (rad)
1.20
0.80
0.40
• Conjunto de teste
Função Custo = 0.18
0.00
0.00
1.00
2.00
Tempo (seg)
3.00
4.00
Generalização
• Na fase de treinamento de uma RNA um conjunto de
pares entrada-saída é apresentado à rede, e para cada
par os pesos são ajustados
Os pares entrada-saída são apresentados várias vezes
para a rede
 No final do treinamento a RNA “aprendeu” o mapeamento,
normalmente não-linear, entrada-saída daqueles pares
apresentados
 Mas a RNA deve também “aprender” o mapeamento entradasaída para outros pares diferentes daqueles apresentados
durante o treinamento  isto é a “generalização”
• treinamento
x
*
Espaço de
Entradas
x
*
x
*
*
x
*
*
x
x
*
x
*
x
Espaço de
Saídas
• generalização
Generalização
• A generalização pode ser melhor entendida no
contexto de aproximação funcional
Considere um exemplo em que conhecemos um
conjunto de N pontos
( xi , yi ) , i  1,...,N
y  f (x)
• x é a entrada
• y é a saída
 f(.) é desconhecida
 O problema é encontrar um função f(x) que represente bem
este conjunto de pontos
 Pesos,
yi  f ( xi )  
Download

generalização