Introduction au Teacher Forcing

Traduction automatique avec Keras

Thushan Ganegedara

Data Scientist and Author

Le modèle de traduction automatique précédent

  • Le modèle précédent

Modèle complet encodeur-décodeur

  • GRU encodeur
    • Consomme des mots anglais
    • Produit un vecteur de contexte
  • GRU décodeur
    • Consomme le vecteur de contexte
    • Produit une séquence de sorties de GRU
  • Couche de prédiction du décodeur
    • Consomme la séquence de sorties de GRU
    • Produit des probabilités de prédiction pour des mots français
Traduction automatique avec Keras

Analogie : entraînement sans Teacher Forcing

Sans teacher forcing 1

Traduction automatique avec Keras

Analogie : entraînement sans Teacher Forcing

Sans teacher forcing 2

Traduction automatique avec Keras

Analogie : entraînement sans Teacher Forcing

Sans teacher forcing 3

Traduction automatique avec Keras

Analogie : entraînement avec Teacher Forcing

Avec teacher forcing 1

Traduction automatique avec Keras

Analogie : entraînement avec Teacher Forcing

Avec teacher forcing 2

Traduction automatique avec Keras

Analogie : entraînement avec Teacher Forcing

Avec teacher forcing 3

Traduction automatique avec Keras

Analogie : entraînement avec Teacher Forcing

Avec teacher forcing 4

Traduction automatique avec Keras

Le modèle de traduction automatique précédent

  • Le modèle précédent

Modèle complet encodeur-décodeur

  • Modèle avec Teacher Forcing

Modèle encodeur-décodeur avec teacher forcing

Traduction automatique avec Keras

Implémenter le modèle avec Teacher Forcing

  • Encodeur
    en_inputs = layers.Input(shape=(en_len, en_vocab))
    en_gru = layers.GRU(hsize, return_state=True)
    en_out, en_state = en_gru(en_inputs)
    
  • GRU du décodeur
    de_inputs = layers.Input(shape=(fr_len-1, fr_vocab))
    de_gru = layers.GRU(hsize, return_sequences=True)
    de_out = de_gru(de_inputs, initial_state=en_state)
    
Traduction automatique avec Keras

Entrées et sorties

  • Entrée encodeur – p. ex. I, like, dogs
  • Entrée décodeur – p. ex. J'aime, les
  • Sortie décodeur – p. ex. les, chiens

Entrées et sorties avec teacher forcing

Traduction automatique avec Keras

Implémenter le modèle avec Teacher Forcing

  • Encodeur
    en_inputs = layers.Input(shape=(en_len, en_vocab))
    en_gru = layers.GRU(hsize, return_state=True)
    en_out, en_state = en_gru(en_inputs)
    
  • GRU du décodeur
    de_inputs = layers.Input(shape=(fr_len-1, fr_vocab))
    de_gru = layers.GRU(hsize, return_sequences=True)
    de_out = de_gru(de_inputs, initial_state=en_state)
    
  • Prédiction du décodeur
    de_dense = layers.TimeDistributed(layers.Dense(fr_vocab, activation='softmax'))
    de_pred = de_dense(de_out)
    
Traduction automatique avec Keras

Compilation du modèle

nmt_tf = Model(inputs=[en_inputs, de_inputs], outputs=de_pred)
nmt_tf.compile(optimizer='adam', loss="categorical_crossentropy", metrics=["acc"])
Traduction automatique avec Keras

Prétraitement des données

  • Encodeur

    • Entrées – Tous les mots anglais (encodage one-hot)
      • en_x = sents2seqs('source', en_text, onehot=True, reverse=True)
  • Décodeur

    de_xy = sents2seqs('target', fr_text, onehot=True)
    
    • Entrées – Tous les mots français sauf le dernier (one-hot)
      • de_x = de_xy[:,:-1,:]
    • Sorties/Cibles – Tous les mots français sauf le premier (one-hot)
      • de_y = de_xy[:,1:,:]
Traduction automatique avec Keras

Passons à la pratique !

Traduction automatique avec Keras

Preparing Video For Download...