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

Прогнозирование на фондовом рынке с помощью нейронных сетей. Описание типа нейронной сети. Определение входных данных и их обработка. Архитектура нейронной сети. Точность результата. Моделирование торговли. Нейронная сеть прямого распространения сигнала.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 18.02.2017
Размер файла 2,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

СОДЕРЖАНИЕ

Введение

1. Прогнозирование на фондовом рынке с помощью нейронных сетей

1.1 Рынок ценных бумаг

1.2 Степень разработанности темы в научной литературе

1.3 Нейронные сети

1.4 Цели и задачи исследования

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

2.1 Определение типа нейронной сети

2.2 Определение входных данных и их обработка

2.3 Архитектура нейронной сети

2.4 Точность результата

2.5 Моделирование торговли

3. Применение разработанного решения

3.1 Входные данные

3.2 Предобработка данных

3.3 Дополнительные объясняющие переменные

3.4 Нейронная сеть прямого распространения сигнала

3.4.1 Прогнозирование объёма

3.4.2 Прогнозирование цены

3.5 Рекуррентная нейронная сеть Элмана

3.5.1 Прогнозирование объёма

3.5.2 Прогнозирование цены

3.6 Оценки ошибок

3.7 Моделирование торговли

Заключение

Список использованных источников

Приложения

ВВЕДЕНИЕ

Рынок ценных бумаг, он же фондовый рынок, представляет собой публичную торговую площадку для торговли акциями различных компаний. Прогнозирование на рынке ценных бумаг - это попытка определить будущую цену акции компании. Успешное предсказывание цены может принести огромную прибыль торговцу. Одна из основных гипотез заключается в предположении, что цены на акции формируются исходя из всей доступной информации в мире о данных компаниях. Желание узнать будущую картину на фондовом рынке дало толчок развитию нескольких методологий для предсказывания ситуаций на рынке ценных бумаг. Выделяют три главные категории на которые разделяют существующие методологии, используемые для предсказывания цены акций: фундаментальный анализ, технический анализ и технологические методы. Каждая такая методология направлена на максимизация точности предсказания. При этом различные методологии предсказывают либо точное значение конечной цены, либо тренд движения цены в определенном временном интервале.

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

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

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

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

1. ПРОГНОЗИРОВАНИЕ НА ФОНДОВОМ РЫНКЕ С ПОМОЩЬЮ НЕЙРОННЫХ СЕТЕЙ

1.1 РЫНОК ЦЕННЫХ БУМАГ

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

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

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

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

1.2 СТЕПЕНЬ РАЗРАБОТАННОСТИ ТЕМЫ В НАУЧНОЙ ЛИТЕРАТУРЕ

нейронный сеть прогнозирование торговля

Нейронные сети повсеместно применяются для прогнозирования всевозможных исходов на протяжении последних лет. Область фондового рынка не является исключением. Первыми трудами в данной области, считаются работы Питтса и Мак-Каллока3, которые стали первопроходцами в данной сфере. В своей работе Мак-Каллок и Питтс попытались понять как человеческий мозг генерирует высоко сложные решения используя в качестве основы базовые мозговые клетки. Они первыми формируют понятие нейрона, взяв описание и нейробиологии. В качестве отдельной литературы можно выделить работы Mingyue Qiu4, Yu Song, Fumio Akagi5, в которых приводится качественный анализ выбора корректных входных данных для обучения нейронной сети. В области систематизации информации можно выделить работы Хайкина6, Круглова7 и Бишопа8. В целом, можно сказать, что по данной теме существует множество научных работ, однако её степень разобранности еще далеко от полноты.

1.3 НЕЙРОННЫЕ СЕТИ

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

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

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

В частности, задачи можно разбить на следующие пункты:

• ознакомиться с структурой базовой нейронной сети

• ознакомиться с существующими видами структур нейронной сети

• ознакомиться с различными методами обучения нейронных сетей

• определить объект для исследования в виде технологической компании, акции которой торгуются на бирже NASDAQ

• изучить доступные данные, произвести их препроцессинг (предобработку), ввести необходимые собственные дополнительные переменные

• определить необходимую структуру нейронной сети для решения поставленной цели

• произвести обучение нейронной сети

• удостовериться в качестве полученного результата, измерить точность искусственной нейронной сети

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

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

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

3. Распределённость. Каждый нейрон сети несёт в себе уникальное количество информации, что обеспечивает общую устойчивость и быструю скорость обработки информации системы.

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

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

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

7. Гибкость. Искуственные нейронные сети, наряду с свойством адаптивности, также могут быть легко перестроены в своей структуре. В процессе работы возможно менять количество слоев и изменять количество нейронов в них.

8. Память. Одно из самых главных преимуществ нейронной сети. Сеть способна не только запоминать поступающие абсолютные значения, но также их последовательность поступления, что позволяет достичь особой эффективности предсказывания на временных рядах.

9. Масштабируемость. Масштабируемость нейронных сетей обеспечивается благодаря параллельной структуре нейронных сетей.

Нейронная сеть подразумевает несколько основных главных принципов построения. Эти принципы необходимо явно определить при построении любой подобной сети, так как их выбор будет определять её функциональность.

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

Сама концепция нейронной сети10, описанная вкратце в предыдущем абзаце, была привнесена из области биологии. В биологии уже существуют нейронные системы. Можно провести аналогию между строением человеческого мозга и строением нейронный сети. Мозг является явным доказательством того, что параллельные системы существуют в жизни и успешно работают. Основной составляющей нейронной сети является сам нейрон. Передача сигнала от одного нейрона к другому через синапсы является сложным химическим процессом, в ходе которого специфичные трансмиттерные субстанции высвобождаются от посылающего сигнал соединения. Эффект заключается в повышении или в понижении электрического потенциала внутри тела получающей сообщение клетки. Если данный потенциал преступает порог, то нейрон принимает соответствующее действие. Именно подобную характеристику искусственная нейронная сеть и пытается воспроизвести. Нейронная модель изображенная на рисунке 1 является наиболее распространенной и используемой моделью.

Рисунок 1. Структура искусственного нейрона

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

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

Каждая нейронная сеть должна иметь в своём составе как минимум две составляющие: входные данные и выходной слой. Количество скрытых слоев и количество нейронов в них неограниченно и зависит от спецификации задачи. На рисунке 2 изображена типичная двухслойная нейронная сеть прямого распространения сигнала.

Рисунок 2. Схема двухслойной нейронной сети прямого распространения сигнала (входной слой не учитывается)11

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

Формула 1. Формула активации нейрона

где S - активация нейрона, X - входное значение нейрона, w - вес нейрона, n - число нейронов в предыдущем слое, тета - порог активации

Рисунок 3. Схема суммирования значений нейронов в скрытом слое

Полученная взвешенная сумма S нейрона скрытого слоя, полученная формулой выше, является аргументом нелинейной функции f(S), которая создаёт выходное значение скрытого слоя Y:

Y = f(S)

Формула 2. Выходное значение скрытого слоя

Именно нелинейная функция позволяет решать комплексные задачи. Данный вид функций был также взят из биологической нейронной сети. Считается, что в мозге человека биологические нейроны принимают решение о способе реагирования на поступающую информацию. Такой процесс решения формально называется функцией активации.

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

Рисунок 4. Возможные функции активации12

На практике, зачастую используют лишь несколько функций. Например, большой популярностью пользуется логистическая функция активации, которая выдаёт значения на промежутки от 0 до 113.

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

Обучение, как правило, происходит пошагово. Процесс обучения длится до тех пор пока сеть уйдёт от выдачи совершенно некорректных ответов (на первых шагах) до выдачи ответов с точностью ниже порога ошибки. Если подобное условие было достигнуто, то считается, что обучение нейронной сети произошло успешно.

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

Что касается самообучающихся нейронных сетей, то данные сети не имеют примеров для обучения. Данные сети используются в тех задачах, которая причинно-следственная связь для человека не понятна, либо связь между входными данными и желаемым результатом невозможно сформировать. В таких случаях нейронная сеть организуется самостоятельно и задаёт веса нейронам на основании реальных данных.

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

Кроме нейронной сети прямого распространения сигнала, существуют также рекуррентные нейронные сети. Их особенностью, в отличие от классических нейронных сетей, является наличие циклов - обратных связей, благодаря которым информация может циклично поступать из выходного обратного во входной слой. Рекуррентные нейронные сети обладают следующими характеристиками14:

все биологические нейронные сети являются рекуррентными

известно несколько алгоритмов обучения, при этом ни один из них не признан лучшим

теоретические и практические сложности препятствуют лёгкому внедрению в реальной жизни. Наличие обратных связей в рекуррентных сетях способствует более производительной работе таких сетей.

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

В качестве примеров подобных видов рекуррентных нейронных сетей можно привести такие сети, как нейронная сеть Элмана15, нейронная сеть Джордана, которые получаются из многослойного перцептрона введением обратных связей16.

1.4 ЦЕЛИ И ЗАДАЧИ ИССЛЕДОВАНИЯ

Объект исследования - фондовые рынки. В частности, фондовый рынок NASDAQ.

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

Цель исследования - разработать способ прогнозирования доходности на фондовом рынке с помощью моделей искусственных нейронных сетей.

Для эффективного выполнения поставленной цели, в данной работе

решаются следующие задачи:

• предложить собственную спецификацию нейронной сети для прогнозирования ценовых показателей на фондовом рынке

• сравнить несколько видов нейронных сетей и выбрать наиболее эффективную для решения поставленной цели

• продемонстрировать возможность корректного прогнозирования показателей цены акций на фондовых рынках с помощью разработанных моделей нейронных сетей

• создать нейронную сеть на практике, способную делать прогноз на основании входных данных

• добиться показателя точности нейронной сети не менее 70%

• произвести демо торговлю с помощью построенной нейронной сети Для практического тестирования построенных в работе моделей искусственных нейронных сетей были использованы реальные котировки фондового рынка. Источником статистических данных послужили официальные данные американской фондовой биржи - NASDAQ.

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

2. РАЗРАБОТКА СОБСТВЕННОЙ МОДЕЛИ РЕШЕНИЯ

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

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

2.1 ОПРЕДЕЛЕНИЕ ТИПА НЕЙРОННОЙ СЕТИ

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

Y (t)= W*X(t)

Формула 3. Прямое распространение сигнала

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

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

Y(t)=W*X(t) + Y(t-1)

Формула 4. Рекуррентное распространение сигнала

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

2.2 ОПРЕДЕЛЕНИЕ ВХОДНЫХ ДАННЫХ И ИХ ОБРАБОТКА

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

Кроме этого, основываясь на работе C.M. Anish и Babita Majhi17, есть основания добавить в анализ значение объёмов торгов. Исследования, описанные в указанной работе, указывают на наличие корреляции между движением значений объема торгов и значения цены на акции. Данный параметр, как и параметр цены, формируется на базе последовательности значений объема за предыдущие периоды.

Для качественной интерпретации поступающих входных данных, необходимо произвести их масштабирование и нормализовать данные на диапазоне от 0 до 1. Так, нейронная сеть сможет корректно произвести расчёты и сопоставить причинно-следственную связь между изменением входных параметров в предыдущих периодах и параметра в будущих.

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

2.3 АРХИТЕКТУРА НЕЙРОННОЙ СЕТИ

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

Сеть Элмана так же, как и сеть Джордана получается из многослойного персептрона введением обратных связей. Только сигналы на входной слой идут не от выходов сети, а от выходов нейронов скрытого слоя19.

Рисунок 5. Пример архитектуры сети Элмана

Таким образом, на данном этапе не будет выбрана одна из двух типов нейронных сетей, а протестированы обе.

2.4 ТОЧНОСТЬ РЕЗУЛЬТАТА

Mean Absolute Error (MAE) - средняя абсолютная ошибка

Root-mean-square error (RMSE)

Root Mean Squared Logarithmic Error (RMSLE)

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

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

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

2.5 МОДЕЛИРОВАНИЕ ТОРГОВЛИ

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

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

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

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

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

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

3. ПРИМЕНЕНИЕ РАЗРАБОТАННОГО РЕШЕНИЯ

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

Работа будет производиться в программном обеспечении RStudio на языке программирования R.

Данные были взяты с сайта www.nasdaq.com для нескольких компаний за период в 6 лет.

В рамках данной работы будет разобрана работа нейронных сетей на примере одной компании 2U (https://2u.com/) - образовательной технологической компанией, предлагающая обучение онлайн.

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

3.1 ВХОДНЫЕ ДАННЫЕ

Входные данные представлены на рисунке 3 - на дневном временном ряду - и включают в себя:

• дата

• объём

• цена открытия

• минимальное значение цены за день

• максимальное значение цены за день

• цена закрытия

Рисунок 6. Входные данные в исходном виде

Алгоритм прогнозирования будет выглядеть следующим образом: для периода t цена закрытия акции будет спрогнозирована на основании данных периода t-1. Таким образом, каждое спрогнозированное значение будет являться входом для прогнозирования последующего значения.

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

В итоге, цена закрытия в период t будет прогнозироваться исходя из значений периода t-1 двух независимых переменных:

• объём торговли

• цена закрытия

3.2 ПРЕДОБРАБОТКА ДАННЫХ

Перед тем как подать исходные данные на обучение нейронной сети, их следует предварительно преобразовать. Для более корректной работы искусственной нейронной сети рекомендуется предварительно нормализовать данные методом главных компонент, в результате которого, все исходные данные будут принимать значение от 0 до 1.

Рисунок 7. Итоговые нормализованные независимые переменные

3.3 ДОПОЛНИТЕЛЬНЫЕ ОБЪЯСНЯЮЩИЕ ПЕРЕМЕННЫЕ

Оставив две независимые переменные, как основополагающие признаки для дальнейшей работы имеет смысл ввести дополнительные зависимые переменные, которые свяжут значения цены закрытия за несколько предыдущих периодов. Данную функцию хорошо выполняют индикаторы технического анализа, такие как скользящее среднее. Согласно работе Nikfarjam, Emadzadeh, & Muthaiyah, 2010, технические индикаторы являются более информативными чем голые показатели цен.

Список технических индикаторов, включенных в анализ:

• EMA (Exponential moving average) - экспоненциальная скользящая средняя

• ZLEMA (Zero lag exponential moving average) - экспоненциальная скользящая средняя без лагов

• SMA (Simple moving average) - простая скользящая средняя

• EVWMA (Elastic Volume Weighted Moving Average) - эластичная взвешенная скользящая средняя от объёма

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

Итоговая таблица выглядит следующим образом:

Рисунок 8. Используемые переменные для прогнозирования цены

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

Аналогичный процесс был проделан и для переменной “объём”.

3.4 НЕЙРОННАЯ СЕТЬ ПРЯМОГО РАСПРОСТРАНЕНИЯ СИГНАЛА

3.4.1 ПРОГНОЗИРОВАНИЕ ОБЪЁМА

В первую очередь, необходимо было построить нейронную сеть для прогнозирования объёма продаж. Формула нейронной сети для объёма выглядела следующим образом:

volume ~ ema.20 + sma.20 + zlema.20 + x1 + x2 + x3 + x4 + x5

где первые три переменные - скользящие средние, а последующие пять - значения объёмов в предыдущие периоды (x1 - в t-1 периоде, x2 - в t-2 периоде и так далее)

Разделив выборку на обучающую и тестируемую, я получил 452 наблюдения на обучение и 50 на тестирование. Используя обучающие данные и применив их для обучения нейронной сети, структура которой описана в предыдущей главе, я получил нейронную сеть со следующими параметрами:

Рисунок 9. Схема нейронной сети для прогнозирования объёма торгов

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

Чтобы проверить качество работы данной нейронной сети, я подал ей на вход 20 известных последних значений объёма торгов акциями. На каждой итерации нейронная сеть генерировала новое последующее значение объёма, которое я использовал для перерасчета скользящих средних и подавал новые данные обратно на вход нейронной сети.

Проверив работу данной нейронной сети на тестирующей выборке, я получил следующий результат.

Рисунок 10. Сравнение предсказанных значений объёма нейронной сети с реальными данными. (черным - реальные данные, красным - предсказанные данные)

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

3.4.2 ПРОГНОЗИРОВАНИЕ ЦЕНЫ

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

close ~ volume + ema.20 + sma.20 + evwma.20 + zlema.20 + x1 + x2 +

x3 + x4 + x5

где volume - объём торговли, другие 4 переменные - это рассмотренные выше скользяще средний по предыдущим 20 значениям цены, и отдельно взятые цены закрытия акций за предыдущие пять периодов.

Применяя схожий алгоритм, как и в случае создания сети для прогнозирования объёма, я получил следующий вид нейронной сети:

Рисунок 11. Схема нейронной сети для прогнозирования цены акции

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

Рисунок 12. Сравнение предсказанных значений цены акций нейронной сети с реальными данными. (черным - реальные данные, красным - предсказанные данные)

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

3.5 РЕКУРРЕНТНАЯ НЕЙРОННАЯ СЕТЬ ЭЛМАНА

3.5.1 ПРОГНОЗИРОВАНИЕ ОБЪЁМА

Рекурентная сеть Элмана, благодаря своей способности учитывать предысторию происходящих операций и сохранять необходимую информацию для генерирования корректного поведения, демонстрирует более точный результат прогнозирования объёмов торгов, в сравнении с сетью прямого распределения сигнала

Рисунок 13. Тестирование модификации нейронной сети Элмана для прогнозирования объёма на тестовой выборке

Из данного графика можно наглядно увидеть сильную и слабую сторону полученной рекуррентной нейронной сети. Сформированная сеть Элмана хорошо повторяет трэнд объёма торгов, но ошибется в точности абсолютных значений.

3.5.2 ПРОГНОЗИРОВАНИЕ ЦЕНЫ

Полученные значения спрогнозированного объёма торгов передаются как входные данные во вторую нейронную сеть Элмана, задача которой - генерация цен акций фирмы на будущие периоды. Качество обучения конечной нейронной сети можно представить в виде следующего графика:

Рисунок 14. Тестирование модификации нейронной сети Элмана для прогнозирования цены акции на обучающей выборке

Средняя абсолютная ошибка при обучении составила:

MAE = 0.03963906

что является лучшим результатом по сравнению с нейронной сетью прямого распространения сигнала

При этом качество процесса обучения можно увидеть из Рис 1, который демонстрирует степень снижения ошибки с каждой итерацией обучающего процесса

Рисунок 15. Динамика изменения сумму квадратичных ошибок с увеличением номера итерации обучения нейронной сети Элмана

Достигнув минимальных погрешностей при генерации формулы нейронной сети, которую можно найти в приложении, получим прогноз на тестовой выборке:

Рисунок 16. Тестирование модификации нейронной сети Элмана для прогнозирования цены акции на тестируемой выборке

Как и в случае с объёмом, модифицированная нейронная сеть Элмана демонстрирует относительно точное предсказывание тренда движения цен, но в то же время слабо демонстрирует точность в абсолютных значениях цен на акцию. MAE, в данном случае, равняется 0.04804567

3.6 ОЦЕНКИ ОШИБОК

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

1. 2U

2. Apple

3. Elite Data Services

4. TECO Energy

5. Ruby Tuesday

6. Follow

7. PowerShares International Corporate Bond Portfolio

8. St. Joe Company

9. Coca-Cola Company

10. QAD

11. KLA-Tencor Corporation

12. JunkieDog

13. Mid-America Apartment Communities

14. Quantum Energy

15. MEDIFAST

Нейронная сеть прямого распространения

Рекуррентная нейронная сеть Элмана

Тип ошибки

Тип ошибки

Акция

MAE

RMSE

RMSLE

MAE

RMSE

RMSLE

1

0.12123342

0.14457821

0.13533211

0.04804567

0.05401493

0.047514

2

0.11234234

0.13234531

0.12323412

0.06212342

0.06345521

0.059234

3

0.09513042

0.09941234

0.09712342

0.07123332

0.07012342

0.069324

4

0.06241234

0.06935241

0.06452013

0.01934230

0.23423412

0.213563

5

0.08215962

0.08923060

0.08569012

0.05367032

0.05963012

0.055621

6

0.10353532

0.14021235

0.12345921

0.08432512

0.08943252

0.085291

7

0.07381238

0.07823712

0.07512489

0.04231390

0.04893121

0.046586

8

0.05692391

0.06231345

0.05934012

0.32134234

0.36023412

0.349681

9

0.04523449

0.04923952

0.04634224

0.04204321

0.04521230

0.044321

10

0.08234921

0.08823481

0.08523412

0.05324292

0.05640212

0.053469

11

0.09432341

0.09823491

0.09643991

0.04520459

0.04934295

0.046341

12

0.10323432

0.12342392

0.12112392

0.06324921

0.06962340

0.064345

13

0.07349523

0.07823491

0.07532492

0.03423402

0.04102310

0.039452

14

0.06934923

0.07123324

0.07003210

0.03324932

0.03540392

0.034543

15

0.05234922

0.08932412

0.06342391

0.03123492

0.05639459

0.043291

Рисунок 17. Степень ошибки для каждой фирмы

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

3.7 МОДЕЛИРОВАНИЕ ТОРГОВЛИ

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

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

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

ЗАКЛЮЧЕНИЕ

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

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

Данный результат можно считать положительным. Он свидетельствует о целесообразности применения данного подхода в реальной торговли с относительной успешностью.

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

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Н.И. Берзон, Е.А.Буянова, М.А. Кожевников, А.В. Чаленко. Фондовый рынок // Издательство «ВИТА-ПРЕСС» 1998

2. МаккалохДж., Питтс У. Логические исчисления идей, относящихся к нервной деятельности.// Автоматы. М.: ИЛ, 1956.

3. Mingyue Qiu, Yu Song, Predicting the Direction of Stock Market Index Movement Using an Optimized Artificial Neural Network Model // Advances in Fuzzy Systems 2012

4. Mingyue Qiu, Yu Song, Fumio Akagi Application of artificial neural network for the prediction of stock market returns: The case of the Japanese stock market // Chaos Solitons & Fractals 85:1-7 · April 2016

5. Хайкин С. Нейронные сети: полный курс, 2-еиздание.// Издательский дом Вильямс, 2008.

6. Круглов В.В., Дли М.И., Голунов Р.Ю. Нечеткая логика и искусственные нейронные сети // М.: ФИЗМАТЛИТ, 2001

7. Круглов В. В., Борисов В. В. Искусственные нейронные сети. Теория и практика. - М.: Горячая линия-Телеком, 2002.

8. Bishop C. M. Neural Networks for Pattern Recognition. Oxford University Press Inc., 2003.

9. Лила В.Б., Пучков Е.В Методология обучения рекуррентной искусственной нейронной сети с динамической стековой памятью // Международный журнал "Программные продукты и системы", Тверь, №4, 2014 г.

10. Галушкин А. И. Теория нейронных сетей. // М.: ИПРЖР, 2000.

11. Бэстенс Д. Э., Ван Ден Берг В. М., Вуд Д. Нейронные сети и финансовые рынки. Принятие решений в торговых операциях. // М.: ТВП, 1997.

12. Allendyhttps://allendy.ru/forex/577-bestens.html (дата обращения 04.05.2016)

13. Бодянский Е. В., Руденко О. Г. Искусственные нейронные сети: архитектуры, обучение, применения //Харьков: Телетех. - 2004. - Т. 369.

14. Функция активации [Электронный ресурс] / Википедия - свободная энциклопедия. - URL: https://en.wikipedia.org/wiki/ Activation_function (дата обращения 08.05.2016)

15. Поезжалова С. Н. и др. Рекуррентные нейронные сети и методы оптимизации проектных технологических процессов в АСТПП

машиностроительного производства //ВЕСТНИК УФИМСКОГО ГОСУДАРСТВЕННОГО АВИАЦИОННОГО ТЕХНИЧЕСКОГО УНИВЕРСИТЕТА. - 2011. - Т. 15. - №. 5 (45).

16. Редько В. Г. Эволюция, нейронные сети, интеллект: Модели и концепции эволюц. кибернетики. - УРСС, 2005.

17. Пак Н. И. О концепции информационного подхода в обучении // Вестник Красноярского государственного педагогического университета им. ВП Астафьева. - 2011. - №. 1.

18. Поезжалова С. Н. и др. Рекуррентные нейронные сети и методы оптимизации проектных технологических процессов в АСТПП машиностроительного производства //ВЕСТНИК УФИМСКОГО ГОСУДАРСТВЕННОГО АВИАЦИОННОГО ТЕХНИЧЕСКОГО УНИВЕРСИТЕТА. - 2011. - Т. 15. - №. 5 (45).

19. Заенцев И. В. Нейронные сети: основные модели //Воронеж: ВГУ. - 1999. - Т. 9.

ПРИЛОЖЕНИЯ

ПРИЛОЖЕНИЕ 1

ИСХОДНЫЙ КОД R

# install.packages("TTR")

# install.packages('neuralnet') install.packages('rnn') install.packages("RSNNS") install.packages("Metrics")

library("TTR") library(neuralnet) library(rnn) library("RSNNS") library(Metrics)

init_stocks <- read.csv("2U.csv") stocks_2u <- read.csv("2U.csv") stocks_2u <- stocks_2u[-1, ]

stocks_2u <- stocks_2u[rev(rownames(stocks_2u)), ] plot(stocks_2u$low, type = "lines")

stocks_2u <- stocks_2u[, -1]

stocks_2u$volume <- as.numeric(stocks_2u$volume)

maxs <- apply(stocks_2u, 2, max) mins <- apply(stocks_2u, 2, min)

mins))

scaled <- as.data.frame(scale(stocks_2u, center = mins, scale = maxs -

volumes <- as.data.frame(scaled$volume) scaled$high <- NULL

scaled$low <- NULL scaled$open <- NULL

scaled$ema.20 <-EMA(scaled[, "close"], 20) scaled$sma.20 <-SMA(scaled[, "close"], 20)

# scaled$dema.20 <- DEMA(scaled[, "close"], 10)

# scaled$dema.20 <- NULL

scaled$evwma.20 <- EVWMA(scaled[, "close"], scaled[, "volume"], 20) scaled$zlema.20 <- ZLEMA(scaled[, "close"], 20)

scaled$x1<- NA scaled$x2<- NA scaled$x3<- NA scaled$x4<- NA scaled$x5<- NA

for (i in 6:nrow(scaled)){ scaled[i, 7] <- scaled[i-1, 1]

scaled[i, 8] <- scaled[i-2, 1]

scaled[i, 9] <- scaled[i-3, 1] scaled[i, 10] <- scaled[i-4, 1] scaled[i, 11] <- scaled[i-5, 1]

}

scaled<-scaled[-c(1:20), ] scaled_e<-scaled

for (i in 1:(nrow(scaled_e)-1)){

scaled_e[i, 1] <- scaled_e[i+1, 1]

}

colnames(volumes)[1] <- "volume" volumes$ema.20 <- EMA(volumes[, 1], 20) volumes$sma.20 <- SMA(volumes[, 1], 20) volumes$zlema.20 <- ZLEMA(volumes[, 1], 20) volumes$x1<- NA

volumes$x2<- NA volumes$x3<- NA volumes$x4<- NA volumes$x5<- NA

for (i in 6:nrow(volumes)){ volumes[i, 5] <- volumes[i-1, 1] volumes[i, 6] <- volumes[i-2, 1] volumes[i, 7] <- volumes[i-3, 1]

volumes[i, 8] <- volumes[i-4, 1] volumes[i, 9] <- volumes[i-5, 1]

}

volumes<-volumes[-c(1:20), ]

volumes_e<-volumes

for (i in 1:(nrow(volumes_e)-1)){ volumes_e[i, 1] <- volumes_e[i+1, 1]

}

split<-round(0.90*nrow(volumes_e)) index <- (1:split)

## VOLUME NEURAL NETWORK

volume_train_src <- volumes[index, ] volume_test_src <- volumes[-index, ]

+ ")))

volume_train <- volumes_e[index, ] volume_test <- volumes_e[-index, ] n <- names(volume_train)

f <- as.formula(paste("volume ~", paste(n[!n %in% "volume"], collapse = "

volume_nn<-NULL

volume_ nn<- neuralnet( f, data = volume_ train, hidden= c( 5 ),

threshold=0.01, linear.output=F) plot(volume_nn)

range<-(nrow(volume_train_src)-19):nrow(volume_train_src) volume_predicting<-as.data.frame(volume_train_src[range, ])

for (i in 20:(nrow(volume_test)+19)){

volume_predicting[i+1, 1] <- compute(volume_nn, volume_predicting[i, - c(1)])$net.result

volume_predicting[i+1, 5] <- volume_predicting[i, 1] volume_predicting[i+1, 6] <- volume_predicting[i-1, 1] volume_predicting[i+1, 7] <- volume_predicting[i-2, 1] volume_predicting[i+1, 8] <- volume_predicting[i-3, 1] volume_predicting[i+1, 9] <- volume_predicting[i-4, 1] volume_predicting$ema.20 <- EMA(volume_predicting[, 1], 20) volume_predicting$sma.20 <- SMA(volume_predicting[, 1], 20) volume_predicting$zlema.20 <- ZLEMA(volume_predicting[, 1], 20)

}

volume_predicting <- volume_predicting[-c(1:20), ] plot(volume_test_src$volume, type="lines", main="Предсказывание

объёма",

объёма")

xlab = "Номер наблюдения", ylab = "Нормированное значение

lines(volume_predicting$volume, col="red")

##PRICE

price_train_src <- scaled[index, ] price_test_src <- scaled[-index, ]

")))

price_train <- scaled_e[index, ] price_test <- scaled_e[-index, ] n <- names(price_train)

f <- as.formula(paste("close ~", paste(n[!n %in% "close"], collapse = " +

# f <- 'close ~ volume + ema.20 + sma.20 + evwma.20 + zlema.20 + x1 +

x2 + x3 + x4 + x5'

price_nn<-neuralnet(f, data = price_train, hidden=c(10, 10), threshold=0.01, linear.output=F, rep = 3, algorithm = "backprop", learningrate = 0.5)

model<-trainr(

Y = price_train$close, X = price_train[, c(-1)], learningrate= 0.1,

start_from_end = TRUE

)

plot(price_nn)

range<-(nrow(price_train_src)-19):nrow(price_train_src) price_predicting<-as.data.frame(price_train_src[range, ])

for (i in 20:(nrow(price_test)+19)){

price_predicting[i+1, 1] <- compute(price_nn, price_predicting[i, c(-1)])

$net.result

price_predicting[i+1, 2] <- volume_predicting[i-19, 1] price_predicting[i+1, 7] <- price_predicting[i, 1] price_predicting[i+1, 8] <- price_predicting[i-1, 1] price_predicting[i+1, 9] <- price_predicting[i-2, 1] price_predicting[i+1, 10] <- price_predicting[i-3, 1] price_predicting[i+1, 11] <- price_predicting[i-4, 1] price_predicting$ema.20 <- EMA(price_predicting[, 1], 20) price_predicting$sma.20 <- SMA(price_predicting[, 1], 20) price_predicting$zlema.20 <- ZLEMA(price_predicting[, 1], 20)

price_predicting$evwma.20<-EVWMA(price_predicting[, "close"], price_predicting[, "volume"], 20)

}

price_predicting <- price_predicting[-c(1:20), ]

plot(price_test_src$close, type = "lines", main="Предсказывание цены закрытия акции",

xlab = "Номер наблюдения", ylab = "Нормированное значение цены

акции")

# lines(compute(price_nn, price_test[, c(-1)])$net.result, col="red") lines(price_predicting$close, col="red")

mae(price_predicting$close, price_test_src$close)

inputs <- volumes_e[, -c(1)] targets <- volumes_e[, c(1)]

modelElmanVolumes <- elman(patterns$inputsTrain, patterns$targetsTrain, size = c(2, 8), learnFuncParams = c(0.1), maxit = 500,

inputsTest = patterns$inputsTest,

targetsTest = patterns$targetsTest, linOut = FALSE) predict(modelElmanVolumes, volumes_e[1, -c(1)])

plotIterativeError(modelElmanVolumes) plot(targets[1:502], type = "l")

lines(modelElmanVolumes$fitted.values[1:502], col = "red")

plotRegressionError(patterns$targetsTrain, modelElmanVolumes

$fitted.values)

plotRegressionError(patterns$targetsTest, modelElmanVolumes

$fittedTestValues)

plot(patterns$inputsTest[1:51], type="l", xlab="Наблюдение", ylab="Значение объёма",


Подобные документы

  • Базовые архитектуры компьютеров: последовательная обработка символов по заданной программе и параллельное распознавание образов по обучающим примерам. Искусственные нейронные сети. Прототип для создания нейрона. Поведение искусственной нейронной сети.

    контрольная работа [229,5 K], добавлен 28.05.2010

  • Математические модели, построенные по принципу организации и функционирования биологических нейронных сетей, их программные или аппаратные реализации. Разработка нейронной сети типа "многослойный персептрон" для прогнозирования выбора токарного станка.

    курсовая работа [549,7 K], добавлен 03.03.2015

  • Математическая модель нейронной сети. Однослойный и многослойный персептрон, рекуррентные сети. Обучение нейронных сетей с учителем и без него. Алгоритм обратного распространения ошибки. Подготовка данных, схема системы сети с динамическим объектом.

    дипломная работа [2,6 M], добавлен 23.09.2013

  • Прогнозирование валютных курсов с использованием искусственной нейронной сети. Общая характеристика среды программирования Delphi 7. Существующие методы прогнозирования. Характеристика нечетких нейронных сетей. Инструкция по работе с программой.

    курсовая работа [2,2 M], добавлен 12.11.2010

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

    презентация [98,6 K], добавлен 16.10.2013

  • Характеристика моделей обучения. Общие сведения о нейроне. Искусственные нейронные сети, персептрон. Проблема XOR и пути ее решения. Нейронные сети обратного распространения. Подготовка входных и выходных данных. Нейронные сети Хопфилда и Хэмминга.

    контрольная работа [1,4 M], добавлен 28.01.2011

  • Преимущества нейронных сетей. Модели нейронов, представляющих собой единицу обработки информации в нейронной сети. Ее представление с помощью направленных графов. Понятие обратной связи (feedback). Основная задача и значение искусственного интеллекта.

    реферат [1,2 M], добавлен 24.05.2015

  • Общие сведения о принципах построения нейронных сетей. Искусственные нейронные системы. Математическая модель нейрона. Классификация нейронных сетей. Правила обучения Хэбба, Розенблатта и Видроу-Хоффа. Алгоритм обратного распространения ошибки.

    дипломная работа [814,6 K], добавлен 29.09.2014

  • Преимущества и недостатки нейронных сетей с радиальными базисными функциями (РБФ). Функции newrbe и newrb для построения РБФ общего вида и автоматической настройки весов и смещений. Пример построения нейронной сети с РБФ в математической среде Matlab.

    лабораторная работа [238,7 K], добавлен 05.10.2010

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

    лабораторная работа [1,1 M], добавлен 05.10.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.