Модели генерации текста

Рекуррентные нейронные сети (RNN) для языкового моделирования с Keras

David Cecchini

Data Scientist

Схожа с моделью классификации

Модель генерации текста:

  • Использует словарь в качестве классов
  • Последний слой применяет softmax с числом нейронов, равным размеру словаря
  • В качестве функции потерь используется categorical_crossentropy
Рекуррентные нейронные сети (RNN) для языкового моделирования с Keras

Пример модели на 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')
Рекуррентные нейронные сети (RNN) для языкового моделирования с Keras

Но не совсем классификация

Отличия от классификации:

  • Вычисляет функцию потерь, но не метрики качества (точность)
    • Результаты оцениваются человеком.
    • Если качество недостаточное — увеличьте число эпох или усложните модель (добавьте ячейки памяти, слои и т.д.).
  • Применяется с правилами генерации под конкретную задачу
    • Генерация следующего символа
    • Генерация одного слова
    • Генерация одного предложения
    • Генерация одного абзаца
Рекуррентные нейронные сети (RNN) для языкового моделирования с Keras

Другие применения

  • Создание имён
    • Имена для детей
    • Названия новых звёзд и т.д.
  • Генерация размеченного текста
    • LaTeX
    • Markdown
    • XML и т.д.
    • Программный код
  • Новостные статьи
  • Чат-боты
Рекуррентные нейронные сети (RNN) для языкового моделирования с Keras

Подготовка данных

Иллюстрирует процесс подготовки данных для задачи генерации текста: текст преобразуется в последовательность чисел, а обучающая выборка делится на X и Y — в X хранятся последовательности фиксированной длины, в Y — следующий символ.

Рекуррентные нейронные сети (RNN) для языкового моделирования с Keras

Давайте потренируемся!

Рекуррентные нейронные сети (RNN) для языкового моделирования с Keras

Preparing Video For Download...