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).
Download

x (t-1)