Рекуррентная нейронная сеть с авторегрессией для более масштабируемого прогнозирования.

Прогнозирование временных рядов. Это еще одно модное слово, которое становится популярным в области науки о данных?

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

В последние несколько недель я искал способ масштабировать проблему прогнозирования временных рядов, чтобы предсказать модели использования от миллионов до десяти миллионов множества пользователей, но все усилия по исследованию классических методов прогнозирования временных рядов зашли в тупик из-за их негибкость. Но однажды я просто понял это. «DeepAR», авторегрессивная рекуррентная нейронная сеть (AR-RNN), разработанная Amazon, может стать моим спасением.

Стоит ли затрачивать усилия на использование DeepAR для прогнозирования? Давайте узнаем…

Обзор

Этот блог является первым из серии из двух частей, в которых будет представлен подробный обзор современной модели глубокого обучения DeepAR и ее сравнение с современным классическим методом Fb-Prophet. В то время как во второй статье рассматривается комплексная реализация алгоритма DeepAR на основе вариантов использования в AWS sagemaker.

Прочитав эту статью, вы сможете понять,

  1. Какова концепция и принципы DeepAR?
  2. Чем модель отличается от других моделей?
  3. В какой степени он обеспечивает лучшие результаты с точки зрения точности прогнозирования и времени вычислений?

Как работает DeepAR?

DeepAR — это методология прогнозирования, основанная на AR RNN, которая изучает глобальную модель вместо подгонки отдельных моделей для каждого временного ряда, как в других классических моделях. Он учится на исторических данных всех временных рядов в наборе данных и производит точные вероятностные прогнозы. Этот метод был разработан Amazon и выделяется своей способностью «масштабироваться» с использованием нескольких ковариатов.

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

Архитектура DeepAR состоит из нескольких компонентов;

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

Архитектуру DeepAR можно точно настроить, изменив количество слоев, количество нейронов на слой и типы функций активации, используемых в каждом слое.

Модель DeepAR становится мощной благодаря своей особенности использования набора моделей RNN, каждая из которых обучается на определенном подмножестве данных. Окончательный прогноз создается путем объединения прогнозов всех моделей. Это позволяет модели более эффективно обрабатывать несколько временных рядов с разными шаблонами.

Вы можете найти более подробную информацию о фреймворке DeepAR по этой ссылке.

Чем DeepAR отличается от других моделей?

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

  1. Он использует тысячи или миллионы связанных временных рядов, чтобы сделать прогноз для отдельного временного ряда, позволяя подогнать более сложную (и, следовательно, потенциально более точную) глобальную модель.
  2. DeepAR избавляет от усилий и времени, необходимых для ручного проектирования признаков (выбор и подготовка ковариатов) и эвристики разделов модели, которые выполняются с помощью классических моделей прогнозирования. Например, DeepAR может обрабатывать отсутствующие значения в данных временных рядов, что является распространенной проблемой в реальных данных временных рядов.
  3. Модель изучает сезонное поведение и зависимости от заданных ковариат во временном ряду. Например, если ваша задача прогнозирует уровень влажности, вы можете включить температуру воздуха, давление воздуха как ковариаты.
  4. Изучая аналогичные элементы, он может давать прогнозы для элементов с небольшой историей или вообще без нее и решать проблемы холодного запуска там, где традиционные методы не в состоянии сделать это.
  5. DeepAR предоставляет как точечные, так и вероятностные прогнозы, где последний хорошо подходит для реальных приложений, таких как планирование пропускной способности, планирование рисков и т. д.

Применение для прогнозирования энергопотребления.

Теперь давайте углубимся в сравнение результатов модели DeepAR с эталонной моделью, разработанной с помощью Fb-Prophet, которая представляет собой статистическую модель, основанную на разбиении временного ряда на несколько такие компоненты, как тенденция, сезонность и праздничные дни. Он использует простую аддитивную модель для прогнозирования будущих значений и разработан таким образом, чтобы его было легко использовать и интерпретировать.

Задание. Предскажите ежедневное энергопотребление 10 000 домов на следующие 30 дней.

Набор данных.Набор данных содержит ежедневное энергопотребление 10 000 пользователей в течение 580 дней. В дополнение к основному временному ряду использовались зависящие от времени ковариаты, такие как праздники, максимальная температура в помещении и независимые от времени функции, такие как категории пользователей.

Архитектура модели.

Структура экспериментальной модели.

Набор для обучения и тестирования. Набор данных разделен на две части: набор данных для обучения включает все данные, кроме последних 30 дней, а набор данных для тестирования содержит данные о мощности за последние 30 дней.

Эксперименты - эксперимент будет основан на 3 сценариях, основанных на функциях, используемых моделью.

Сценарий 1. Модель использует только базовое энергопотребление.

Сценарий 2. Функции данных. Помимо основного использования, модель получает функции, связанные с датой, чтобы учитывать влияние сезонности даты.

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

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

Для сравнения производительности каждого сценария было выбрано пороговое значение MAPE менее 40% с целью выбора наилучшей модели, которая имеет самый высокий % подсчетов пользователей, попадающих на ‹40% MAPE при минимальном времени обучения.

Результаты.

В целом, модель DeepAR показала лучшие результаты как в MAPE, так и во времени выполнения, в то время как Fb-prophet потребовалось больше времени выполнения, что делает его не масштабируемым на практике.

Хотя DeepAR — мощная модель, Data Scientist должен убедиться, что эта модель лучше всего подходит для вашего варианта использования. Иногда простая модель прогнозирования лучше подходит, чем модель DeepAR, поскольку она имеет свои недостатки. Включая,

  1. Сложность: DeepAR — это сложная модель со многими параметрами, которые необходимо обучить. Это может затруднить интерпретацию прогнозов модели и сделать ее обучение дорогостоящим в вычислительном отношении.
  2. Требования к данным: DeepAR требует больших объемов данных для эффективного обучения. Он может плохо работать с небольшими или плохо отобранными наборами данных.
  3. Не поддается интерпретации: DeepAR — это модель на основе нейронной сети, что может затруднить понимание того, как она делает прогнозы. Это не подходит для приложений, где важна интерпретируемость.
  4. Переобучение: DeepAR — это сложная модель, которую можно легко переобучить на обучающих данных, особенно если набор данных небольшой. Методы регуляризации, такие как отсев, могут использоваться для уменьшения переобучения, но это все равно может вызывать беспокойство.
  5. Требуется графический процессор: для обучения модели DeepAR требуется значительная вычислительная мощность, в частности, требуется графический процессор.
  6. Требуется большой объем памяти: из-за сложности модели для ее обучения и запуска требуется большой объем памяти.

Заключение

В этой статье мы рассмотрели высокоуровневый обзор модели DeepAR и то, как она превосходит другие классические модели прогнозирования временных рядов в случае реальных приложений благодаря ее преимуществам, а также сравнение результатов модели DeepAR с Fb-Prophet. В следующей статье мы увидим реализацию алгоритма DeepAR на Python.

Ссылки

Д. Салинас, В. Фланкерт, Дж. Гастхаус, DeepAR: вероятностное прогнозирование с авторегрессионными рекуррентными сетями, апрель 2017 г.

https://towardsdatascience.com/deep-learning-for-time-series-data-ed410da30798

https://www.slideshare.net/AlbertoArrigoni/time-series-deep-learning-130463800