Нейросетевые методы анализа и прогнозирования финансовых рынков

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

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

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

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

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

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

Введение

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

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

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

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

Применение искусственных нейронных сетей непосредственно для финансово-биржевого анализа подробно освещено в базовых для данного исследования работах Головочева С. [8, 9] и Ежова А., Шумского С. [14]. Используя все вышеуказанные работы в качестве методологической основы, было проведено собственное исследование эффективности применения искусственных нейронных сетей и методов предварительной обработки данных для прогнозирования направления динамики изменения финансово-временных

В соответствии с целью исследования, ставятся и решаются следующие задачи:

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

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

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

- анализ методов первичной обработки финансово-временных данных для формирования эмпирической базы.

- выбор метода предварительной обработки данных для повышения статистической значимости и качества «входов» нейронной сети.

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

- реализация вышеуказанного при помощи изученного инструментария (язык программирования C#, Visual Studio 2015) для анализа эффективности предложенного метода.

- анализ эффективности прогнозирования реализованной модели искусственной нейронной сети. Выявление зависимости (или установление ее отсутствия) между объектами анализа и величиной качества предсказания. Выбор «лучшей» архитектуры сети для каждого из исследуемых финансово-биржевых инструментов.

В качестве анализируемых финансово-биржевых инструментов, выбраны акции, эмитированные российскими компаниями из различных секторов экономики и входящие в индекс РТС. В работе использовались реальные данные о котировках акций, предоставляемые брокерской компанией «Финам» (www.finam.ru). Временные рамки исследования:

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

· 01.12.2017 - 20.12.2017 гг. - котировки из этого интервала подавались на вход сети в качестве тестовой выборки.

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

1. Нейросетевые методы анализа фондового рынка

нейронный фондовый спрос

1.1 Актуальность

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

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

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

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

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

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

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

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

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

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

1.2 Методологическая основа

Предпосылки.

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

Рисунок 1 - Нейрон

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

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

Теория сложных самоорганизующихся систем опирается на понимание принципов «поведения» динамических систем. Анализ меняющихся с течением времени систем часто сводится к поиску, так называемого, стационарного положения, которое, в свою очередь, может быть интерпретировано в рамках линейных законов как смена вероятностного состояния с увеличением энтропии (увеличение неопределенности траектории движения системы).

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

Активные исследования искусственных нейронных сетей, как подкласса самоорганизующихся сложных динамических систем, начались в середине двадцатого века. Фундамент дальнейших научных поисков был заложен в знаменитой работе У. МакКаллока и У. Питтса [18], в которой впервые была формально описана модель искусственной нейронной сети. Работа Хебба[44] послужила теоретической основой для обоснования возможности имитационного моделирования процессов головного мозга на основе искусственных нейронных сетей. Ну и, конечно же, знаменитая работа Розенблатта [27], в которой ученый описал базовую (и на сегодняшний день) архитектуру нейросети.

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

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

В своей знаменитой работе «Эффективность рынков капитала» американский ученый Юджин Фама выдвинул гипотезу об информационной эффективности рынков (выделяя при этом три степени информационной эффективности). Суть данной гипотезы заключается в абсолютной «справедливости» биржевых котировок, вследствие того, что механизмы ценообразования способны получать информацию обо всех экономико-факторных изменениях (как внутренних, так и внешних для системы) и мгновенно реагировать на них. Другими словами, инвестиционный анализ фондовых рынков является «игрой с нулевой средней». Парадоксальность ситуации заключается в том, что, получим за свой труд Нобелевскую премию, Ю. Фамы разделил (премия была вручена сразу трем экономистам) ее с другим ученым Робертом Шиллером, занимающим противоположную сторону.

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

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

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

Более глубокий анализ структуры конкретных рынков и, соответственно, механизмов ценообразования на них также опровергает теорию «эффективного рынка» с той точки зрения, что доходности не подчиняются нормальному распределению. Колебания на рынке не могут рассматриваться как «белый шум», а представляют собой комбинацию случайных сепарабельных процессов и строгих детерминистских концепций[8, 9, 25]. В подтверждение этому, Р. Шиллер в своей работе определил наличие сильных выбросов на финансовых рынках, а также предсказал и описал так называемый «пузырь» (возникновение кризисной ситуации, что по своей сущности противоречит модели абсолютной эффективности фондового рынка), который сформировался на рынке ипотечного кредитования. Основываясь на данных эмпирических опровержениях, можно сделать вывод, что механизмы функционирования фондового рынка не могут быть описаны в рамках законов нормального распределения, а, напротив, подчиняются степенным законам. Данный вывод дает возможность охарактеризовать систему фондового рынка как сложную самоорганизующуюся динамическую систему.

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

Основные характеристика нейронных сетей как инструмента для решения задач прогнозирования на финансовом рынке.

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

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

Адаптивность. Любая нейронная сеть умеет адаптироваться в «новой среде», подстраиваясь под изменения при помощи настройки синаптических весов между нейронами. Данное свойство дает возможность использовать системы, базирующиеся на нейросетях, в нейстационарных, то есть динамических, средах. Данное исследование основывается на отвержении гипотезы (0) о том, что рынок является информационно-эффективным. Следовательно, для анализа фондового рынка, сложной самоорганизующейся динамической системы, адаптивность искусственных нейронных сетей является первоочередным.

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

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

Принципы построения искусственных нейронных сетей прямого распространения.

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

Рисунок 2 - Многослойная нейронная сеть прямого распространения

Данное понятие, архитектура сети, не может рассматриваться вне разреза используемых алгоритмов обучения. Многослойная сеть прямого распространения в качестве алгоритма обучения использует «алгоритм обратного распространения ошибки». То есть, для сетей такого типа характерна прямая передача сигналов между слоями - от входного к первому скрытому, от первого скрытого ко второму и так далее - и обратная передача значений ошибки сети. На рисунке 3 представлена сеть с одним скрытым слоем и показано, каким образом происходит распространение ошибки:

Рисунок 3 - Нейронная сеть с одним скрытым слоем: ;;

Также следует отметить, что нейроны скрытых слоев, а также выходные нейроны для сетей прямого распространения являются сумматорами «силы» потоков из предыдущего слоя. Под «силой» потока понимается степень влияния связанного нейрона, от которого поступает сигнал, на данный. Формальное определение функциональности нейрона описывается следующим образом (и проиллюстрировано на Рис. 4):

(1)

где n - число входов нейрона; - значение i-го входа нейрона; - вес i-го синапса.

Рисунок 4 - Определение функциональности нейрона

Как видно из рисунка 4, для построения полноценной сети также требуется выбрать функцию активации нейрона f(u). Существуют несколько видов функций, которые широко применяются при построении сетей прямого распространения. Простейшей такой функцией является пороговая функция, которая принимает значение 1, активно, когда сумма входных сигналов для нейрона превышает заданный порог, и 0, неактивно, в противном случае. Но подобного рода функцию невозможно применять, в качестве активационной для нейрона, при обучении сети при помощи алгоритма «обратного распространения ошибки» (которой рассматривается в качестве основного для данной работы), так как она не является дифференцируемой. Ниже приведены функции, удовлетворяющие требованиям дифференциации, и, соответственно, могут применяться при построении искусственной нейронной сети прямого распространения с алгоритмом обучения, основанном на обратном распространении ошибки (подробно о выборе функции активации для рассматриваемой в работе модели см. Глава 2):

Экспоненциальная функция:

(2)

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

Логистическая:

(3)

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

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

Гиперболический тангенс:

(4)

Главным отличием данной функции от логистической является смещенная область значений. Область значений гиперболического тангенса - (-1; 1), логистической функции - (0; 1).

2. Построение нейросетевой модели

В данной главе рассмотрены все этапы построения конкретной нейросетевой модели для анализа и прогнозирования цен на акции эмитентов, входящих в индекс РТС.

Построение модели искусственной нейронной сети, в разрезе поставленной задачи, включает следующие этапы:

1. Выбор эмпирической базы для исследования. Применительно к данной задаче:

1.1 Выбор временного интервала для данных, который сформируют обучающую выборку для нейронной сети

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

1.3 Определение «частоты» данных о котировках (тики, минутные бары, дневные котировки и тд.)

1.4 Определение набора инструментов, которое будут объектом анализа искусственной нейронной сети

1.5 Поиск релевантных данных в соответствии с пунктами 1-3.

2. Формирование начальных входных данных для модели. Обработка данных из сформированной «базы данных» для подачи на вход нейронной сети.

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

4. Преддоработка нормированных данных - дополнительный анализ используемых «входов» и попытка исключить очевидные тривиальные закономерности для более эффективной последующей работы сети.

5. Обучение различных, с точки зрения архитектуры или функциональных характеристик (количество слоев, количество нейронов в каждом из них, функция активации и тд.), сетей

6. Анализ эффективности обученных сетей на основе тестовых адаптивных предсказаний

2.1 Модель нейронной сети

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

Рисунок 5 - Сеть одного или нескольких скрытых слоев и одного выходного слоя

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

Гипотеза 1: Модель искусственной нейронной сети многослонный перцептрон способна решать задачи анализа и прогнозирования финансовых временных рядов.

Модель искусственной нейронной сети многослойный перцептрон с алгоритмом обучения «алгоритм обратного распространения ошибки» является практическим механизмом реализации нелинейного отображения входных данных в выходные. То есть отношение множеств «входные данные - выходные данные» определяет отображение - мерного Евклидова пространства в - мерное (где - количество нейронов во входном слое; - количество нейроном в выходном слое). В случае, если функция активации является непрерывно дифференцируемой (в данной работе, как уже было сказано, пороговая функция активации использоваться не будет), данное отображение является также непрерывно дифференцируемым бесконечное число раз. Таким образом, гипотеза 1 вырождается в новую гипотезу:

Гипотеза 2: Модель искусственной нейронной сети многослойный перцептрон с любым количеством скрытых слоев обеспечивает аппроксимацию непрерывного отображения «вход - выход».

Согласно теореме об универсальности аппроксимации [36], для любой ограниченной, не постоянной монотонно возрастающей непрерывной функции существует такое число из многомерного единичного куба и такой набор действительных чисел, которые функционально определяют аппроксимацию данной функции для любого Данная теорема может применяться к модели многослойного перцептрона, при условии, что функция активации (из списка функций, описанных в Главе 1) не является пороговой (экспоненциальная, логистическая функция и функция гиперболического тангенса удовлетворяют всем условиям, накладываемым на функцию теоремой). Таким образом, на основе теоремы об универсальности аппроксимации, можно утверждать, что один скрытый слой в модели искусственной нейронной сети многослойный перцептрон достаточен для построения равномерной аппроксимации «вход - выход» для любого обучающего множества с точностью . Гипотеза 2, и как следствие гипотеза 1, - принимаются.

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

2.2 Данные

Источник и формат входных данных.

В качестве объектов нейросетевого анализа были выбраны следующие акции, входящие в индекс РТС:

· Сбербанк.

· ВТБ.

· Башнефть.

· Роснефть.

Для обучения и тестирования нейронной сети использовались данные котировок, предоставляемые брокерской компанией АО «Инвестиционный холдинг ФИНАмМ».

Рисунок 6 - Интерфейс экспорта котировок

Данные сохранялись в формате .csv. Для обработки данных из экспортированного файла и формирования начальных входных данных для нейронной сети был реализован специальный модуль по взаимодействию с Excel-файлами (.csv - расширение файлов, предназначенный для импорта/экспорта табличных данных; файл данного формата может обрабатываться как стандартный Excel-файл с расширением .xls/.xlsx). Пример экспортированных данных, на основе которых формируются входные данные для нейронной сети см. Приложение А.

Нормирование начальных входных данных.

Экспортированные данные включают следующие значения:

1. Цена открытия - цена финансового инструмента на момент заключения первой сделки в выбранном временном интервале (тики, 5мин, час и т.д.).

2. Цена закрытия - цена финансового инструмента на момент заключения последней сделки.

3. Максимальная цена.

4. Минимальная цена.

5. Объем торгов.

В рамках данной работы будут использованы значения цен закрытия. Но, как уже обсуждалось ранее, будут использоваться не абсолютные значения цен закрытия, а изменения котировок в качестве входов - и, соответственно, формат выходов является таким же - нейронной сети. Данный шаг, нормирование данных, позволит, во-первых, сформировать универсальный, в рамках данной задачи, инструмент и, во-вторых, повысить эффективность адаптивных предсказаний сети, за счет существенного снижения корреляции между последовательными значениями котировок. Пренебрежение данным шагом может привести к ситуации (наиболее характерно для коротких временных интервалов), когда адаптивное предсказание нейронной сети будет «сваливаться» в значение предыдущего курса, за счет сильной корреляции:

(5)

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

(6)

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

Преддоработка входных данных при помощи метода главных компонент.

Следующем шагом построения искусственной нейронной сети для решения задач анализа и прогнозирования финансовых временных рядов является, так называемая, «преддоработка» входных данных. Данный вопрос актуален для всех моделей поддержки принятия решений. Дополнительная предварительная обработка входных данных важна с той точки зрения, что технический анализ подразумевает работу с большими массивами данных в условиях ограниченной (по времени, затратам и тд.) вычислительной мощности. И здесь технические финансовые аналитики сталкиваются с практической проблемой. С одной стороны, постоянно возрастающая взаимосвязь между экономическими процессами в условиях глобализации обязывает придерживаться максималистской позиции по отношению к полноте, и, как следствие, объему, имеющейся информации. Это продиктовано «эффектом бабочки» - свойством динамических систем, к коим, безусловно, относится мировой финансовый рынок, когда любая малозначительная информация или некоторое несущественное событие способны оказать влияние, непредсказуемое по силе, на всю систему в целом. С другой стороны, объемы доступной информации растут возрастающими темпами. Негативным следствием этого является увеличение степени зашумленности данных. То есть, многие из имеющихся данных - нерелевантны. В данной работе, при помощи предварительной обработки входной информации методом главных компонент, была проделана попытка выделения релевантных для исследования данных с максимальной степенью сохранения полноты.

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

(7)

По сути, метод главных компонент является аппроксимацией данных линейными многообразиями меньшей размерности. Данный метод часто применяется для снижения размерности входных массивов данных финансово-экономических временных рядов, так как, в рамках метода, это решается относительно просто: собственные векторы ковариационной матрицы (оси), проранжированные в соответствии с собственными векторами, определяют дисперсию значений вектора X вдоль осей. Спроецировав входной эмпирический вектор данных X на некоторые главные компоненты (оси), можно существенно сократить размерность и выделить релевантную информацию. Реализация данного метода описана в главе 3.

Формирование обучающей выборки при помощи «метода скользящего окна».

Следующим этапом предварительной обработки данных является задача формирования обучающей выборки для нейронной сети. В данной работе будет использоваться «метод скользящих окон», который способен обеспечить обучение сети на «актуальной» информации. Под актуальностью, в данном случае, понимается множество таких пар «вход-выход», в которых выходные данные (target output) являются прямым следствием (нелинейным отображением) входных (input). Суть метода заключается в определении двух окон: входного и выходного. Входное или обучающее окно () является вектором значений цен (в рамках данного исследования - нормированных и предварительно обработанных при помощи метода главных компонент) начального эмпирического множества с фиксированной размерностью, которая определяется в начале процесса обучения сети и остается неизменной на всем его протяжении. Данный вектор, как следует из названия, подается на вход многослойному перцептрону. Выходной вектор () - следующее по отношению к «правой границе» входного окна значение временного ряда. Значение подается на выход в качестве целевого для данного обучающего окна. Каждый последующий элемент обучающей выборки () получается путем смещения окон на один шаг вперед по временной шкале.

Рисунок 8 - Иллюстрация алгоритма формирования «окон»

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

2.3 Архитектура сети

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

Ниже приведен поэтапный процесс обучения многослойного перцептрона с обратным распространением ошибки:

- инициализация - случайным образом определяются начальные синаптические веса и смещения сети из множества действительных значений в промежутке [0;1].

- формирование обучающей выборки на основе вышеописанных методов.

- вычисление выходного сигнала сети - взвешенная сумма сигналов выходного слоя (традиционная схема функционирования многослойных сетей прямого распространения).

- вычисление ошибки и настройка весов сети. Подстройка весов производится в соответствии с формулой:

(8)

где (t) - вес синапса, соединяющего нейрон i и j в момент времени t,

- значение выхода нейрона i,

r - скорость обучения,

- значение ошибки для нейрона j

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

В традиционных моделях многослойного перцептрона значение ошибки вычисляется как разница между целевыми значениями выходов сети (target output) и фактическими. Данный подход фокусируется на «разбросе» выходных сигналов и попытке его минимизировать. Но при анализе финансовых временных рядов не столь важна реальная близость предсказаний по абсолютному значению, сколь необходима однонаправленность прогноза. С целью минимизации ошибки, связанной с неверным прогнозированием направления динамики изменения цен на финансовые активы, в качестве функции ошибки использовалась:

(9)

где и - желаемый и текущий выходы нейрона j.

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

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

Логистическая функция:

(10)

И функция гиперболического тангенса

(11)

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

(12)

где T - порог нейрона.

Таким образом, подводя итоги главы, общая схема реализуемого проекта выглядит следующим образом(см. Приложение Б).

3. Реализация системы для анализа эффективности работы искусственной нейронной сети

3.1 Реализация

Реализация системы для анализа эффективности работы искусственной нейронной сети многослойны перцептрон при решении задачи прогнозирования финансовых временных рядов была выполнена на языке программирования C# в Visual Studio 2015 [12].

Система состоит из трех проектов:

· Data Preparation - проект, в котором реализованы методы предварительной обработки данных: обработка Excel - файла исходного эмпирического массива данных, нормирование начальных входных данных, преддоработка при помощи метода главных компонент и формирование обучающей выборки.

· Multilayer Perceptron - реализация архитектуры многослойного перцептрона.

· Multilayer Perceptrons Training Console Application - проект (консольное приложение), в котором реализован процесс обучения и расчет показателя точности предсказания нейросети. Следует напомнить сделанный во второй главе вывод, что для данного класса задач более важным является верно определенное направление изменения динамики цены, нежели близость прогноза к целевому по абсолютному значению. И именно поэтому, в качестве оценки эффективности нейросетевого прогнозирования использовался процент верно предсказанного направления (рост/снижение) движения котировок.

Общая структура системы (классовое представление) представлена в Приложение В.

Далее более подробно рассматривается реализация каждого подпроцесса в хронологическом порядке общего процесса обучения перцептрона.

Реализация класса для работы с Excel - файлами.

Методы обработки Excel - файла реализованы в проекте DataPreparation (Namespace: DataPreparation.Excel). Используемые библиотеки: DocumentFormat.OpenXml.Packaging, DocumentFormat.OpenXml.Spreadsheet. Данный модуль открывает Excel-файл с информацией о котировках биржевого инструмента, обрабатывает его и подает данные на вход модулю DataPreparation. Код реализации на языке C# с комментариями приведен в приложении Г.

Реализация метода главных компонент.

Реализация предварительной обработки методом главных компонент выполнена с использованием библиотеки Accord (Namespace Accord.Statistics.Analysis).

[SerializableAttribute]

public class PrincipalComponentAnalysis : IProjectionAnalysis, IMultivariateAnalysis, IAnalysis

// Инициализация класса метода главных компонент

var pca = new PrincipalComponentAnalysis(inputDataMatrix, AnalysisMethod.Center);

pca.Compute();

// Выделение компонент с величиной сжатия (1 - p)%

double [,] components = pca.Transform(inputDataMatrix, p, true);

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

Класс синапсов (связей).

Данный объект искусственной нейронной сети реализован в классе Namespace MultilayerPerceptron.Synapse[12, 42, 46]. Свойства:

· InputNeuron - объект класса Neuron, являющийся началом данной синаптической связи

· OutputNeuron - объект класса Neuron из следующего, по отношению к InputNeuron, слоя и соединяющийся с ним (InputNeuron) при помощи данной синаптической связи

· Weight - вес связи, отражающий чувствительность OutputNeuron к сигналу от InputNeuron

· WeightDelta - величина корректировка веса связи

Конструктор:

public Synapse(Neuron inputNeuron, Neuron outputNeuron)

{

InputNeuron = inputNeuron;

OutputNeuron = outputNeuron;

Weight = NeuralNetwork.NextRandom();

}

Класс нейронов.

В системе реализован класс нейронов (Namespace MultilayerPerceptron.Neuron) со следующими свойствами:

· Inputs - список входных синапсов данного нейрона.

· Outputs - список выходных синапсов.

· Bias - смещение, сдвиг за счет дополнительного сигнала из вне.

· BiasDelta - величина изменения сдвига нейрона.

· Value - значение нейрона на выходе.

· Gradient - «шаг» настройки синаптических весов при обратном распространении ошибки.

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

public Neuron()

{

Inputs = new List<Synapse>();

Outputs = new List<Synapse>();

Bias = NeuralNetwork.NextRandom() / 100;

}

public Neuron(List<Neuron> inputLayer) : this()

{

foreach (Neuron neuron in inputLayer)

{

Synapse synapse = new Synapse(neuron, this);

neuron.Outputs.Add(synapse);

Inputs.Add(synapse);

}

}

Метод, рассчитывающий выход нейрона, основывается на вычислении значения логистической функции (1) или функции гиперболического тангенса (2) в точке:

public virtual double Value()

{

Value = NeuralNetwork.TgFunction(Inputs.Sum(synapse => synapse.Weight * synapse.InputNeuron.Value) - Bias);

// или Value = NeuralNetwork.LogisticFunction(InputSynapses.Sum(synapse => synapse.Weight * synapse.InputNeuron.Value) - Bias);

return Value;

}

Метод вычисления ошибки (обоснование выбора данного расчета приведено в главе 2):

public double Error(double target)

{

return - Math.Log(1 + target * Value);

}

Метод корректировки синаптических весов для выходного и всех скрытых слоев:

public void AdjustWeights(double learningRate, double moment)

{

double oldBiasDelta = BiasDelta;

BiasDelta = learningRate * Gradient;

Bias += BiasDelta + moment * oldBiasDelta;

foreach (Synapse synapse in Inputs)

{

synapse.WeightDelta = learningRate * Gradient * synapse.InputNeuron.Value;

synapse.Weight += synapse.WeightDelta;

}

}

Класс, описывающий нейронной сеть.

Namespace MultilayerPerceptron.NeuralNetwork. Свойства класса:

· LearningRate - скорость обучения, действительное число.

· Moment - момент, параметр, отражающий степень влияния величины ошибки на изменение синаптических весов в процессе «эволюции» сети, действительное число.

· InputLayer - нейроны входного слоя, список объектов класса Neuron.

· OutputLayer - нейроны выходного слоя, список объектов класса Neuron.

· FirstHiddenLayer, SecondHiddenLayer и тд - нейроны скрытых слоев, список объектов класса Neuron.

Конструктор:

public NeuralNetwork(int inputSize,

int firstHiddenSize,

int secondHiddenSize,

...

int outputSize)

{

LearningRate = /*double*/;

Moment = /*double*/;

InputLayer = new List<Neuron>();

FirstHiddenLayer = new List<Neuron>();

SecondHiddenLayer = new List<Neuron>();

ThirdHiddenLayer = new List<Neuron>();

OutputLayer = new List<Neuron>();

for (int i = 0; i < inputSize; i++)

InputLayer.Add(new Neuron());

for (int i = 0; i < firstHiddenSize; i++)

FirstHiddenLayer.Add(new Neuron(InputLayer));

for (int i = 0; i < secondHiddenSize; i++)

SecondHiddenLayer.Add(new Neuron(FirstHiddenLayer));

...

for (int i = 0; i < outputSize; i++)

OutputLayer.Add(new Neuron(ThirdHiddenLayer));

}

Метод прямого распространения сигнала (без обратного распространения ошибки):

public void Train(List<double> inputs)

{

int element = 0;

InputLayer.ForEach(neuron => neuron.Value = inputs[element++]);

FirstHiddenLayer.ForEach(neuron => neuron.Value());

SecondHiddenLayer.ForEach(neuron => neuron.Value());

...

OutputLayer.ForEach(neuron => neuron.Value());

}

Метод обратного распространения ошибки:

public void BackPropagate(double target)

{

OutputLayer.ForEach(neuron => neuron.Gradient(target));

ThirdHiddenLayer.ForEach(neuron => neuron.Gradient());

SecondHiddenLayer.ForEach(neuron => neuron.Gradient());

FirstHiddenLayer.ForEach(neuron => neuron.Gradient());

OutputLayer.ForEach(neuron => neuron.AdjustWeights(LearningRate, Moment));

ThirdHiddenLayer.ForEach(neuron => neuron.AdjustWeights(LearningRate, Moment));

SecondHiddenLayer.ForEach(neuron => neuron.AdjustWeights(LearningRate, Moment));

FirstHiddenLayer.ForEach(neuron => neuron.AdjustWeights(LearningRate, Moment));

}

Методы вычисление функций активаций нейрона (функция гиперболического тангенса и логистическая соответственно):

public static double TgFunction(double x)

{

return (Math.Exp(x) - Math.Exp(-x)) / (Math.Exp(x) + Math.Exp(-x));

}

public static double LogisticFunction(double x)

{

return 1 / (1 + Math.Exp(-x));

}

3.2 Результаты и исследование эффективности

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

В работе, в качестве входного эмпирического массива данных, использовались котировки акций, включенных в индекс РТС (здесь и далее в качестве обучающей и тестовой выборки использовались котировки биржевых активов в период с 01.01.2017 по 01.12.2017 и с 01.12.2017 по 20.12.2017соответственно). Две ценные бумаги, эмитированные компаниями банковского сектора - Сбербанк и ВТБ - и два биржевых инструмента, представляющие нефтегазовую отрасль - Башнефть и Роснефть. Данный выбор обусловлен желанием не только провести анализ эффективности использования нейронных сетей для прогнозирования цен конкретных инструментов, но и попыткой обобщить полученные данные для отрасли, сектора экономики.

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

...

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

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