В статье рассматривается пример использования рекуррентных нейронных сетей LSTM для прогнозирования временных рядов. В качестве временного ряда используется набор данных, составленный из курса доллара США по отношению к российскому рублю за период с 1 февраля 2019 по 26 февраля 2022 г.
Ключевые слова: прогнозирование, временные ряды, многослойная нейронная сеть, LSTM.
В настоящее время задача прогнозирования временных рядов остается актуальной. Искусственные нейронные сети являются одним из самых популярных инструментов при прогнозировании временных рядов, они хорошо справляются с задачей классификации, решают сложные вопросы анализа коммутационных соединений, распознавания образов с высоким быстродействием и гарантией правильного результата.
Рекуррентная нейронная сеть глубокого обучения (Long Short Term Memory (LSTM)) имеет способность улавливать закономерности в данных временных рядов и вследствие этого может использоваться для прогнозирования будущего тренда данных. Традиционные нейронные сети не обладают таким свойством. Структура LSTM похожа на цепочку, которая вместо одного слоя нейронной сети содержит четыре. Эти слои взаимодействуют особенным образом. Схема структуры LSTM представлена на рисунке 1.
Рис. 1. Схема структуры LSTM
На схеме, представленной выше, фрагменты нейронной сети A принимают входные значения x t-1 , x t , x t+1 и возвращают значения h t-1 , h t , h t+1 .
В качестве примера изучается временной ряд, составленный из курса доллара США по отношении к российскому рублю за период с 1 февраля 2019 по 26 февраля 2022 г [3]. В качестве таймфрейма взяты одни сутки и цена закрытия рассматриваемого курса валюты. В результате формируется временной ряд, состоящий из 755 значений. Данные разделяются на 2 части, первая часть, состоящая из 600 значений, служит для обучения нейронной сети, а вторая, состоящая из 155 значений, для проверки корректности обучения.
Для реализации был использован язык программирования Python и бесплатный облачный сервис Google Colab. Использованы следующие библиотеки: matplotlib, numpy, pandas, torch, warnings, seaborn.
В связи с тем, что курс доллара стремительно вырос за последний год, требуется стандартизировать имеющиеся данные. Для этого применяется нормализация линейной функции (минимальное/максимальное масштабирование), после которой исходные данные будут находиться в диапазоне от 0 до 1. Необходимо применять нормализацию только по отношению к тренировочному набору данных во избежание утечки информации в тестовый набор.
Для обучения нейронной сети была построена модель рекуррентной нейронной сети LSTM со следующими параметрами обучения: длина последовательности, равная 300; количество единиц скрытого слоя, равное 100; количество элементов вывода, равное 1.
Далее представлен код обучения нейронной сети:
Обучение нейронной сети, используя выше представленный код, завершилось при потере 0.0000137182.
Результат прогнозирования нейронной сети представлен на рисунке 2. Синим цветом на графике показаны правильные выходные данные из набора, а оранжевым — цветом данные, спрогнозированные нейронной сетью.
Рис. 2. Результаты прогнозирования и реальные значения
Как можно увидеть, данные нейронной сети и правильные выходные данные различаются, из чего делается вывод, что полученный алгоритм не точен. Однако алгоритм смог уловить общую тенденцию.
Литература:
1. LSTM — сети долгой краткосрочной памяти [Электронный ресурс]. — Режим доступа: URL: https://habr.com/ru/company/wunderfund/blog/331310/
2. PyTorch-прогнозирование временных рядов с помощью циклической нейронной сети LSTM [Электронный ресурс]. — Режим доступа: URL: https://russianblogs.com/article/67341398207/
3. Динамика официального курса валюты [Электронный ресурс]. — Режим доступа: URL: https://www.cbr.ru/currency_base/dynamics/?UniDbQuery.Posted=True&UniDbQuery.so=1&UniDbQuery.mode=1&UniDbQuery.date_req1=&UniDbQuery.date_req2=&UniDbQuery.VAL_NM_RQ=R01239&UniDbQuery.From=01.02.2019&UniDbQuery.To=26.02.2022
4. Нильсен, Эйлин. Практический анализ временных рядов: прогнозирование со статистикой и машинное обучение.: Пер. с англ. — СПб.: ООО “Диалектика”, 2021. — 544 с.: ил. — Парал. тит. англ.