Прогнозирование котировок валют с использованием нейронных сетей

№86-2,

технические науки

В статье рассмотрен метод прогнозирование стоимости валют с использованием нейронных сетей, строящихся с использованием библиотеки Encog на языке программирования C#. Проведен обзор аналогов, описана структура разработанного приложения.

Похожие материалы

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

С появлением искусственных нейронных сетей (ИНС) появился еще один способ прогнозирования — прогнозирование с использованием нейронной сети. ИНС появились в конце первой половины 1900-х годов. В 1943 году были разработаны У. МакКаллоком и У. Питтсем первые математические модели нейронных сетей, послужившие основой для развития в этом направлении.

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

Искусственная нейронная сеть в том виде, в котором она существует в настоящее время, способна успешна решать четыре рода задач:

  • распознавание образов (видео, фото, аудио и др.);
  • классификация;
  • кластеризация;
  • прогнозирование.

Существуют известные программные продукты, позволяющие работать с нейронной сетью и использовать её для решаемых её задач. Задачи прогнозирования способны решать следующие системы:

  • matlab;
  • deductor;
  • neuro shell traider;
  • statistica;
  • brainmaker;

Matlab, deductor и statistica являются мощными инструментами, задачи которых не ограничиваются одной лишь возможностью работы с нейронными сетями. Они направлены на большой спектр задач, и для работы с этими системами необходимы определенные знания, навыки, умения и опыт работы с этими (или подобными) системами. Необходимость опыта, знаний, навыков и умений можно отнести к минусам.

Также, большим минусом приведенных выше программных продуктов является лицензия несвободного использования, или, иначе говоря — платность продуктов.

В таблице ниже приведено сравнение рассматриваемых программных аналогов по пятибалльной шкале, где 5 — высший балл, и 0 — низший балл. Некоторые критерии (поддержка разработчиком, например, может быть оценена только баллами 0 или 5, где 5 — поддерживается в настоящее время, 0 — не поддерживается. Необходимо заметить, что данные оценки глубоко субъективны и являются видением автора данной статьи.

Таблица 1. сравнение аналогов разработанной системы

Критерий оценки

Matlab

Deductor

Neuro shell traider

Statistica

Brainmaker

Цена

2

2

3

0

3

Простота использования

1

2

4

2

4

Наличие пробной версии

0

5

0

5

0

Наличие официального сайта

5

5

5

5

0

Поддержка разработчиком

5

5

5

5

0

Наличие студенческой версии

5

5

0

5

0

Средний балл

3

4

2,8

3,6

1,1

Искусственная нейронная сеть в простейшем ее представлении имеет некоторое количество нейронов, соединенных между собой. Модель искусственной многослойной нейронной сети представлена на рисунке ниже. Входной слой — это тот слой, на который поступает вектор входного сигнала. Скрытый слой расположен между входным и выходным слоем, в нем происходит основная работа с данными. Выходной слой выводит результаты работы нейронной сети.


Рисунок 1 — модель искусственной нейронной сети (a — входной слой, b — скрытый слой, c — выходной слой)

Разработанная программная система направлена на процесс прогнозирования. Для пользования системой нет необходимости в опыте работы с подобными программными продуктами, потенциальный пользователь сможет разобраться с порядком необходимых действий в течении некоторого непродолжительного времени. На рисунках ниже будет общее описание системы на унифицированном языке UML.

Диаграмма иерархии процессов
Рисунок 2. Диаграмма иерархии процессов
Общая диаграмма прецедентов
Рисунок 3. Общая диаграмма прецедентов
Общая IDEF0 диаграмма
Рисунок 4. Общая IDEF0 диаграмма


С разработанной программой были проведены эксперименты, скриншоты работы программы, а также конечные результаты отображены ниже.

внесение данных в разработанную программную систему
Рисунок 5. внесение данных в разработанную программную систему
Настройка нейронной сети
Рисунок 6. Настройка нейронной сети

Таблица 2. Сравнение полученных прогнозных результатов с реальными

Дата

Реальные данные

RPT (Activation Log)

RPT (Activation sigmoid)

RPT (Activation TANH)

QPROP

(Activation TANH)

SCG (Activation TANH)

02.06.2018

62,2056

60,8231

65,6109

65,6109

65,6110

63,2510

03.06.2018

62,2056

60,8700

65,6615

65,6615

65,2727

63,2510

04.06.2018

62,2056

60,5095

65,2727

65,2727

64,6385

63,1120

05.06.2018

62,2056

59,9215

64,6384

64,6384

64,6385

62,7832

06.06.2018

61,9290

59,9215

64,6384

64,6384

64,6385

62,1941

07.06.2018

61,9822

59,9215

64,6384

64,6384

64,3692

61,9492

08.06.2018

62,0064

59,6719

64,3691

64,3691

64,5636

62,0129

Схема нейронной сети разработанной системы (Состоящая из одного входного слоя, содержащего 100 нейронов; 10 скрытых слоев, содержащих в себе 50 нейронов в первом входном слое и 41 в последнем; одного выходного слоя). Частный случай.
Рисунок 7. Схема нейронной сети разработанной системы (Состоящая из одного входного слоя, содержащего 100 нейронов; 10 скрытых слоев, содержащих в себе 50 нейронов в первом входном слое и 41 в последнем; одного выходного слоя). Частный случай.
Схема нейронной сети разработанного приложения. Общий случай
Рисунок 8. Схема нейронной сети разработанного приложения. Общий случай

Самым эффективным прогнозом оказался случай, при котором типом обучения был метод сопряженных градиентов, и функция активации TANH (гиперболическая функция активации касательной). Разница с реальными данными в этом случае расходилась всего, на 1.6 %, что является, несомненно хорошим результатом, но тем не менее недостаточно точным.

Заключение

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

Список литературы

  1. Jeff Heaton, Programming Neural Networks with Encog3 in C#// Heaton Research, Inc. St. Louis, MO, USA, 2011
  2. Алгоритм нейронной сети [Электронный ресурс]. – Режим доступа: https://msdn.microsoft.com/ru-ru/library/ms174941%28v=sql.120%29.aspx?f=255&MSPPError=-2147217396 Дата обращения: 09.06.2018
  3. Искусственная нейронная сеть [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Искусственная_нейронная_сеть. Дата обращения: 09.06.2018.