Как можно использовать рекуррентные нейронные сети для классификации последовательностей?

19

RNN может использоваться для прогнозирования или преобразования последовательности в последовательность. Но как RNN можно использовать для классификации? Я имею в виду, мы даем всей последовательности одну метку.

user64003
источник
Я бы попытался предсказать следующий срок, используя предыдущий. Затем я добавил бы эту сеть к радиальной базисной функции (из 3 * классов-меток или около того гауссовских pdf-нейронов), чьи входные данные - это ошибки предсказания ряда, а чьи выходные - метки классов. Я бы имел приличное количество нейронов во входном слое - достаточно, чтобы учесть, сколько элементов последовательности требуется для классификации. Это только мой личный подход.
EngrStudent - Восстановить Монику

Ответы:

13

Можно использовать RNN для сопоставления нескольких входов с одним входом (меткой), как показано на рисунке ( источник ):

введите описание изображения здесь

Каждый прямоугольник является вектором, а стрелки представляют функции (например, умножение матрицы). Входные векторы выделены красным, выходные векторы выделены синим, а зеленые векторы содержат состояние RNN (подробнее об этом в ближайшее время). Слева направо: (1) Ванильный режим обработки без RNN, от ввода фиксированного размера до вывода фиксированного размера (например, классификация изображения). (2) Последовательность вывода (например, для субтитров изображения берется изображение и выводится предложение слов). (3) Последовательность ввода (например, анализ настроений, где данное предложение классифицируется как выражение положительного или отрицательного настроения). (4) Ввод последовательности и вывод последовательности (например, машинный перевод: RNN читает предложение на английском языке, а затем выводит предложение на французском языке). (5) Синхронизированная последовательность ввода и вывода (например, классификация видео, где мы хотим пометить каждый кадр видео).

Франк Дернонкур
источник
4

В случае простого RNN, передайте всю последовательность в вашу сеть, а затем выведите метку класса в последнем элементе последовательности (см. Этот документ и ссылки там для раннего примера такого подхода). На этапе обучения мы можем распространить ошибку во времени от последнего элемента последовательности до начала последовательности. В общем случае это ничем не отличается от проблемы маркировки последовательности RNN, где нам нужно назначать метки только некоторым элементам последовательности (или все другие элементы помечены как ДРУГИЕ).

Денис Тарасов
источник
Необходимо соблюдать осторожность для более длинных последовательностей. Информация в начале последовательности может быть перегружена информацией в последовательности.
Владислав Довгальец