Как обрабатывать данные панели для использования в рекуррентной нейронной сети (RNN)

80
5

Я занимаюсь некоторыми исследованиями в повторяющихся нейронных сетях, но мне трудно понять, как и как их можно использовать для анализа данных панели (что означает данные поперечного сечения, которые фиксируются в разные периоды времени для нескольких субъектов - см. примеры данных ниже). Большинство примеров RNN, которые я видел, связаны с последовательностями текста, а не с истинными данными панели, поэтому я не уверен, применимы ли они к данным этого типа.


Пример данных:


ID    TIME    Y    X1    X2    X3
1 1 5 3 0 10
1 2 5 2 2 6
1 3 6 6 3 11
2 1 2 2 7 2
2 2 3 3 1 19
2 3 3 8 6 1
3 1 7 0 2 0

Если я хочу предсказать Y в определенное время с учетом ковариаций X1, X2 и X3 (а также их значений в предыдущие периоды времени), может ли такая последовательность быть оценена рекуррентной нейронной сетью? Если да, у вас есть какие-либо ресурсы или идеи о том, как превратить этот тип данных в векторы признаков и сопоставлять метки, которые могут быть переданы в RNN (я использую Python, но открыт для других реализаций).

спросил(а) 2016-10-12T23:59:00+03:00 3 года, 11 месяцев назад
1
Решение
113

Я не вижу причин, позволяющих обучать нейронную сеть с помощью панельных данных. Что нейронная сеть делает, так это то, что она сопоставляет один набор значений с другим набором значений, которые имеют нелинейное отношение. В временном ряду значение в конкретном экземпляре зависит от предыдущих значений. Пример: ваше произношение письма может варьироваться в зависимости от того, какую букву вы произнесли раньше. Для прогнозирования временных рядов Рекуррентная нейронная сеть превосходит нейронные сети с обратной связью. Как мы тренируем временные ряды с регулярной сетью прямой передачи, на этом рисунке. Image


В RNN мы можем создать цикл обратной связи во внутренних состояниях сети и что RNN лучше прогнозирует временные ряды.
В ваших примерах нужно учитывать одно: значения x1, x2, x3 влияют на y1 или наоборот? Если это не так, вы можете обучить свою модель как таковую x1, x2, x3, y4 - это данные того же типа. Я тренирую их независимо, используя одну и ту же сеть (при условии экспериментов). Если ваша цель - предсказать значение, в котором их значения одного влияют на другое, то вы можете преобразовать их в одномерные данные, где один временной интервал содержит все варианты типа выборки. Другим способом может быть обучение четыре нейронных сети, где первые три карты их временных рядов с использованием RNN, а последний - это сеть с прямой связью, которая принимает 2 входа из 2 выходов временных рядов и отображает их на 3-й выходы временных рядов и делает это для всех возможных комбинаций. (все еще подвержены экспериментам, поскольку мы не можем точно предсказать производительность нейронной сети без экспериментов)

Рекомендация для чтения: Прочитайте о причинной причине Грейнджера, может немного помочь вам.

ответил(а) 2016-10-13T01:17:00+03:00 3 года, 11 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема