Un RNN est un réseau neuronal profond (DNN) où chaque couche peut prendre une nouvelle entrée mais avoir les mêmes paramètres. BPT est un mot fantaisie pour Back Propagation sur un tel réseau qui est lui-même un mot fantaisie pour Gradient Descent.
Dire que le RNN de y t dans chaque étape et
e r r o r t = ( y t - y t ) 2y^t
errort=(yt−y^t)2
Afin d'apprendre les poids, nous avons besoin de gradients pour que la fonction réponde à la question "dans quelle mesure un changement de paramètre affecte-t-il la fonction de perte?" et déplacer les paramètres dans la direction donnée par:
∇errort=−2(yt−y^t)∇y^t
C'est-à-dire que nous avons un DNN où nous obtenons des commentaires sur la qualité de la prédiction à chaque couche. Puisqu'un changement de paramètre changera chaque couche dans le DNN (pas de temps) et chaque couche contribue aux sorties à venir, cela doit être pris en compte.
Prenez un simple réseau à une couche neurone pour voir ceci de manière semi-explicite:
y^t+1=∂∂ay^t+1=∂∂by^t+1=∂∂cy^t+1=⟺∇y^t+1=f(a+bxt+cy^t)f′(a+bxt+cy^t)⋅c⋅∂∂ay^tf′(a+bxt+cy^t)⋅(xt+c⋅∂∂by^t)f′(a+bxt+cy^t)⋅(y^t+c⋅∂∂cy^t)f′(a+bxt+cy^t)⋅⎛⎝⎜⎡⎣⎢0xty^t⎤⎦⎥+c∇y^t⎞⎠⎟
Avec le taux d'apprentissage une étape d'apprentissage est alors:
[ ~ a ~ b ~ c ] ← [ a b c ] + δ ( y t - y t ) ∇ y tδ
⎡⎣⎢a~b~c~⎤⎦⎥←⎡⎣⎢abc⎤⎦⎥+δ(yt−y^t)∇y^t
∇y^t+1∇y^tt
error=∑t(yt−y^t)2
Peut-être que chaque étape contribuera alors à une direction brute qui est suffisante en agrégation? Cela pourrait expliquer vos résultats, mais je serais vraiment intéressé d'en savoir plus sur votre méthode / fonction de perte! Serait également intéressé par une comparaison avec un ANN à deux fenêtres fenêtrées.
edit4: Après avoir lu les commentaires, il semble que votre architecture ne soit pas un RNN.
ht
Votre modèle: sans état - état caché reconstruit à chaque étape
edit2: ajout de références aux DNN edit3: correction de gradstep et quelques notations edit5: correction de l'interprétation de votre modèle après votre réponse / clarification.