Научная статья на тему 'Прогнозирование финансовых временных рядов с использованием рекуррентных нейронных сетей LSTM'

Прогнозирование финансовых временных рядов с использованием рекуррентных нейронных сетей LSTM Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
3967
588
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
НЕЙРОННЫЕ СЕТИ / РЕКУРРЕНТНЫЕ СЕТИ / ПРОГНОЗИРОВАНИЕ / ФИНАНСОВЫЕ РЫНКИ / ФЬЮЧЕРСЫ / NEURAL NETWORKS / RECURRENT NETWORKS / FORECASTING / FINANCIAL MARKETS / FUTURES

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Видмант Олег Сергеевич

В работе исследуется возможность прогнозирования цен закрытия волатильного финансового инструмента (Close) с использованием специальной архитектуры рекуррентных нейронных сетей (Long Short-Term Memory, LSTM). Набором данных для исследования служит выборка из временного ряда фьючерса Сбербанка за 2-летний промежуток времени и с 5-минутными интервалами между наблюдениями. На основе выбранного временного ряда формируются последовательности с фиксированным окном смещения; кроме того, используемые данные нормализуются на отрезке [0 : 1]. По отношению к сформированным данным применяются нейросетевые модели, состоящие из двух слоев рекуррентных, а также двух агрегирующих слоев прямого распространения. По окончании процесса обучения модели LSTM производится сравнение прогнозированных данных и исторических цен закрытия. В результате сравнения продемонстрировано, что модель рекуррентных нейронных сетей на основе архитектуры LSTM способна прогнозировать поведение инструмента на финансовом рынке.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Forecasting financial time series with LSTM recurrent neural networks

The paper deals with the possibility of forecasting the closing prices of a volatile financial instrument (Close) by means of the special architecture of recurrent neural networks (Long Short-Term Memory, LSTM). The set of data for the study is a sample of the time series of the Sberbank futures over a 2-year period in 5-minute intervals between observations. Based on the selected time series, sequences with a fixed offset window are formed, and the data used is normalized at [0 : 1] interval. In relation to the generated data, neural network models consisting of two recurrent layers as well as two aggregation layers in forward propagation are applied. At the end of training in the LSTM model, the predicted data and historical closing prices are compared. Their comparison demonstrates that the recurrent neural network model based on the LSTM architecture is able to predict the behavior of the instrument on the financial market.

Текст научной работы на тему «Прогнозирование финансовых временных рядов с использованием рекуррентных нейронных сетей LSTM»

УДК 330.4:004.032.26

https://doi.org/10.24158/рер.2018.5.12

Видмант Олег Сергеевич

Vidmant Oleg Sergeevich

аспирант Финансового университета при Правительстве Российской Федерации

ПРОГНОЗИРОВАНИЕ ФИНАНСОВЫХ ВРЕМЕННЫХ РЯДОВ С ИСПОЛЬЗОВАНИЕМ РЕКУРРЕНТНЫХ НЕЙРОННЫХ СЕТЕЙ ЬЭТМ

PhD student, Financial University under the Government of the Russian Federation

FORECASTING FINANCIAL TIME SERIES WITH LSTM RECURRENT NEURAL NETWORKS

Чуть более десяти лет назад, в середине 2000-х гг., машинное обучение получило новый виток развития, что было связано с именами двух исследователей Университета в Торонто - Джеффри Хинтона и Йошуа Бенджи, которые нашли более эффективный способ обучения. И в данный момент во многих областях лучшие результаты получаются именно с использованием глубоких нейронных сетей. Одним из прорывов было кардинальное улучшение результатов при решении задач распознавания, и сейчас многие лидеры мирового рынка используют глубокие нейросети для решения задач перевода (Microsoft [1], Google [2], IBM [3]), голосовых помощников (Siri, Amazon Echo), распознавания лиц (Facebook [4]), беспилотного вождения или даже игр (покер, го).

Сети прямого распространения, или многослойные перцептроны, исследованные ранее, имеют фиксированное число входов, и каждый из них воспринимается остальными как независимый. Однако в рекуррентных сетях связи между нейронами не ограничиваются исключительно движением информации в одну сторону, но также имеется возможность вернуть значение «самому себе». Таким образом, нейрон может запоминать информацию, которая была подана ранее на вход. Именно поэтому рекуррентные нейронные сети являются наилучшим выбором для прогнозирования временных рядов и последовательностей. Задачи по характеру входов и выходов разделяют на пять вариантов [5]:

- один вход, один выход (one-to-one);

- один вход, последовательность выходов (one-to-many);

- последовательность входов, один выход (many-to-one);

- последовательность на входе, последовательность на выходе (many-to-many);

- синхронизированные последовательности входов и выходов (synchronized many-to-many).

В данной статье решается регрессионная задача «many-to-one» при обучении с учителем

при использовании рекуррентных слоев. Обычные рекуррентные сети очень плохо справляются

с ситуациями, когда нужно что-то «запомнить» надолго: влияние скрытого состояния или входа с шага t на последующие состояния рекуррентной сети экспоненциально затухает. Именно поэтому в данном исследовании использована модель LSTM [6] (Long Short-Term Memory), где добавляется дополнительная ячейка для моделирования «долгой памяти». Подобная задача рассматривалась в статье Prediction Stock Prices Using LSTM [7], где в качестве инструмента выступал инструмент NIFTY 50 с 5-летней временной выборкой и последующим обучением на 250 и 500 эпохах, а также в работе М. Хэнссона [8], где после анализа было сформировано заключение о том, что рекуррентные нейронные сети LSTM могут прогнозировать события не на всех рынках и инструментах. Предполагается, что на более развитых рынках происходит снижение качества результатов за счет использования аналогичных/обратных моделей для спекулятивных действий.

Таким образом, целью данной статьи является проверка гипотезы о возможности прогнозирования российского финансового инструмента. Эта задача особенно актуальна в последние 5-6 лет, на протяжении которых мы могли наблюдать волатильное поведение большинства инструментов вследствие как страновых рисков, так и экономического кризиса.

В качестве инструмента для прогнозирования воспользуемся фьючерсом Сбербанка (SPFB.SBRF) с двухлетней глубиной выборки, а также 5-минутными временными интервалами (см. табл. 1).

Таблица 1 - Исходные данные инструмента_

<DATE> <TIME> <OPEN> <HIGH> <LOW> <VOL> Close

2016-02-01 10:05 9797 9797 9710 19876 9735

2016-02-01 10:10 9735 9736 9704 8611 9730

2018-02-01 23:45 26490 26490 26480 183 26481

2018-02-01 23:50 26480 26485 26472 649 26484

Для улучшения работы нейронных сетей воспользуемся нормализацией данных в пределах [0 : 1] [9] (см. табл. 2).

Таблица 2 - Нормализация данных инструмента

<DATE> <TIME> <OPEN> <HIGH> <LOW> <VOL> Close

2016-02-01 0.0000 0.0246 0.0233 0.0201 0.1927 0.0211

2016-02-01 0.0037 0.0211 0.0197 0.0197 0.0835 0.0281

2016-02-01 0.0074 0.0208 0.0195 0.0184 0.0978 0.0195

2016-02-01 0.0111 0.0195 0.0183 0.0173 0.1271 0.0176

2016-02-01 0.0148 0.0178 0.0181 0.1794 0.0862 0.0189

Рекуррентные нейронные сети будут принимать в качестве входных данных последовательность значений, в данном случае в качестве входных данных будет использована матрица, состоящая из 6 признаков и фиксированного скользящего окна длиной п (см. рис. 1).

Рисунок 1 - Данные для обучения модели рекуррентных слоев

Используем в качестве переменной скользящего окна значение п = 20, а также разделим выборку в соотношении 90 : 10 на тренировочные данные и данные для проверки гипотезы (отложенные данные). Также выделим 10 % от тренировочных данных на тестирование алгоритма. Таким образом получим следующее соотношение: - данные для тренировки: 75713 * 20 * 6;

- данные для тестирования: 8413 х 20 х 6. Конструирование нейронной сети показано на рис. 2.

Тип слоя

Входной Рекуррентный Рекуррентный Агрегирующий Выходной слой слой слой слой

Количество нейронов 20 LSTM 256 LSTM 256

Рисунок 2 - Строение нейронной сети

Relu 32

Linear 32

На вход нейронной сети подается матрица размерностью 20 х 6, далее значения передаются на рекуррентный слой, который состоит из 256 нейронов рекуррентной нейронной сети, далее процедура повторяется и по окончании результаты агрегируются слоем прямого распространения с функцией активации Relu [10]. Конечный результат поступает на выходной слой с одним нейроном и линейной функцией активации.

Для создания нейронной сети воспользуемся языком программирования Python, а также библиотеками для обработки и визуализации данных:

- pandas;

- numpy;

- matplotlib;

- keras (в качестве основы tensorflow);

- sklearn.

В качестве функции потерь в процессе обучения используется среднеквадратическая ошибка (Mean Squared Error), оптимизация осуществляется с использованием алгоритма Adam [11]. Обучение производится итеративно в течение 10 эпох для отслеживания возможного переобучения (рис. 3).

2 4 6 8

Эпоха

Рисунок 3 - Изменение ошибки на тестовой и проверочной выборке

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

i Надоели баннеры? Вы всегда можете отключить рекламу.