Проблема, с которой я имею дело, заключается в прогнозировании значений временных рядов. Я смотрю на один временной ряд за раз и на основе, например, 15% входных данных, я хотел бы предсказать его будущие значения. До сих пор я сталкивался с двумя моделями:
- LSTM (долговременная кратковременная память; класс рекуррентных нейронных сетей)
- ARIMA
Я попробовал оба и прочитал некоторые статьи на них. Теперь я пытаюсь понять, как их сравнивать. Что я нашел до сих пор:
- LSTM работает лучше, если мы имеем дело с огромным количеством данных и доступно достаточно данных для обучения, тогда как ARIMA лучше для небольших наборов данных (это правильно?)
- Для ARIMA требуется ряд параметров,
(p,q,d)
которые должны рассчитываться на основе данных, в то время как LSTM не требует установки таких параметров. Однако есть некоторые гиперпараметры, которые нам нужно настроить для LSTM. - РЕДАКТИРОВАТЬ: Одно существенное различие между этими двумя, которые я заметил, читая большую статью здесь , заключается в том, что ARIMA может хорошо работать только на стационарных временных рядах (где нет сезонности, тренда и т. Д.), И вам нужно позаботиться об этом, если хочу использовать ARIMA
Кроме вышеупомянутых свойств, я не мог найти никаких других моментов или фактов, которые могли бы помочь мне выбрать лучшую модель. Я был бы очень признателен, если бы кто-нибудь мог помочь мне найти статьи, статьи или другие материалы (пока что не повезло, только некоторые общие мнения здесь и там, и ничего, основанное на экспериментах)
Я должен упомянуть, что изначально я имею дело с потоковыми данными, однако сейчас я использую наборы данных NAB, которые включают в себя 50 наборов данных с максимальным размером 20 тыс. Точек данных.
Ответы:
Утверждение 1 является правильным, утверждение 2 является правильным, но требует уточнения, а утверждение 3 является неправильным для сезонного ARIMA:
Следующее может указать вам верное направление, но, надеюсь, вы получите еще несколько ответов с большей глубиной на арене LSTM.
Вы упоминаете, что пробовали оба алгоритма и просто пытаетесь выяснить, какой из них лучше, что заставляет меня думать, что у вас больше проблем с процессом обработки данных и перекрестной проверкой, чем со спецификой моделей.
Временные ряды в целом:
Временные ряды, как правило, сложно прогнозировать. Если бы их было легко спрогнозировать, то все ученые, работающие с данными, были бы богаты, точно прогнозируя стоимость всех акций. Реальность такова, что хедж-фонды в среднем не выигрывают у рынка, а прогнозирование временных рядов обычно очень плохое и применяется только для очень коротких периодов. Основные проблемы заключаются в том, что существует много шума, есть много скрытых влияний, модели чрезмерно упрощены, влиятельные лица не ведут себя так, как нам кажется, взаимодействие между линейностью и нелинейностью является тонким и запутанным, ... до бесконечности.
ARIMA
Вы ошибаетесь в своей оценке, что ARIMA требует стационарных временных рядов для прогнозирования. Несезонный ARIMA имеет три входных значения, которые помогают контролировать сглаживание, стационарность и прогнозирование ARIMA (p, d, q), где:
В отличие от сезонного ARIMA имеет шесть входных значений ARIMA (p, d, q, P, D, Q), где:
С учетом приведенных выше квалификационных утверждений я предлагаю поиграть с сезонной ARIMA, чтобы почувствовать тонкости, связанные с сглаживанием, снятием приправы, снятием тренда, устранением шума и прогнозированием.
LSTM
Я не знаю достаточно о LSTM, чтобы добавить сюда много. Я добавлю, что красные флаги, как правило, поднимаются, когда кто-то начинает заниматься наукой данных с глубокого изучения. Я предлагаю изучить как можно больше с помощью ARIMA, а затем применить некоторые из ваших знаний ARIMA, чтобы помочь вам изучить LSTM. Нейронные сети могут быть очень мощным инструментом, но они:
Перекрестная проверка и сравнение моделей:
Временные ряды забавны тем, что все тренировочные данные обычно можно превратить в контролируемые обучающие наборы. Однажды можно просто взять временной ряд и откатить время назад. То есть ... выберите момент времени и сделайте вид, что у вас нет никаких дополнительных данных, затем сделайте прогноз и посмотрите, насколько хорошо вы это сделали. Вы можете пройтись по временным рядам, выполнив это раз, чтобы получить оценку производительности вашей моделиn и сравнить модели, принимая необходимые меры предосторожности для предотвращения переобучения .
Надеюсь, что это помогает и удачи!
источник
Добавление к ответу @ AN6U5.
С чисто теоретической точки зрения, эта статья показывает, что RNN являются универсальными аппроксиматорами. Я не читал газету в деталях, поэтому я не знаю, можно ли применить это доказательство и к LSTM, но я подозреваю, что так. Самая большая проблема с RNN в целом (включая LSTM) заключается в том, что их трудно обучать из-за проблемы исследования градиента и исчезновения градиента. Практический предел для LSTM составляет около 200 шагов со стандартным градиентным спуском и случайной инициализацией. И, как уже упоминалось, в целом, чтобы любая модель глубокого обучения работала хорошо, вам нужно много данных и куча настроек.
Модель ARIMA более ограничена. Если ваша базовая система слишком сложна, то просто невозможно получить хорошую подгонку. Но с другой стороны, если ваша базовая модель достаточно проста, она намного эффективнее, чем подход глубокого обучения.
источник
Модели ARIMA являются линейными, а модели LSTM - нелинейными. Некоторыми другими параметрическими нелинейными моделями временных рядов, которые изучали статистики, являются пороговые модели авторегрессии (TAR) и модели авторегрессии плавного перехода (STAR). Пакет R tsDyn реализует эти модели.
Интересно, как модели STAR против LSTM.
источник
Я пришел к тому же выводу, что и вы, и другие: традиционное прогнозирование все еще, вероятно, наиболее применимо и, возможно, надежно для временных рядов числовых значений. При обсуждении, где временные ряды для числовых значений смешиваются с глубоким обучением, возникает небольшое затруднение, когда глубокое обучение (в настоящее время) относится к современным задачам в распознавании образов для изображений, звука, чистого текста или обнаружения аномалий. У меня часто бывают хорошие результаты с VAR / VECM для ежедневных транзакционных данных, которые, вероятно, могут быть применены к вашему сценарию использования обработки сигналов.
источник
В крайнем случае у меня была возможность изучить прогноз Forex (курс иностранной валюты) и интенсивно сравнивать показатели LSTM, Windowed-MLP и ARIMA. Как говорится во многих статьях, временные ряды Форекс близки к случайным рядам ходьбы (они совершенно нестационарны). Ни один из этих алгоритмов не может предсказать ставку на следующий день. Например, если нет (или мало) изменений, то оно сохранит текущее значение и выглядит хорошо. Однако, если есть внезапное (существенное) изменение в спотовой ставке завтра, то это всегда не в состоянии предсказать. Проблема в том, что из данных обучения (например, истории спотовых курсов за последние 10 лет) нечего учить, достаточно ли оно велико или нет, потому что оно совершенно случайно (возможно, из-за настроений биржевых дилеров ...) ,
Фактически, LSTM с задержкой «1» или ARIMA с (1,0,0) будут работать лучше, поскольку хранение данных с задержкой более 1 не помогает вообще. Для такого рода временных рядов, я бы сказал, с точки зрения производительности слежения: 1) ARIMA, 2) LSTM, 3) MLP. Последний комментарий ... MLP с макро / микроэкономическими параметрами (скажем, разницей ВВП, ставками облигаций, ценами на сырую нефть, индексом доллара и т. Д.) В качестве дополнительных функций также не работал вообще.
источник