2013-09-17 2 views
3

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

Моей мыслью было принять k предыдущих последовательностей и объединить их в k x n входной вектор. Чтобы обучить модель, у меня был бы следующий вектор в последовательности как выход. Поскольку я ищу недетерминированный результат, я собирался использовать сигмоидную функцию активации с низким градиентом.

Эта процедура представляется разумной?

В надежде, что это так, я попытался реализовать его в R, используя библиотеки nnet и neuralnet, но это документация и примеры, с которыми я столкнулся, кажется, что входные и выходные векторы должны иметь одинаковую длину. Каков синтаксис для обучения по векторам ввода/вывода переменной длины в любом из этих модулей?

Образец моего входного вектора:

 [,1]  
[1,] 0   
[2,] 0   
[3,] 0.6  
[4,] 0.4  
[5,] 0   
[6,] 0   
[7,] 0.06666667 
[8,] 0.6666667 
[9,] 0   
[10,] 0.2666667 
[11,] 0   
[12,] 0.4  
[13,] 0   
[14,] 0   
[15,] 0.6  

и вектор выхода:

 [,1]  
[1,] 0   
[2,] 0   
[3,] 0.8571429 
[4,] 0   
[5,] 0.1428571 

нотабене Вышеуказанный образец имеет n=5, k=3, хотя мой фактический набор данных имеет n~200. В обоих случаях отдельные векторы нормализованы до 1.

Любая помощь очень ценится!

+0

Вы спрашиваете многомерный регресс, как в финансовых? –

+0

В некотором смысле, да. Я ищу, чтобы сгенерировать следующий вектор, увидев (и узнав) из предыдущих векторов. Мои данные не являются финансовыми, но они могут применяться и там. – zanbri

+0

Это по существу нейронная сеть с 15 входными переменными и 5 выходными переменными, верно? –

ответ

2

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

Из вашего текста я выводим, что у вас на самом деле есть последовательность временных рядов, а для «временного окна» [t-k,t-k+1,..,t-1] вы хотите предсказать значение (временные ряды) в t. Если это так, то это актуальная проблема прогнозирования временных рядов, где каждый атрибут представляет собой временной ряд сам по себе, и здесь могут использоваться все связанные с ним временные ряды, например, повторяющиеся нейронные сети (если вам действительно нравятся NN) или условные RBM (если вы действительно хотите не детерминированную, генеративную модель, поскольку они были успешно применены к прогнозированию временных рядов в последние годы).

Теперь некоторые другие сомнения:

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

функцию активации сигмовидной не недетерминирована , Если вы ищете не детерминированные модели, вы должны подумать о некоторых архитектурах, таких как RBM, но, как упоминал в комментарии @Ben Allison, традиционные нейронные сети также могут быть использованы в вероятностной манере с некоторыми простыми модификациями.

с низким градиентом.

Что вы подразумеваете под низким градиентом? Что ваша функция активации имеет небольшой наклон? Это приведет к проблемному обучению в случае простых обучающих процедур (например, алгоритм BP)

[DATA]

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

Название

Ваш вопрос, и модель не «sequentional» и не включает в себя «различные векторные длины», ищет статей о таких явлениях, не приведет вас ответить на ваш вопрос.

+0

Большое спасибо за ваш подробный ответ - я посмотрю на временные rbms. – zanbri

+0

Нейронные сети можно рассматривать как вероятностные модели, если вы рассматриваете выход сигмовидной функции как параметр биномальному или в нескольких выходах учитываете softmax как параметры для многочлена. См. Учебник Дэвида Маккей для дальнейшей доработки этой точки зрения. –

+0

Я не писал, что он не может быть использован в качестве вероятностной модели некоторыми дополнительными модификациями, но вы правы, это должно быть выражено другими словами. – lejlot

Смежные вопросы