1

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

Как я понял, я могу тренировать свою нейронную сеть с некоторыми временными рядами.

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

Но если у меня есть цитаты изо дня в день, как вектор [42, 12, 20, 53, 18], и я хочу, чтобы предсказать следующее значение, не будет просто линейной регрессии проблема с формулой Y = 0.7X + 31.1, получая 26.9 как следующий (шестой) стоимость?

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

Я, например, посмотрел synaptic.js, но они не дают простых примеров для прогнозирования результатов.

Я очень новичок в нейронных сетях, поэтому я прошу прощения, если этот вопрос действительно глупый :-D

+0

Вы можете проверить [Neataptic] (https://github.com/wagenaartje/neataptic), он предлагает еще несколько примеров! –

ответ

1

Вы можете использовать рекуррентную нейронную сеть для такой задачи в следующем порядке:

  1. Ввод: В качестве входных данных следует последовательность цен на акции без последней.
  2. Выход: В качестве выходного сигнала следует последовательность цен на акции без первого.
  3. Топология и сетевые детали: сборки повторяющаяся нейронной сети (например, с использованием ГРУ или LSTM единиц) таким образом, чтобы данный входной сигнал он должен предсказать следующий шаг. Так, например, подача [42, 12, 20, 53] в качестве ввода должна привести [12, 20, 53, 18] в качестве результата (я использую примерную последовательность, которую вы дали).
  4. Шаг прогноза:, если вы хотите предсказать следующий результат своей сети - просто подайте свою сеть в соответствии с вашей последовательностью, и вы получите последний результат в виде предсказания.
0

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

Поскольку ваш шаблон функции, ваша модель для линейной регрессии f(x)=mx+b, где m и b являются настраиваемыми параметрами для такого алгоритма, как градиентный спуск.

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

Я уверен, что это зависит от проблемы, какой алгоритм превосходит другой.

+0

Спасибо за ваш ответ. Если у меня есть обучающий набор '[{input: [volume, open], output: [close]}, ...]' где 'volume' - количество акций, торгуемых,' open' - цена открытия, а ' закрыть' - цена закрытия. Разве RNN не хватит, чтобы вычислить это? Как узнать, сколько скрытых слоев мне нужно? – Jamgreen

+0

У меня нет большого опыта работы с RNN, но вы можете взглянуть на сети NARX: https://en.m.wikipedia.org/wiki/Nonlinear_autoregressive_exogenous_model –

+0

Я знаю, что Matlab предлагает эту архитектуру для прогнозирования временных рядов. Я пытался решить аналогичные проблемы, как с базовым MLP, и у меня не было достаточных результатов, но я могу сказать вам, что вы должны выяснить количество и размер ваших скрытых слоев при попытке и ошибке. Не существует проверенного способа определить их. Я бы тренировал несколько экземпляров вашей сети параллельно и сравнивал их друг с другом, чтобы увидеть, какая настройка обеспечивает наилучшие результаты. Надеюсь, это поможет вам! –