Quelle est la différence entre un problème de gradient qui disparaît et un problème de gradient qui explose dans RNN?


Réponse 1:

Si vous voyez l'expression mathématique pour un RNN, ou un réseau de neurones artificiels de base en général, vous observerez que l'expression pour gradient implique la multiplication des poids pour une couche particulière. Et les poids dans les couches les plus externes doivent passer par la multiplication matricielle constante basée sur l'expression dérivée.

De ce fait, si la valeur du gradient devient inférieure à 1, la multiplication ultérieure entraînerait un nombre encore moins important. Intuitivement, imaginez que si vous avez 0,9 comme poids lorsque vous calculez la multiplication, elle obtient 0,81, ce qui est plus petit. Finalement, le gradient devient si petit qu'il disparaît, et c'est là que nous disons que c'est un problème de gradient qui disparaît. Le résultat final s'arrête totalement en fonction de l'horodatage initial.

D'un autre côté, si les valeurs des gradients commencent à devenir supérieures à 1, la multiplication continue de la matrice commence à augmenter sa valeur de façon exponentielle, (il est facile de voir, a ^ x est exponentiel pour a> 1), cette augmentation alarmante finit par faire monter le gradient jusqu'à Valeurs NaN ou valeurs de magnitudes si élevées que le modèle explose ou se bloque. C'est ce que vous appelleriez un problème de gradient explosif.

C'est principalement en raison de ces deux problèmes majeurs que nous avons trouvé des GRU, des LSTM et d'autres types de modèles fermés pour gagner en robustesse à terme.

Vous voudrez peut-être jeter un œil à ce blog moyen qui explique assez bien ce genre de choses:

https://link.medium.com/J6yjXw2xCS

J'espère que ça aide :)

À votre santé !