Teacher Forcing’e Giriş

Keras ile Machine Translation

Thushan Ganegedara

Data Scientist and Author

Önceki makine çevirisi modeli

  • Önceki model

Encoder Decoder full model

  • Encoder GRU
    • İngilizce sözcükleri alır
    • Bir bağlam vektörü üretir
  • Decoder GRU
    • Bağlam vektörünü alır
    • GRU çıktı dizisi üretir
  • Decoder Tahmin katmanı
    • GRU çıktı dizisini alır
    • Fransızca sözcükler için olasılıklar üretir
Keras ile Machine Translation

Benzetim: Teacher Forcing olmadan eğitim

No teacher forcing 1

Keras ile Machine Translation

Benzetim: Teacher Forcing olmadan eğitim

No teacher forcing 2

Keras ile Machine Translation

Benzetim: Teacher Forcing olmadan eğitim

No teacher forcing 3

Keras ile Machine Translation

Benzetim: Teacher Forcing ile Eğitim

Teacher forcing 1

Keras ile Machine Translation

Benzetim: Teacher Forcing ile Eğitim

Teacher forcing 2

Keras ile Machine Translation

Benzetim: Teacher Forcing ile Eğitim

Teacher forcing 3

Keras ile Machine Translation

Benzetim: Teacher Forcing ile Eğitim

Teacher forcing 4

Keras ile Machine Translation

Önceki makine çevirisi modeli

  • Önceki model

Encoder decoder full model

  • Teacher Forcing’li model

Encoder decoder model with teacher forcing

Keras ile Machine Translation

Teacher Forcing ile modeli uygulamak

  • Encoder
    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)
    
  • Decoder GRU
    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)
    
Keras ile Machine Translation

Girdiler ve çıktılar

  • Encoder girişi - ör. I, like, dogs
  • Decoder girişi - ör. J'aime, les
  • Decoder çıktısı - ör. les, chiens

Teacher forcing inputs and outputs

Keras ile Machine Translation

Teacher Forcing ile modeli uygulamak

  • Encoder
    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)
    
  • Decoder GRU
    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)
    
  • Decoder Tahmin
    de_dense = layers.TimeDistributed(layers.Dense(fr_vocab, activation='softmax'))
    de_pred = de_dense(de_out)
    
Keras ile Machine Translation

Modeli derlemek

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

Veri ön işleme

  • Encoder

    • Girdiler - Tüm İngilizce sözcükler (onehot kodlu)
      • en_x = sents2seqs('source', en_text, onehot=True, reverse=True)
  • Decoder

    de_xy = sents2seqs('target', fr_text, onehot=True)
    
    • Girdiler - Son sözcük hariç tüm Fransızca sözcükler (onehot kodlu)
      • de_x = de_xy[:,:-1,:]
    • Çıktılar/Hedefler - İlk sözcük hariç tüm Fransızca sözcükler (onehot kodlu)
      • de_y = de_xy[:,1:,:]
Keras ile Machine Translation

Haydi pratik yapalım!

Keras ile Machine Translation

Preparing Video For Download...