Académique Documents
Professionnel Documents
Culture Documents
• Nous allons nous référer à la phrase d'entrée “nice to meet you” par X/input-sequence
• La phrase de sortie “ravi de vous rencontrer” par Y_true/target-sequence → C'est ce que
nous voulons que notre modèle prédise (la vérité de base).
• La phrase de sortie prédite du modèle en tant que Y_pred/predicted-sequence
• Les mots individuels de la phrase anglaise et française sont désignés sous le nom de
« tokens »
Ainsi, étant donné la séquence d'entrée "ravi de vous rencontrer", nous voulons que notre
modèle prédise la séquence cible/Y_true, c'est-à-dire "ravi de vous rencontrer".
III. The Architecture of Encoder-Decoder models
1. Vue d'ensemble de haut niveau
À un niveau très élevé, un modèle d'encodeur-décodeur peut être considéré comme deux
blocs, l'encodeur et le décodeur, reliés par un vecteur que nous appellerons le "vecteur de
contexte".
En ce qui concerne l'architecture, c'est assez simple. Le modèle peut être considéré comme
deux cellules LSTM avec une connexion entre elles. L'essentiel ici est de savoir comment
nous traitons les entrées et les sorties. Nous allons expliquer chaque partie une par une.
2.1 Le bloc encodeur
La partie encodeur est une cellule LSTM. Elle est alimentée en séquence d'entrée au fil du
temps et elle essaie d'encapsuler toutes ses informations et de les stocker dans ses états
internes finaux ht (état caché) et ct (état de la cellule). Les états internes sont ensuite transmis
à la partie décodeur, qu'elle utilisera pour essayer de produire la séquence cible. C'est le "
vecteur de contexte " auquel nous faisions référence précédemment. Les sorties à chaque pas
de temps de la partie codeur sont toutes rejetées.
2.2 Le bloc décodeur
Ainsi, après avoir lu toute la séquence d'entrée, le codeur transmet les états internes au
décodeur et c'est là que commence la prédiction de la séquence de sortie.
Le bloc décodeur est également une cellule LSTM. La principale chose à noter ici est que les
états initiaux (h₀, c₀) du décodeur sont fixés aux états finaux (ht, ct) de l'encodeur. Ceux-ci
agissent comme le vecteur " contexte " et aident le décodeur à produire la séquence cible
souhaitée.
Maintenant, la façon dont le décodeur fonctionne, est que sa sortie à n'importe quel pas de
temps t est supposée être le tᵗʰ mot dans la séquence cible/Y_true ("ravi de vous rencontrer").
Pour expliquer cela, voyons ce qui se passe à chaque pas de temps.
Au pas de temps 1
L'entrée fournie au décodeur au premier pas de temps est un symbole spécial "<START>". Il
est utilisé pour signifier le début de la séquence de sortie. Maintenant, le décodeur utilise cette
entrée et les états internes (ht, ct) pour produire la sortie dans le 1er pas de temps qui est censé
être le 1er mot/token dans la séquence cible, c'est-à-dire 'ravi'.
A l'étape 2
À la deuxième étape temporelle, la sortie de la première étape temporelle "ravi" est utilisée
comme entrée de la deuxième étape temporelle. La sortie de la deuxième étape temporelle est
censée être le deuxième mot de la séquence cible, c'est-à-dire "de".
De la même manière, la sortie de chaque étape temporelle sert d'entrée à l'étape temporelle
suivante. Cela continue jusqu'à ce que l'on obtienne le symbole "<END>" qui est à nouveau
un symbole spécial utilisé pour marquer la fin de la séquence de sortie. Les états internes
finaux du décodeur sont rejetés.
Ainsi, selon notre modèle entraîné, la séquence prédite au moment du test est "ravi de
rencontrer rencontrer". Par conséquent, bien que le modèle ait été incorrect lors de la
troisième prédiction, nous l'avons quand même utilisé comme entrée pour l'étape temporelle
suivante. L'exactitude du modèle dépend de la quantité de données disponibles et de la qualité
de son apprentissage. Le modèle peut prédire une sortie erronée, mais néanmoins, la même
sortie est utilisée pour l'étape suivante de la phase de test.