Question

Je vais avoir du mal à essayer de tirer les mathématiques derrière LSTMs et disparaître des gradients.

J'ai eu de l'aide de LSTM vers l'avant et vers l'arrière passe, mais je suis resté bloqué dans page 11 de LSTM vers l'avant et vers l'arrière passe .

Compte tenu de l'image:

 entrer image description ici

Nous pouvons former système d'équations, $$ \ Begin {} bmatrix a ^ t \\ i ^ t \\ f ^ t \\ o ^ t \\ \ End {} bmatrix = \ Begin {} bmatrix tanh (W_cx ^ t + U_ch ^ {t-1}) \\ \ Sigma (W_iX ^ t + U_ih ^ {t-1}) \\ \ Sigma (W_fx ^ t + U_fh ^ {t-1}) \\ \ Sigma (W_ox ^ t + U_oh ^ {t-1}) \\ \ End {} bmatrix = \ Begin {} bmatrix tanh (\ hat a ^ t) \\ \ Sigma (\ hat i ^ t) \\ \ Sigma (\ hat f ^ t) \\ \ Sigma (\ hat o ^ t) \\ \ End {} bmatrix $$ On peut alors représenter cela comme $ z $:

$$ z = \ Begin {} bmatrix \ Hat a ^ t \\ \ Hat i ^ t \\ \ Hat f ^ t \\ \ Hat o ^ t \\ \ End {} bmatrix = \ Begin {} bmatrix W ^ c & U ^ c \\ W ^ i & U ^ i \\ W ^ f & U ^ f \\ W ^ o & U ^ o \\ \ End {} bmatrix * \ Begin {} bmatrix x ^ t \\ h ^ {t-1} \\ \ End {} bmatrix $$

Nous pouvons trouver la dérivation de backprop pour $ z $ de la page 10 à partir de LSTM vers l'avant et vers l'arrière passe

$$ \ delta z = \ Begin {} bmatrix \ Delta \ uelle ^ t \\ \ Delta \ hat i ^ t \\ \ Delta \ hat f ^ t \\ \ Delta \ hat o ^ t \\ \ End {} bmatrix = \ Begin {} bmatrix \ Delta a ^ t \ odot (1-tanh ^ 2 (\ hat a ^ t)) \\ \ Delta i ^ t \ odot i ^ t \ odot (1-i ^ t) \\ \ Delta f ^ t \ odot f ^ t \ odot (1-f ^ t) \\ \ Delta o ^ t \ odot o ^ t \ odot (1-o ^ t) \\ \ End {} bmatrix $$

Cependant, la partie suivante à l'adresse page 11 de LSTM passe avant et vers l'arrière est où je suis confus.

Étant donné $ \ delta z $, il faut trouver $ \ delta W $, $ \ delta h ^ {t-1} $,

1) L'auteur écrivit $ \ Delta I ^ t = W ^ T * \ delta z $:

Si nous faisons des variables d'algèbre linéaire se déplace:

$$ z = W ^ T * I ??^ t $$

Multiplier les deux côtés avec I $ ^ {t ^ {- 1}} $

$$ I ^ {t ^ {- 1}} z = W ^ T $$

Multiplier les deux côtés avec $ z ^ {- 1} $

$$ I ^ {t ^ {- 1}} = z ^ {- 1} W ^ T $$

D'une certaine façon, cela ne correspond pas à la formule de l'auteur?

2) Ignorons 1), et d'essayer de résoudre pour $ \ delta $ I

$$ \ Delta I = \ Begin {} bmatrix \ Delta x ^ t \\ \ Delta h ^ {t-1} \\ \ End {} bmatrix $$ $$ \ Delta I = \ frac {{de}} = dI \ Begin {} bmatrix \ Frac {{de} dx ^ t} \\ \ Frac {d} {dh ^ {t-1}} \\ \ End {} bmatrix $$

Mais $ \ frac {d} {dh ^ {t-1}} $ dépend beaucoup des équations de $ z $

Dois-je résoudre pour eux individuellement et les additionner?

Note: $ \ frac {{de} d \ I_T chapeau} $ peut être trouvé à page 10 de LSTM vers l'avant et vers l'arrière passe

$$ h_ {t-1} ^ {I_T} = \ frac {de} {dh_ {t-1} ^ {I_T}} = \ frac {de} {d \ I_T chapeau} \ frac {d \ I_T chapeau} {de h_ {t-1}} = \ frac {de} {d \ I_T chapeau} \ frac {d} {dh_ {t-1}} I_T (1-I_T) $$

Remplacer $ I_T $ avec $ \ sigma (W_iX ^ t + U_ih ^ {t-1}) $, remplacez $ \ frac {de} {d \ I_T chapeau} $ avec $ \ delta \ I_T chapeau \ delta I_T $

$$ = \ delta \ I_T chapeau \ delta I_T \ frac {d} {{dh_ t-1}} \ sigma (W_iX ^ t + U_ih ^ {t-1}) (1- \ sigma (W_iX ^ t + U_ih ^ {t-1})) $$

Il semble résoluble, alors ma question est que je recevrais 4 équations comme ci-dessus, dois-je les ajouter tous ensemble à la fin pour obtenir $ \ delta h ^ {t-1} $? Par exemple:

$$ \ Delta I = \ frac {{de}} = dI \ Begin {} bmatrix \ Frac {{de} dx ^ t} \\ \ Frac {d} {dh ^ {t-1}} \\ \ End {} bmatrix = \ Begin {} bmatrix ignorer \\ h_ {t-1} ^ {} I_T + h_ {t-1} ^ {} + h_ a_t {t-1} ^ {} f_t + h_ {t-1} ^ {} \\ o_t \ End {} bmatrix $$

Depuis ma logique était de trouver l'erreur total des contributions versées à partir de $ h_ {t-1} $ si vous devez les additionner?

3) Trouver de $ W $ ressemble même à une plus grande tâche, mais je ne suis pas sûr où commencer à ce sujet?

4) Quel est le rapport au carrousel d'erreur? Je veux dire, après dérivation de tous les poids et $ h_ {t-1} $, je ne sais pas comment cela conduit à éviter de disparaître des gradients? Je lis quelque part que les poids sont constants 1 ou quelque chose le long des lignes comme ça?

Je sais que c'est un peu long, mais ne hésitez pas à demander des éclaircissements si ma question n'a pas de sens. Je pense que je l'ai essayé de résoudre pour ce presque un demi-mois maintenant.

apprécierais toute sorte d'orientation. Merci.

Était-ce utile?

La solution

Partie 1: Dérivation

Il est important de noter que $ \ delta z \ NEQ z ^ {- 1} $.

page 11 quand il dit qu'il plans de derive $ \ delta I ^ t, \ delta h ^ {t-1} $ et delta $ \ w ^ t $ il invoque la règle de la chaîne plutôt que la multiplication de matrice inverse.

Derive $ \ delta Let I ^ t $.

  1. $ \ delta I ^ t = \ frac {\ partial E} {\ I ^ t partielle} $ par définition

  2. $ \ delta I ^ t = \ frac {\ z partielle ^ t} {\ I partielle ^ t} * \ frac {\ E partielle} {\ z partielle ^ t} $ par la règle de la chaîne

    2.1.1 Rappelons que $ z ^ t = W * I ^ t $

    2.1.2 Par conséquent $ \ frac {\ z ^ t partielle} {\ I ^ t partielle} = W ^ T $

    2.2.1 $ \ frac {\ E partielle} {\ z partielle ^ t} = \ delta z ^ t $ par définition

  3. Par conséquent $ \ delta I ^ t = W ^ T * \ delta z ^ t $

L'auteur poursuit en notant que depuis que je $ ^ t = \ begin {bmatrix} x ^ t \\ h ^ {t-1} \ end {bmatrix} $, soit $ \ delta h ^ {t-1} $ peuvent être récupérées à partir de $ \ delta I ^ t $ où $ \ delta h ^ {t-1} $ seraient les termes DX1 après les premiers termes NX1.

Dans le même ordre d'idées à $ Derive \ delta W ^ t $,

  1. $ \ delta W ^ t = \ frac {\ E partielle} {\ W partielle ^ t} $ par définition

  2. $ \ delta W ^ t = \ frac {\ partial E} {\ z partielle ^ t} * \ frac {\ z partielle ^ t} {\ W partielle ^ t} $ par la règle de la chaîne

    2.1.1 Rappelons que $ z ^ t = W * I ^ t $

    2.1.2 Par conséquent $ \ frac {\ z ^ t partielle} {\ W ^ t} = partielle (I ^ t) ^ T $

    2.2.1 $ \ frac {\ E partielle} {\ z partielle ^ t} = \ delta z ^ t $ par définition

  3. Par conséquent $ \ delta W ^ t = \ delta z ^ t * (I ^ t) ^ T $

Partie 2: Erreur constante Carrousels

L'explication suivante inspire largement de la 14e diapositive de cette conférence et de la section LSTM de ce blog , que je recommande fortement référencement. Considérez cette partie de ma réponse la TL;. La version DR de ces deux liens

L'erreur constante Carousel (CEC) que vous pourriez est bien connu la magie du LSTM en ce qu'elle empêche de disparaître des gradients. Il est noté comme suit:

$ C_ {t + 1} = c_t * $ oublier la porte + nouvelle entrée $ * porte d'entrée de $

Dans le cas de RNNs réguliers au cours de rétropropagation, le dérivé d'une fonction d'activation, tel qu'un sigmoïde, sera inférieur à un. Par conséquent, au fil du temps, la multiplication répétée de cette valeur par rapport aux poids $ f '(x) * W $ conduira à un gradient de fuite.

Dans le cas d'un LSTM, on ne se multiplient l'état de la cellule par une porte oublier, qui agit à la fois comme le poids et la fonction d'activation de l'état de la cellule. Tant que cette porte est égale à oublier une, les informations de l'état de la cellule précédente passe à travers inchangé.

Dans notre cas, les paramètres que nous dérivés $ h_t $ et $ h_ {t-1} $ sont les états cachés qui dans le cadre du vecteur d'entrée I $ ^ t $, sera filtré à travers la porte oublier, et affecter l'état des cellules en conséquence. Le delta $ \ W $ nous avons résolu pour est le paramètre que nous utilisons pour mettre à jour tous nos poids / portes.

Licencié sous: CC-BY-SA avec attribution
scroll top