Методы обработки очень длинных последовательностей с помощью LSTM

Методы обработки очень длинных последовательностей с помощью LSTM

Долговременная кратковременная память или рекуррентные нейронные сети LSTM способны обучаться и запоминать длинные последовательности входных данных.

LSTM работают очень хорошо, если ваша проблема имеет один выход для каждого входа, например, прогнозирование временных рядов или перевод текста. Но LSTM может быть сложно использовать, когда у вас очень длинные входные последовательности и только один или несколько выходов.

Это часто называют маркировкой последовательностей или классификацией последовательностей.

Вот некоторые примеры:

  • Классификация тональности в документах, содержащих тысячи слов (обработка естественного языка).
  • Классификация следа ЭЭГ тысяч временных шагов (лекарство).
  • Классификация кодирующих и некодирующих генов для последовательностей тысяч пар оснований ДНК (биоинформатика).

Эти так называемые задачи классификации последовательностей требуют особой обработки при использовании рекуррентных нейронных сетей, таких как LSTM.

В этом посте вы откроете для себя 6 способов обработки очень длинных последовательностей для задач классификации последовательностей.

Начните свой проект с моей новой книгой Long-Term Memory Networks With Python, включая пошаговые инструкции и Исходный код Python файлы для всех примеров.

Давайте начнем.

Как обрабатывать очень длинные последовательности с помощью рекуррентных нейронных сетей с кратковременной памятью

Как обрабатывать очень длинные последовательности с помощью рекуррентных нейронных сетей с кратковременной памятью
Фото Джастина Дженсена, некоторые права защищены.

1. Используйте последовательности как есть

Отправной точкой является использование данных длинной последовательности как есть без изменений.

Это может привести к проблеме очень долгого обучения.

Более беспокоит то, что попытка обратного распространения по очень длинным входным последовательностям может привести к исчезновению градиентов и, в свою очередь, к непригодной для изучения модели.

Разумный предел в 250-500 временных шагов часто используется на практике с большими моделями LSTM.

2. Усечение последовательностей

Распространенным методом обработки очень длинных последовательностей является их простое усечение.

Это может быть сделано путем выборочного удаления временных шагов с начала или конца входных последовательностей.

Это позволит вам добиться управляемой длины последовательностей за счет потери данных.

Риск усечения входных последовательностей состоит в том, что данные, которые важны для модели, чтобы делать точные прогнозы, теряются.

3. Обобщите последовательности.

В некоторых проблемных областях можно суммировать входные последовательности.

Например, в случае, когда входные последовательности являются словами, можно удалить все слова из входных последовательностей, которые превышают заданную частоту слов (например, «и», «the» и т. Д.).

Это можно было бы сформулировать так, чтобы сохранять только те наблюдения, где их ранжированная частота во всем наборе обучающих данных выше некоторого фиксированного значения.

Обобщение может привести как к сосредоточению проблемы на наиболее важных частях входных последовательностей, так и к значительному сокращению длины входных последовательностей.

4. Случайная выборка

Менее систематический подход может заключаться в резюмировании последовательности с использованием случайной выборки.

Случайные временные шаги могут быть выбраны и удалены из последовательности, чтобы уменьшить их до определенной длины.

В качестве альтернативы, случайные непрерывные подпоследовательности могут быть выбраны для создания новой дискретизированной последовательности с желаемой длиной, заботясь о том, чтобы обрабатывать перекрытие или неперекрытие, как того требует домен.

Этот подход может быть подходящим в случаях, когда нет очевидного способа систематического уменьшения длины последовательности.

Этот подход также может использоваться как тип схемы увеличения данных для создания множества возможных различных входных последовательностей из каждой входной последовательности. Такие методы могут повысить надежность моделей, когда доступные обучающие данные ограничены.

5. Используйте усеченное обратное распространение во времени

Вместо того, чтобы обновлять модель на основе всей последовательности, градиент можно оценить на основе подмножества последних временных шагов.

Это называется усеченным обратным распространением во времени или сокращенно TBPTT. Это может значительно ускорить процесс обучения повторяющихся нейронных сетей, таких как LSTM, на длинных последовательностях.

Это позволит предоставить все последовательности в качестве входных данных и выполнить прямой проход, но только последние десятки или сотни временных шагов будут использоваться для оценки градиентов и использоваться при обновлении весов.

Некоторые современные реализации LSTM позволяют указать количество временных шагов, используемых для обновлений, отдельно для временных шагов, используемых в качестве входных последовательностей. Например:

6. Используйте архитектуру кодировщика-декодера.

Вы можете использовать автоэнкодер, чтобы узнать новую длину представления для длинных последовательностей, а затем сеть декодера, чтобы интерпретировать закодированное представление в желаемый результат.

Это может включать в себя неконтролируемый автокодер в качестве предварительной обработки последовательностей или более поздние сети в стиле кодировщика-декодера LSTM, используемые для перевода на естественный язык.

Опять же, могут возникнуть трудности с обучением на очень длинных последовательностях, но более сложная архитектура может предложить дополнительные возможности или навыки, особенно в сочетании с одним или несколькими из вышеперечисленных методов.

Нужна помощь с LSTM для прогнозирования последовательности?

Пройдите мой бесплатный 7-дневный курс электронной почты и откройте для себя 6 различных архитектур LSTM (с кодом).

Нажмите, чтобы зарегистрироваться, а также получите бесплатную электронную версию курса в формате PDF.

Начните БЕСПЛАТНЫЙ мини-курс прямо сейчас!

Достойные упоминания и безумные идеи

В этом разделе перечислены некоторые дополнительные идеи, которые до конца не продуманы.

  • Изучите разделение входной последовательности на несколько подпоследовательностей фиксированной длины и обучите модель каждой подпоследовательности как отдельной функции (например, параллельные входные последовательности).
  • Изучите двунаправленный LSTM, в котором каждый LSTM в паре подходит для половины входной последовательности, а результаты каждого уровня объединяются. Масштабируйте от 2 до более, чтобы соответствующим образом уменьшить длину подпоследовательностей.
  • Изучите использование схем кодирования с учетом последовательности, методов проекции и даже хеширования, чтобы уменьшить количество временных шагов менее зависящими от предметной области способами.

Есть ли у вас собственные сумасшедшие идеи?
Дай мне знать в комментариях.

Дальнейшее чтение

В этом разделе перечислены некоторые ресурсы для дальнейшего чтения по проблемам классификации последовательностей:

Резюме

В этом посте вы узнали, как можно обрабатывать очень длинные последовательности при обучении повторяющихся нейронных сетей, таких как LSTM.

В частности, вы узнали:

  • Как уменьшить длину последовательности с помощью усечения, суммирования и случайной выборки.
  • Как настроить обучение для использования усеченного обратного распространения ошибки во времени.
  • Как настроить сетевую архитектуру для использования структуры кодер-декодер.

У вас есть вопросы?
Задайте свои вопросы в комментариях, и я постараюсь ответить.

Разработайте LSTM для прогнозирования последовательности уже сегодня!

Сети с долгосрочной краткосрочной памятью с Python

Разработайте свои собственные модели LSTM за считанные минуты

... всего несколькими строками кода Python

Узнайте, как в моей новой электронной книге:
Сети с долгосрочной краткосрочной памятью с Python

Это обеспечивает самообучения на такие темы, как:
CNN LSTM, кодировщик-декодер LSTM, генеративные модели, подготовка данных, прогнозирование и многое другое...

Наконец, доведите рекуррентные нейронные сети LSTM до
Ваши проекты прогнозирования последовательности

Пропустите академики. Только результаты.

Посмотрите, что внутри

Вас также может заинтересовать