Modely pro generování textu

Rekurentní neuronové sítě (RNN) pro jazykové modelování s Keras

David Cecchini

Data Scientist

Podobné klasifikačnímu modelu

Model pro generování textu:

  • Používá slovník jako třídy
  • Poslední vrstva aplikuje softmax s jednotkami velikosti slovníku
  • Jako ztrátová funkce se používá categorical_crossentropy
Rekurentní neuronové sítě (RNN) pro jazykové modelování s Keras

Příklad modelu v Keras

model = Sequential()

model.add(LSTM(units, input_shape=(chars_window, n_vocab), dropout=0.15, recurrent_dropout=0.15, return_sequences=True))
model.add(LSTM(units, dropout=dropout, recurrent_dropout=0.15, return_sequences=False))
model.add(Dense(n_vocab, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam')
Rekurentní neuronové sítě (RNN) pro jazykové modelování s Keras

Není to však klasifikační model

Rozdíl oproti klasifikaci:

  • Počítá ztrátu, nikoli metriky výkonu (přesnost)
    • Výsledky hodnotí člověk.
    • Pokud nejsou dobré, trénujte více epoch nebo zvyšte složitost modelu (více paměťových buněk, více vrstev atd.).
  • Používá se s pravidly generování dle úkolu
    • Generování dalšího znaku
    • Generování jednoho slova
    • Generování jedné věty
    • Generování jednoho odstavce
Rekurentní neuronové sítě (RNN) pro jazykové modelování s Keras

Další aplikace

  • Tvorba jmen
    • Jména pro děti
    • Názvy nových hvězd atd.
  • Generování značkovaného textu
    • LaTeX
    • Markdown
    • XML atd.
    • Programovací kód
  • Zpravodajské články
  • Chatboti
Rekurentní neuronové sítě (RNN) pro jazykové modelování s Keras

Příprava dat

Znázorňuje proces přípravy dat pro úlohu generování textu. Text je převeden na posloupnost čísel a trénovací sada je rozdělena na X a Y: X obsahuje sekvence pevné délky, Y obsahuje následující znak.

Rekurentní neuronové sítě (RNN) pro jazykové modelování s Keras

Pojďme si procvičit!

Rekurentní neuronové sítě (RNN) pro jazykové modelování s Keras

Preparing Video For Download...