Uma RNN é uma Rede Neural Profunda (DNN), na qual cada camada pode receber novas entradas, mas tem os mesmos parâmetros. BPT é uma palavra chique para Propagação Traseira em uma rede que, por si só, é uma palavra chique para Gradient Descent.
Digamos que o RNN saídas Y t em cada passo e
e r r o r t = ( y t - y t ) 2y^t
e r r o rt= ( yt- y^t)2
Para aprender os pesos, precisamos de gradientes para que a função responda à pergunta "quanto uma alteração no parâmetro afeta a função de perda?" e mova os parâmetros na direção dada por:
∇ e r r o rt= - 2 ( yt- y^t) ∇ y^t
Ou seja, temos um DNN onde obtemos feedback sobre o quão boa é a previsão em cada camada. Como uma mudança no parâmetro alterará todas as camadas no DNN (timestep) e cada camada contribuirá para as próximas saídas, isso precisa ser levado em consideração.
Pegue uma rede simples de uma camada de neurônios e uma para ver isso de forma semi-explícita:
y^t + 1=∂∂umay^t + 1=∂∂by^t + 1=∂∂cy^t + 1=⟺∇ y^t + 1=f( a + b xt+ c y^t)f′( a + b xt+ c y^t) ⋅ c ⋅ ∂∂umay^tf′( a + b xt+ c y^t) ⋅ ( xt+ c ⋅ ∂∂by^t)f′( a + b xt+ c y^t) ⋅ ( y^t+ c ⋅ ∂∂cy^t)f′( a + b xt+ c y^t) ⋅ ⎛⎝⎜⎡⎣⎢0 0xty^t⎤⎦⎥+ C ∇ y^t⎞⎠⎟
Com a um passo de treinamento taxa de aprendizagem é então:
[ ~ um ~ b ~ cδ
⎡⎣⎢uma~b~c~⎤⎦⎥← ⎡⎣⎢umabc⎤⎦⎥+ δ( yt- y^t) ∇ y^t
∇ y^t + 1∇ y^tt
e r r o r = ∑t( yt- y^t)2
Talvez cada passo contribua com uma direção bruta que seja suficiente em agregação? Isso poderia explicar seus resultados, mas eu estaria realmente interessado em saber mais sobre sua função de método / perda! Também estaria interessado em uma comparação com uma ANN com duas janelas com timestep.
edit4: Depois de ler os comentários, parece que sua arquitetura não é uma RNN.
ht
Seu modelo: Sem estado - estado oculto reconstruído em cada etapa
edit2: adicionou mais refs aos DNNs edit3: passo fixo corrigido e algumas notações edit5: corrigiu a interpretação do seu modelo após sua resposta / esclarecimento.