Pengantar Teacher Forcing

Penerjemahan Mesin dengan Keras

Thushan Ganegedara

Data Scientist and Author

Model penerjemah mesin sebelumnya

  • Model sebelumnya

Encoder Decoder full model

  • GRU Encoder
    • Menerima kata bahasa Inggris
    • Menghasilkan vektor konteks
  • GRU Decoder
    • Menerima vektor konteks
    • Menghasilkan deret keluaran GRU
  • Lapisan Prediksi Decoder
    • Menerima deret keluaran GRU
    • Menghasilkan probabilitas prediksi untuk kata bahasa Prancis
Penerjemahan Mesin dengan Keras

Analogi: Pelatihan tanpa Teacher Forcing

No teacher forcing 1

Penerjemahan Mesin dengan Keras

Analogi: Pelatihan tanpa Teacher Forcing

No teacher forcing 2

Penerjemahan Mesin dengan Keras

Analogi: Pelatihan tanpa Teacher Forcing

No teacher forcing 3

Penerjemahan Mesin dengan Keras

Analogi: Pelatihan dengan Teacher Forcing

Teacher forcing 1

Penerjemahan Mesin dengan Keras

Analogi: Pelatihan dengan Teacher Forcing

Teacher forcing 2

Penerjemahan Mesin dengan Keras

Analogi: Pelatihan dengan Teacher Forcing

Teacher forcing 3

Penerjemahan Mesin dengan Keras

Analogi: Pelatihan dengan Teacher Forcing

Teacher forcing 4

Penerjemahan Mesin dengan Keras

Model penerjemah mesin sebelumnya

  • Model sebelumnya

Encoder decoder full model

  • Model dengan teacher forcing

Encoder decoder model with teacher forcing

Penerjemahan Mesin dengan Keras

Mengimplementasikan model dengan Teacher Forcing

  • 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)
    
  • GRU Decoder
    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)
    
Penerjemahan Mesin dengan Keras

Input dan output

  • Masukan encoder - mis. I, like, dogs
  • Masukan decoder - mis. J'aime, les
  • Keluaran decoder - mis. les, chiens

Teacher forcing inputs and outputs

Penerjemahan Mesin dengan Keras

Mengimplementasikan model dengan Teacher Forcing

  • 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)
    
  • GRU Decoder
    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)
    
  • Prediksi Decoder
    de_dense = layers.TimeDistributed(layers.Dense(fr_vocab, activation='softmax'))
    de_pred = de_dense(de_out)
    
Penerjemahan Mesin dengan Keras

Menyusun (compile) model

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

Praproses data

  • Encoder

    • Masukan - Semua kata bahasa Inggris (one-hot)
      • en_x = sents2seqs('source', en_text, onehot=True, reverse=True)
  • Decoder

    de_xy = sents2seqs('target', fr_text, onehot=True)
    
    • Masukan - Semua kata bahasa Prancis kecuali kata terakhir (one-hot)
      • de_x = de_xy[:,:-1,:]
    • Keluaran/Target - Semua kata bahasa Prancis kecuali kata pertama (one-hot)
      • de_y = de_xy[:,1:,:]
Penerjemahan Mesin dengan Keras

Ayo berlatih!

Penerjemahan Mesin dengan Keras

Preparing Video For Download...