When performing RNN on the first batch, firstly, we feed x[1]=[a g m s] into RNN and force the output to be y[1]=[b h n t]. The hidden representation h[1] will be sent forward into next time step to help the RNN predict y[2] from x[2]. After sending h[T−1] to the final set of x[T] and y[T], we cut gradient propagation process for both h[T] and h[0] so that gradients will not propagate infinitely(.detach() in Pytorch). The whole process is shown in figure below.
Lors de l’exécution du RNN sur le premier batch, nous introduisons d’abord x[1]=[a[g[m]s] dans le réseau et forçons la sortie à être y[1]=[b[h[n]t]. La représentation cachée h[1] est envoyée au prochain pas de temps pour aider le RNN à prédire y[2] à partir de x[2]. Après avoir envoyé h[T−1] à l’ensemble final de x[T] et y[T], nous coupons le processus de propagation des gradients pour h[T] et h[0] afin que les gradients ne se propagent pas à l’infini (.detach() en Pytorch). L’ensemble du processus est illustré dans la figure ci-dessous.