Прогнозирование временных рядов с помощью нейронных сетей
|
АННОТАЦИЯ 4
ВВЕДЕНИЕ 7
1 ЗАДАЧА ПРОГНОЗИРОВАНИЯ ВРЕМЕННЫХ РЯДОВ 9
1.1 Области применения задач прогнозирования 9
1.1.1 Медицина 9
1.1.2 Экономика 10
1.1.3 Физика 11
1.1.4 Энергетика 12
1.2 Методы прогнозирования временных рядов 13
1.2.1 Регрессионные модели 14
1.2.2 Авторегрессионные модели (AR) 16
1.2.3 Модели экспоненциального сглаживания (ES) 17
1.2.4 Классификационно-регрессионные деревья (CART) 18
1.2.5 Модель на основе генетического алгоритма (GA) 19
1.2.6 Модель на опорных векторах (SVM) 20
1.3 Нейросетевые модели 23
1.3.1 Нейронные сети прямого распространения (FFNN) 23
1.3.2 Рекуррентные нейронные сети (RNN) 24
1.3.3 Сети радиально-базисных функций (RBF) 26
1.3.4 Сверточные нейронные сети (CNN) 27
1.4 Выводы по разделу 28
2 ПРОГНОЗИРОВАНИЕ ВРЕМЕННЫХ РЯДОВ С ПОМОЩЬЮ
НЕЙРОННЫХ СЕТЕЙ 30
2.1 Задачи прогнозирования временного ряда 30
2.1.1 Задача классификации временного ряда 30
2.1.2 Задача регрессии временного ряда 31
2.2 Метрики качества и функции потерь 32
2.2.1 Средний квадрат ошибки (MSE) 32
2.2.2 Средняя абсолютная ошибка (MAE) 33
2.2.3 Кросс-энтропийная функция ошибки (Cross-Entropy) 33
2.2.4 Т очность (Accuracy) 35
2.3 Сеть радиально-базисных функций (RBF) 35
2.4 Многослойный персептрон (MLP) 39
2.5 Сеть долгой краткосрочной памяти (LSTM) 41
2.6 Обучение нейронных сетей 46
2.7 Выводы по разделу 49
3 РЕЗУЛЬТАТЫ ПРОГНОЗИРОВАНИЯ ВРЕМЕННЫХ РЯДОВ 50
3.1 Алгоритмы получения прогноза и обучения нейронных сетей 50
3.2 Сеть радиально-базисных функций (RBF) 53
3.2.1 Архитектура сети 53
3.2.2 Обучение 54
3.2.3 Результаты работы 55
3.3 Многослойный персептрон (MLP) 57
3.3.1 Архитектура сети 57
3.3.2 Обучение 59
3.3.3 Результаты работы 61
3.4 Сеть долгой краткосрочной памяти (LSTM) 63
3.4.1 Архитектура сети 63
3.4.2 Обучение 64
3.4.3 Результаты работы 66
3.5 Сравнительный анализ результатов прогнозирования 68
3.5.1 Классификация 68
3.5.2 Регрессия 70
3.6 Выводы по разделу 74
ЗАКЛЮЧЕНИЕ 76
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 78
ПРИЛОЖЕНИЕ 1. Исходный код 81
ВВЕДЕНИЕ 7
1 ЗАДАЧА ПРОГНОЗИРОВАНИЯ ВРЕМЕННЫХ РЯДОВ 9
1.1 Области применения задач прогнозирования 9
1.1.1 Медицина 9
1.1.2 Экономика 10
1.1.3 Физика 11
1.1.4 Энергетика 12
1.2 Методы прогнозирования временных рядов 13
1.2.1 Регрессионные модели 14
1.2.2 Авторегрессионные модели (AR) 16
1.2.3 Модели экспоненциального сглаживания (ES) 17
1.2.4 Классификационно-регрессионные деревья (CART) 18
1.2.5 Модель на основе генетического алгоритма (GA) 19
1.2.6 Модель на опорных векторах (SVM) 20
1.3 Нейросетевые модели 23
1.3.1 Нейронные сети прямого распространения (FFNN) 23
1.3.2 Рекуррентные нейронные сети (RNN) 24
1.3.3 Сети радиально-базисных функций (RBF) 26
1.3.4 Сверточные нейронные сети (CNN) 27
1.4 Выводы по разделу 28
2 ПРОГНОЗИРОВАНИЕ ВРЕМЕННЫХ РЯДОВ С ПОМОЩЬЮ
НЕЙРОННЫХ СЕТЕЙ 30
2.1 Задачи прогнозирования временного ряда 30
2.1.1 Задача классификации временного ряда 30
2.1.2 Задача регрессии временного ряда 31
2.2 Метрики качества и функции потерь 32
2.2.1 Средний квадрат ошибки (MSE) 32
2.2.2 Средняя абсолютная ошибка (MAE) 33
2.2.3 Кросс-энтропийная функция ошибки (Cross-Entropy) 33
2.2.4 Т очность (Accuracy) 35
2.3 Сеть радиально-базисных функций (RBF) 35
2.4 Многослойный персептрон (MLP) 39
2.5 Сеть долгой краткосрочной памяти (LSTM) 41
2.6 Обучение нейронных сетей 46
2.7 Выводы по разделу 49
3 РЕЗУЛЬТАТЫ ПРОГНОЗИРОВАНИЯ ВРЕМЕННЫХ РЯДОВ 50
3.1 Алгоритмы получения прогноза и обучения нейронных сетей 50
3.2 Сеть радиально-базисных функций (RBF) 53
3.2.1 Архитектура сети 53
3.2.2 Обучение 54
3.2.3 Результаты работы 55
3.3 Многослойный персептрон (MLP) 57
3.3.1 Архитектура сети 57
3.3.2 Обучение 59
3.3.3 Результаты работы 61
3.4 Сеть долгой краткосрочной памяти (LSTM) 63
3.4.1 Архитектура сети 63
3.4.2 Обучение 64
3.4.3 Результаты работы 66
3.5 Сравнительный анализ результатов прогнозирования 68
3.5.1 Классификация 68
3.5.2 Регрессия 70
3.6 Выводы по разделу 74
ЗАКЛЮЧЕНИЕ 76
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 78
ПРИЛОЖЕНИЕ 1. Исходный код 81
В течение всей истории человечество пыталось заглянуть в свое будущее. В средние века люди гадали, какой будет урожай на следующий год, ожидать ли стихийных бедствий или эпидемий. Часто эти предсказания были совершено неверными, однако, со временем, наблюдения за теми или иными процессами приводили к выявлению закономерностей. Например, случайно выявленные природные зависимости отражались в приметах и других фольклорных элементах. Таким образом, одни из первых достоверных прогнозов люди научились составлять для ведения более эффективного сельского хозяйства.
Однако в настоящее время точные прогнозы требуются не только для ведения сельского хозяйства, но и для организации любого производства, создания прибыльной экономики, поддержания качественного здравоохранения, определения политического курса или для успешной работы любой другой сферы деятельности человека. В связи с такими широкими потребностями в точных прогнозах, люди стали выделять целый класс задач прогнозирования, методы и способы решения которых исследуются до сих пор.
Задача прогнозирования временных рядов является одной из наиболее распространенных и востребованных задач прогнозирования. Это подтверждается тем, что за последние 50 лет были разработаны десятки способов и методов решения, основанных на математической статистике. Большинство из них по сей день применяются в работе фондовых бирж, напрямую зависящих от решения данной задачи. Однако, активное развитие методов машинного обучения, в частности нейронных сетей, привело к появлению новых подходов и способов прогнозирования временных рядов. Ведущие эксперты и разработчики машинного обучения сходятся во мнении, что применение нейронных сетей является более перспективным подходом по отношению к стандартным методам, основанным на математической статистике. Это подтверждается многочисленными исследованиями, демонстрирующими, что прогнозы, сделанные нейронными сетями, точнее. Тем не менее, пока нет достаточного количества исследований, позволяющих однозначно определить перечень лучших нейронных сетей для решения задачи прогнозирования временных рядов, а также упорядочить их по точности прогнозов.
Таким образом, целью данной работы является построение прогнозов и проведение сравнительного анализа точности прогнозирования временных рядов с помощью различных архитектур нейронных сетей.
Для достижения поставленной цели необходимо решить следующие задачи:
1) провести анализ предметной области;
2) сформулировать задачи классификации и регрессии временных рядов;
3) определить нейронные сети, подходящие для решения каждой из задач;
4) реализовать выбранные нейронные сети;
5) протестировать работу сетей на различных входных данных;
6) провести сравнительный анализ результатов прогнозирования;
7) сделать выводы о преимуществах и недостатках реализованных сетей при решении задач классификации и регрессии временных рядов .
Однако в настоящее время точные прогнозы требуются не только для ведения сельского хозяйства, но и для организации любого производства, создания прибыльной экономики, поддержания качественного здравоохранения, определения политического курса или для успешной работы любой другой сферы деятельности человека. В связи с такими широкими потребностями в точных прогнозах, люди стали выделять целый класс задач прогнозирования, методы и способы решения которых исследуются до сих пор.
Задача прогнозирования временных рядов является одной из наиболее распространенных и востребованных задач прогнозирования. Это подтверждается тем, что за последние 50 лет были разработаны десятки способов и методов решения, основанных на математической статистике. Большинство из них по сей день применяются в работе фондовых бирж, напрямую зависящих от решения данной задачи. Однако, активное развитие методов машинного обучения, в частности нейронных сетей, привело к появлению новых подходов и способов прогнозирования временных рядов. Ведущие эксперты и разработчики машинного обучения сходятся во мнении, что применение нейронных сетей является более перспективным подходом по отношению к стандартным методам, основанным на математической статистике. Это подтверждается многочисленными исследованиями, демонстрирующими, что прогнозы, сделанные нейронными сетями, точнее. Тем не менее, пока нет достаточного количества исследований, позволяющих однозначно определить перечень лучших нейронных сетей для решения задачи прогнозирования временных рядов, а также упорядочить их по точности прогнозов.
Таким образом, целью данной работы является построение прогнозов и проведение сравнительного анализа точности прогнозирования временных рядов с помощью различных архитектур нейронных сетей.
Для достижения поставленной цели необходимо решить следующие задачи:
1) провести анализ предметной области;
2) сформулировать задачи классификации и регрессии временных рядов;
3) определить нейронные сети, подходящие для решения каждой из задач;
4) реализовать выбранные нейронные сети;
5) протестировать работу сетей на различных входных данных;
6) провести сравнительный анализ результатов прогнозирования;
7) сделать выводы о преимуществах и недостатках реализованных сетей при решении задач классификации и регрессии временных рядов .
Цель данной работы заключалась в построении прогнозов и проведении сравнительного анализа точности прогнозирования временных рядов с помощью различных архитектур нейронных сетей.
В ходе работы были сформулированы задачи классификации и регрессии временных рядов, а также приведены метрики качества и функции потерь, позволяющие оценить точность решения каждой из задач.
В качестве рассматриваемых нейронных сетей были выбраны сеть радиально-базисных функций (RBF), сеть многослойного персептрона (MLP) и сеть долгой краткосрочной памяти (LSTM). Для каждой из рассматриваемых сетей составлена математическая модель и разработана архитектура для решения задач прогнозирования и регрессии. В качестве алгоритма обучения для нейронных сетей выбран метод добавления импульса Нестерова в метод адаптивной инерции (Nadam), являющийся модификацией стохастического градиентного спуска.
Для обучения и тестирования рассматриваемых нейронных сетей выбраны два различных по своим свойствам временных ряда:
1) котировки валютной пары евро/доллар (EUR/USD), подверженные влиянию трендов фондового рынка;
2) Значения температуры воздуха в городе Челябинске, подверженные сезонным факторам.
Разработанные архитектуры нейронных сетей были реализованы на языке программирования Python 3.7, с применением библиотеки машинного обучения TensorFlow и нейросетевой библиотеки Keras, а также интегрированной среды разработки PyCharm.
Для проведения сравнительного анализа точности прогнозирования при решении задачи классификации и регрессии была исследована зависимость качества прогнозирования от длины входного сегмента временного ряда и горизонта прогнозирования. Исходя из полученных результатов был сделан вывод о способности нейронных сетей решать соответствующие задачи прогнозирования. Таким образом, установлено, что сеть долгой краткосрочной памяти (LSTM) является наиболее точной нейронной сетью при решении задач классификации и регрессии временных рядов. Также обоснована возможность использования сетей радиально-базисных функций(ИБТ) и многослойного персептрона (MLP) при решении некоторых задач.
Таким образом, цель достигнута, а все поставленные задачи полностью решены. Целью дальнейшей работы может быть исследование архитектур нейронных сетей для совокупной оценки нескольких временных рядов.
В ходе работы были сформулированы задачи классификации и регрессии временных рядов, а также приведены метрики качества и функции потерь, позволяющие оценить точность решения каждой из задач.
В качестве рассматриваемых нейронных сетей были выбраны сеть радиально-базисных функций (RBF), сеть многослойного персептрона (MLP) и сеть долгой краткосрочной памяти (LSTM). Для каждой из рассматриваемых сетей составлена математическая модель и разработана архитектура для решения задач прогнозирования и регрессии. В качестве алгоритма обучения для нейронных сетей выбран метод добавления импульса Нестерова в метод адаптивной инерции (Nadam), являющийся модификацией стохастического градиентного спуска.
Для обучения и тестирования рассматриваемых нейронных сетей выбраны два различных по своим свойствам временных ряда:
1) котировки валютной пары евро/доллар (EUR/USD), подверженные влиянию трендов фондового рынка;
2) Значения температуры воздуха в городе Челябинске, подверженные сезонным факторам.
Разработанные архитектуры нейронных сетей были реализованы на языке программирования Python 3.7, с применением библиотеки машинного обучения TensorFlow и нейросетевой библиотеки Keras, а также интегрированной среды разработки PyCharm.
Для проведения сравнительного анализа точности прогнозирования при решении задачи классификации и регрессии была исследована зависимость качества прогнозирования от длины входного сегмента временного ряда и горизонта прогнозирования. Исходя из полученных результатов был сделан вывод о способности нейронных сетей решать соответствующие задачи прогнозирования. Таким образом, установлено, что сеть долгой краткосрочной памяти (LSTM) является наиболее точной нейронной сетью при решении задач классификации и регрессии временных рядов. Также обоснована возможность использования сетей радиально-базисных функций(ИБТ) и многослойного персептрона (MLP) при решении некоторых задач.
Таким образом, цель достигнута, а все поставленные задачи полностью решены. Целью дальнейшей работы может быть исследование архитектур нейронных сетей для совокупной оценки нескольких временных рядов.





