AULA07-BPTT Backpropagation Through Time Introdução • São redes recorrentes treinadas como se fosse rede MLP no tempo. • Redes que as saídas da rede num tempo (t) são as entradas para o tempo seguinte (t+1). • Essas redes são treinadas em vários tempos fazendo cópias da rede, com os mesmos pesos, treinando cada cópia, e então fazendo a média para a atualização dos pesos. • Essas redes originalmente introduzidas por Rumelhart, Hinton, e Williams (1986) são chamadas “backpropagation through time” ou “backpropagation recursivo”. • Um exemplo simples de rede BPTT z1 x1 entrada y1 z2 x2 saída y2 z3 neurônios escondidos Expansão para 3 tempos z1 x1 entrada z1 y1 x1 z2 x2 y1 x1 z2 y2 z3 z1 x2 z2 y2 z3 y1 x2 saída y2 z3 algoritmo • O cálculo da saída da rede é obtido como se a rede expandida fosse uma rede MLP, fornecendo às entradas os valores obtidos nas saídas. • É feita a computação do erro para cada tempo. O ajuste de peso para cada tempo é calculado individualmente e totalizado (ou calculado a média) sobre o número de tempos usado no treinamento de um lote. • A informação de erro não é necessário para todas as unidades de saída, em todos os tempos. • As correções de pesos são computadas sempre que as informações estejam disponíveis. Exemplo : BPTT- registrador de deslocamento x1 y1 Uma rede sem as unidades escondidas, tendo cada neurônio pesos nas conexões e bias. Os padrões de treinamento consistem de todos os vetores binários de 3 bits. x2 x3 y2 y3 A saída desejada (target) para cada vetor, após 2 tempos, é o padrão deslocado duas posições à esquerda (com circulação – wraparound). x1 y1 x1 y1 x2 y2 x2 y2 x3 y3 x3 y3 Rede expandida Comentários: • No caso desse registrador de deslocamento não é necessário a informação do erro no tempo intermediário (tempo 1). • Em geral pode ser usada uma combinação de informações de erros do tempo final e de todos os tempos intermediários. • No caso do exemplo, é requerido em torno de 200 épocas para treinamento, com uma taxa de aprendizado de 0.25, e os bias restritos para valores negativos. • Os resultados desejados são obtidos após um número par de tempos. Exemplo 2: senóide amortecido z1 f(t) x4 z2 x3 z3 x2 z4 x1 z5 t y sin(t ) f (t ) t • A entrada da rede representa valores da função em vários tempos anteriores, e a saída é o valor atual da função. • No exemplo tem-se 4 unidades de entrada e 5 unidades escondidas. O número de unidades escondidas depende da frequência da oscilação. • Para , 7 unidades de entrada são suficientes. Para 0.5 , a rede pode ser de 10 unidades de entrada e 10 unidades escondidas. • No tempo t, x1 recebe o valor computado f(t-1) de y; x2 recebe o valor f(t-2), de x1; x3 recebe f(t-3) de x2; e x4 recebe f(t-4) de x3. Algoritmo do senóide amortecido • • • • • • • • • • Passo 0 – inicializar os pesos (pequenos valores aleatórios) Passo 1 – até a condição de parada do treinamento, realizar os passos 2 a 9. Passo 2 – inicializar as ativações (para pequenos valores aleatórios) Passo 3 - apresentar o valor inicial da função, f(0) para a unidade de entrada x1. Passo 4 – até a condição de parada da época, executar os passos 5 a 8. Passo 5 – calcular a resposta da rede y = f(1) Passo 6 – calcular o erro corrente. Calcular os ajustes por retropropagação, porém, não realizar os ajustes. Passo 7 – atualizar as ativações: x4 = x3 x3 = x2 x2 = x1 x1 = y. Passo 8 – testar pela condição de parada da época. Se y > max, ou se o número de passos > 30, aplicar os ajustes de pesos e continuar com o passo 9; senão, continuar com o passo 4. Passo 9 – testar a condição de parada para o treinamento. se (erro < tolerância) ou (número total de épocas > limite) parar senão continuar com o passo 1. Rede BPTT com entradas externas e recorrentes a cada tempo x1 z1 x2 y1 z2 x3 y2 z3 x4 Expansão da rede para 3 tempos x1 x1 z1 x2 x(t-2) z1 y1 x2 x(t-1) z2 x3 y2 z1 y1 x2 x(t) z2 x3 z3 x4 x1 y2 z2 x3 z3 y(t-2) x4 y1 y2 z3 y(t-1) x4 y(t) A saída da rede y(t) é função da sequência de entradas recorrentes y(t-1), y(t-2) e da sequência de entradas externas x(t), x (t-1), x (t-2).