|
Новости
00:00
23:48
Видео
Блоги
Комментариев: 343
Шепот котировок
10:08
09:58
09:44
09:27
10:17
|
Нейросети: работа над ошибкамиНейронные сети активно применяются в задачах финансового анализа уже более 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. При этом проводить сравнение нейронных методов и технического анализа достаточно сложно. Нейросети способны работать с противоречивыми и неполными данными, пытаясь дать точные прогнозы цен и индикаторов на определенный интервал времени. Теханализ же просто интерпретирует текущее состояние цен и индикаторов в соответствии с некоторыми априорными моделями. Нейросеть - оружие профессионалаГлавная ценность нейронных технологий состоит в том, что они позволяют прогнозировать будущее. Однако нейросети - это не волшебная палочка, и думать все равно нужно, потому что качество прогнозов определяется, прежде всего, уровнем профессионализма пользователя. Учитесь, думайте, зарабатывайте! История развития нейросетейИдея обработки информации по образу устройства нервной системы (головного мозга) возникла более 50 лет назад. В 1943 году американские ученые Маккалох и Питтс сформулировали основные положения теории деятельности головного мозга и разработали математическую модель нейрона. Согласно их теории, мозг рассматривался как совокупность простых элементов - нейронов, связанных единой структурой. В 1958 г. Розенблатт реализовал эти принципы в электронном устройстве "Марк-1", способном распознавать печатные буквы и обучаться на примерах. Этой работой заинтересовались военные, что дало мощный импульс развитию нейронных сетей. Однако вскоре было замечено, что существующие алгоритмы обучения несут с собой ряд существенных ограничений и не позволяют достаточно точно решать многие практические задачи (например, задача исключающего ИЛИ). В 1969 г. было доказано, что такие ограничения возможностей нейронных сетей непреодолимы. Это привело к потере интереса к исследованию в области нейронных сетей почти на 20 лет.
И лишь в начале 80-х годов, благодаря работам Хопфилда и Хехт-Нил-сена, интерес к нейронным сетям возобновился, и наработки в этой области стали внедряться в практику. В середине 80-х годов был найден универсальный алгоритм обучения нейросетей, который известен как метод обратного распространения (в зарубежной литературе обозначается Back Propagation of Error или, сокращенно, backprop). Первым, кто сформулировал основные принципы этого алгоритма, были американские математики Румельхарт, Хинтон и Вильямс (1986). Основная идея этого алгоритма состоит в том, что выход последнего слоя нейронов сравнивается с образцом обучения, и из разницы между желаемым и действительным делается вывод о том, каковы должны быть связи нейронов последнего слоя с предыдущим. Затем подобная операция производится с нейронами предпоследнего слоя. В итоге по нейро-сети от выхода к входу бежит волна изменения весов связей. Именно за это метод и был назван обратным распространением. Настройка нейронной сети состоит в обучении, т.е. в подаче на её вход образцов того ряда значений, который породила изучаемая система. После знакомства с серией таких образцов внутренние параметры ней-росети изменяются таким образом, что её выходные данные начинают походить на выход самой изучаемой системы. Так как нейросеть может иметь сколь угодно сложную внутреннюю организацию, в результате обучения из неё может получиться "черный ящик", сколь угодно похожий на реальность. Проблема на этом пути состоит в следующем: чтобы быть вполне уверенным в завершении обучения нейросети, надо провести через нее количество образцов, раз в 10-15 превышающее число нейронов. В результате обучения получается система, которая может построить приближение для широкого класса функциональных зависимостей между входом и выходом. Проблема состоит лишь в том, как её наилучшим образом приспособить к данной задаче и как правильно воспользоваться результатами. Похожие статьи:
Комментарии пользователей
Добавить комментарий |
РекламаНовости партнеровРеклама |

