On considère un RNN simple scalaire sans entrée, pour isoler la dynamique de l’état caché : \[h_t = \tanh(w_h \, h_{t-1})\] On s’intéresse à la propagation du gradient sur \(T\) pas de temps. Par la règle de dérivation en chaîne : \[\frac{\partial h_T}{\partial h_0} = \prod_{t=1}^{T} \frac{\partial h_t}{\partial h_{t-1}} = \prod_{t=1}^{T} w_h \cdot (1 - h_t^2)\]
Justifier la formule ci-dessus en appliquant la règle de dérivation en chaîne à \(h_T = f(h_{T-1}) = f(f(\cdots f(h_0)\cdots))\).
Montrer que pour tout \(h \in \mathbb{R}\), on a \(0 < 1 - \tanh(h)^2 \leq 1\), avec égalité uniquement en \(h = 0\). Que peut-on en conclure sur chaque facteur \(w_h \cdot (1 - h_t^2)\) lorsque \(|w_h| \leq 1\) ?
On suppose \(h_t \approx 0.9\) pour tout \(t\), et \(w_h = 0.8\). Calculer numériquement \(\left|\dfrac{\partial h_T}{\partial h_0}\right|\) pour \(T = 5\), \(T = 10\), \(T = 20\). Commenter.
Montrer que le gradient ne s’évanouit pas si et seulement si \(|w_h| \cdot (1 - h_t^2) \geq 1\) pour tout \(t\). Quelle condition sur \(w_h\) cela impose-t-il lorsque \(h_t \approx 0\) ? Quel nouveau problème apparaît alors ?
On cherche à minimiser une perte \(\mathcal{L}\) dépendant de \(h_T\). Exprimer \(\dfrac{\partial \mathcal{L}}{\partial w_h}\big|_{t=1}\), la contribution du tout premier pas de temps au gradient de \(w_h\), en fonction de \(\dfrac{\partial \mathcal{L}}{\partial h_T}\) et du produit ci-dessus. Pourquoi les dépendances à long terme sont-elles si difficiles à apprendre ?