Фирма ТОРА-Центр
Новости
Конференция
Каталог программ
Литература
Прайс-лист
Демоверсии программ
Семинары и учебные курсы
Статьи и материалы
Ссылки на FOREX-страницы
Партнеры



Марксистская, 20
Тел:517-33-83
        726-67-78
E-mail:
am@inforus.biz
Пн - Пт, 9:30 - 18:00

Rambler's Top100



   Ñòàòüè ýêñïåðòîâ è ñîòðóäíèêîâ ôèðìû ÒÎÐÀ-Öåíòð   

Нейросети: работа над ошибками
Илья Остроухов, Павел Панфилов


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

 Нейросети в России
      В мире существует более сотни коммерческих нейросетевых программ, большинство из которых, однако, являются универсальными и "не заточены" под решение финансовых задач. Наш опыт применения нейросетевых программ на российском рынке показал, что внимания заслуживают только три нейропакета - Brain Maker, NeuroShell и NeuroScalp.
      BrainMaker - это программа, с которой началась история применения нейронных сетей в России. В этом пакете на профессиональном уровне реализована классическая многослойная нейронная сеть. Это единственная программа, в которой есть возможность настройки всех параметров нейронных сетей и алгоритмов обучения. В последнее время BrainMaker чаще всего используется не как самостоятельная программа, а как надстройка к программе TradeStation для анализа в режиме реального времени.
      NeuroShell, хотя и является универсальной программой, но благодаря тому, что она была первой русифицированной нейросетевой программой с удобным интерфейсом, завоевала широкое распространение на российском рынке. Для решения финансовых задач NeuroShell имеет модуль рыночных индикаторов, позволяющий использовать более 20 индикаторов теханализа при работе с нейросетью.
      Семейство программ NeuroScalp построено по модульному принципу. Базовым модулем является модуль классического теханализа, в который интегрируются дополнительные модули, реализующие различные методы анализа финансовых рынков. В настоящее время доступны следующие дополнительные модули:

       - NeuroScalp "Экспертный модуль, российский рынок акций" - модуль содержащий готовые нейросети для трех российских акций - РАО Газпром, РАО ЕЭС России, НК Лукойл.
       - NeuroScalp "Модуль Нейронных сетей" - эмулятор классических многослойных нейронных сетей с использованием генетических алгоритмов.
       - NeuroScalp "Модуль Карты Кохонена" - модуль реализующий карты Кохонена в приложении к финансовым рынкам.
       - NeuroScalp "Модуль Статистика" - модуль статистической обработки финансовой информации и анализа рынка.

      NeuroScalp имеет удобный интерфейс и реализует необходимое множество методов, требуемое для реализации различных идей пользователя. Поэтому в дальнейшем для иллюстрации примеров в данной статье используется именно этот нейропакет, демо версию которого можно найти в интернете по адресу http://www.tora-centre.ru/nscalp.
      Как любой новый инструмент анализа вначале нейросети обратили на себя пристальное внимание трейдеров и аналитиков в России, но мало кому удалось избежать типовых ошибок и "подводных камней".
      Целью данной статьи не является систематическое изложение методов работы с нейронными сетям. Последовательное и систематическое изложение можно найти либо в книгах, либо на наших семинарах, посвященных теории и практике нейронных сетей. Целью статьи является освещение типичных и наиболее часто встречающихся ошибок при работе с нейронными сетями. Мы надеемся, что это будет полезно как начинающим, так и опытным пользователям нейросетей.
      Далее последовательно рассматриваются все этапы жизни нейросети, от начала ее создания до практического применения. И на каждом из этих этапов проводится анализ типовых ошибок, и даются советы и рекомендации.

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

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

Что прогнозировать -абсолютные или относительные значения?
      Обычно в литературе приводится следующий пример. Предположим, мы прогнозируем цену акции с текущей стоимостью около $100 и средними дневными колебаниями $1.5. При этом натренируем две нейросети. У одной в качестве выхода будет абсолютная цена, а у другой ее изменение. После обучения первая сеть будет иметь точность 98%, вторая будет иметь худшую точность - 60%. Отсюда можно сделать ввод, что абсолютные значения прогнозируются лучше, чем относительные. Правильно? Нет, не правильно! Фокус в том, что точность 98% при стоимости $100 составляет $2, что больше чем средние дневные колебания акции! То есть прогноз отсутствует. А точность 60% о т изменения цены составляет $0.6 а это уже неплохой прогноз.
      Описав этот нехитрый фокус, авторы книг обычно делают вывод, что прогнозировать надо изменение цены, а не ее абсолютное значение и призывают прогнозировать изменения цен. Правильно ли это? Нет, не правильно! Наш опыт применения нейронных сетей показал, что существуют лучше прогнозируемые варианты выходов.

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

 Что подавать на вход
       Вторым и наиболее важным этапом является определение состава входов. Здесь типичной ошибкой, которая старательно культивировалась в прессе, является тезис "вали все в кучу, нейросеть сама разберется, что важно, а что нет". Действительно, нейросеть умеет отсеивать незначимые входы, но каждый "лишний" вход утяжеляет сеть, затрудняет обучение, а главное снижает качество прогноза. При большом числе "лишних" входов нейросеть чаще всего делает прогноз по типу "сегодня будет как вчера, завтра будет как сегодня", как проиллюстрировано на рисунке. Поэтому необходимо очень аккуратно подходить к добавлению новых входов.
      Вообще, на входы нейросетей можно подавать самую разнообразную информацию, как дискретную (различные события) так и непрерывную (цены, индексы, индикаторы). Состав входов обычно является наиболее "сокровенной" тайной разработчика нейросети и держится в секрете. Как показывает наш опыт, наиболее значимыми входами являются индикаторы технического анализа и различные фондовые индексы.
      Большой проблемой при определении состава входов является определение глубины "погружения" - размера временного окна, данные из которого подаются на вход нейросети. Сколько баров истории подавать на вход, чтобы качественно обучить нейросеть? Эта величина определяется только из собственного опыта и должна быть адекватной прогнозируемому периоду. Например, при дневных прогнозах разумная глубина погружения находится в пределах 5 - 20 дней.
      Необходимо отметить, что многие популярные нейропакеты имеют функцию определения чувствительности по входам, которая рекомендуется разработчиками пакетов, как универсальный способ отсеивания "лишних" входов. Хотя эта функция и является полезной при определении состава входов, но это не панацея и ее автоматическое использование может принести больше вреда, чем пользы. Это обусловлено тем, что проблема определения чувствительности по входам для многослойных нейронных сетей пока математически не решена, и решается различными эмпирическими способами и алгоритмами. Поэтому мы рекомендуем пользоваться этой функцией с осторожностью и результаты проверять другими косвенными методами, например статистическими.

 Архитектура нейросети и параметры обучения
       Выбор оптимальной архитектуры сети в настоящее время не имеет математического решения и производится на основании опыта и знаний. Здесь можно сказать только, что сеть должна иметь разумные размеры, а именно:
      - Максимальное число нейронов 30 - 40
      - Максимальное число скрытых слоев 3-4
      - Объем входных данных должен превышать в несколько раз количество нейронов
      Обычно начинающий пользователь считает, что большее число нейронов обеспечивает более качественное прогнозирование, и это является типичной ошибкой. Большой размер нейросети приводит к затруднению обучения (для сети с 50 входами и 20 нейронами это задача оптимизации в 1000-мерном пространстве), и попаданию сети в локальные, а не в глобальные минимумы функции ошибки. Также уменьшаются обобщающие свойства сети, сеть начинает просто запоминать обучающую выборку. Такая сеть будет отлично "прогнозировать" на обучающей выборке, но на новых данных прогноз будет плохим. Чтобы избежать эффекта запоминания объем данных должен быть достаточно большим. Например, для прогнозирования российских акций на день вперед минимальный рекомендуемы размер выборки - около 200-250 дней.

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

Обучение нейросети
      Процесс обучения, как правило, не вызывает проблем, только необходимо помнить, что обучение нейросети является длительным процессом, требующим мониторинга. При этом необходимо понимать, что обучение сопряжено с определенными трудностями, типа переобучения и попадания в локальные минимумы. Типичными способами ускорения обучения являются:
      - Использование нейроплат - нейроускорителей
      - Использование генетических алгоритмов
      - Использование модифицированных алгоритмов обучения, таких как пакетная обработка, использование вторых производных и т.д.
      Хочется отметить, что для обучения и подбора оптимальной архитектуры нейросети часто используются генетические алгоритмы. Генетические алгоритмы является самым известным на данный момент представителем класса эволюционных методов и по своей сути является алгоритмом для нахождения глобального экстремума произвольной функции. Генетические алгоритмы представляет собой самообучающаюся модель размножения живых организмов, с использованием механизмов естественного отбора. Здесь в ходу такие понятия как популяция, особь, наследование и мутация. Сначала алгоритм выдвигает возможные решения. Потом в каждом поколении подобно биологическим организмам "сильнейшие" решения "скрещиваются", порождая новые решения, а "слабые" погибают. Использование таких алгоритмов позволяет обучать большие нейросети обходя проблему локальных минимумов.

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

 Что требовать от нейросети
      
      И наконец самый интересный этап работы с нейросетью - оценка результатов.
      Если мы определяем направление движения цены, и если после обучения нейросеть указывает правильное направление в 60% случаев - это уже успех.
      На рисунке приведен прогноз минимальной и максимальной цены дня для обыкновенных акций НК Лукойл. Нейросеть натренирована специалистами ТОРА-Центр, которые использовали в своей работе многолетние наработки в этой области. Профессиональный трейдер мгновенно сможет оценить высокое качество прогноза и извлечь из этого прибыль.
      В общем случае вопрос о качестве прогноза сводится к допустимой средней ошибке и коэффициенту корреляции. В литературе часто проводится сравнение нейронных технологий и классических статистических методов. Было показано, что в большинстве случаев нейросеть дает более качественный результат, чем модели ARMA, ARIMA, TAR. При этом, проводить сравнение нейронных методов и технического анализа достаточно сложно. Нейросети способны работать с противоречивыми и неполными данными, пытаясь дать точные прогнозы цен и индикаторов на определенный интервал времени. Теханализ же просто интерпретирует текущее состояние цен и индикаторов в соответствие с некоторыми априорными моделями.

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

   Перейти на главную страницу   

Copyright © 1993-2006 ТОРА-Центр. Тел: 517-33-83, 726-67-78 Марксистская ул., д.20