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 )