Нейронное прогнозирование для Форекс

Рейтинг лучших брокеров для торговли акциями за 2020 год:
  • FinMax (Форекс)
    FinMax (Форекс)

    Лучший брокер Форекса! Удобная платформа и высокая прибыль до 40% в месяц!

  • BINARIUM
    ☆☆☆☆☆
    ★★★★★
    BINARIUM

    Лучший брокер по бинарным опционам. Огромный раздел по обучению.

В этой статье раскрыты следующие темы:

Нейронные сети Форекс для борьбы за прибыль

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

Что такое нейронная сеть на Форекс

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

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

Специфика применения нейронных сетей Форекс

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

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

Повышение эффективности

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

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

Преимущества и недостатки

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

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

Нейронное прогнозирование для Форекс

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

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

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

Будем исходить из предположения, что помимо системы «жестких» экономических параметров на курс доллара воздействуют некие «мягкие факторы» некоторого «тонкого плана», которые слабо изучены. Просматривается логическая цепочка, которая с определенной долей вероятности может привести к изменениям курса USD/RU это «цикличность – циклические астрологические индексы – кондратьевские циклы – периоды подъемов и спадов в экономике – подъемы и спады экономических индексов – колебания спроса на нефть – динамика курса доллара».

К «мягким» факторам можно в этом случае попытаться отнести циклические индексы Гюшон и Ганю.

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

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

Результаты: Подтвердим или опровергнем гипотезу о том, что с помощью нейронной сети, при использовании определенного набора временных рядов за 2008-2015 гг. – входных сигналов, можно было бы с 5 % ошибкой спрогнозировать курс американского доллара USD на месяц и на год вперед.

Входящими факторами модели будут: временной период 1 месяц, кросс-курс евро-доллар, американский индекс S&P500, цена на нефть, цена на золото, российский индекс RTS, астрологический индекс Гано, индекс Гушон, дефицит российского бюджета, обозначенные соответственно: Time, EUR/USD, S&P500, WTI, AU, RTS, Iganu, Igushon, Def_Budg .

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

Научная новизна: Состоит в том, что в предложенной нейронной сети используются астрологические циклические индексы Гюшон и Ганю. Сформирована математическая модель – нейронная сеть, позволяющая предсказывать курс USD/RU на месячном тайм фрейме.

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

Одним из направлений, в прогнозировании курсов валют, и в целом настроений на финансовых ранках является использование параметров астрологических прогнозов. Например, применяются методы прогностической астрологии, которые могут быть с успехом применены в финансовой астрологии, причем основное внимание уделяется методам, получившим распространение только недавно. Более подробно многие другие астрологические методы прогноза в финансовой астрологии рассмотрены в статьях А. Колесникова [5]. Очень интересный подход к одной из областей финансовой астрологии содержится в книге Б. Коваль «Время и деньги» [4], в которой дан обзор многих общих астрологических понятий в применении к финансовой астрологии. Там показывается, как расположения Венеры и Меркурия относительно Солнца влияют на общее состояние биржи, на саму меру стоимости акций – т.е. на цены на золото.

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

Практика показывает, что одной из идей, которая используется в современной астрологии, является понятие циклического индекса. Французский астролог Андре Барбо в 1967 году опубликовал книгу в которой изложил применение циклического индекса к анализу исторических событий [1]. В основе его исследований были положены результаты, французского астролога Анри-Жозефа Гушона. Для анализа мировых событий Гушон А. использовал величину, равную сумме угловых расстояний между пятью самыми медленными планетами от Юпитера до Плутона. Вычисляя эту величину на первое января каждого года с последующим нанесением на график, он получил ломаную линия, причем оказалось, что ее пики и спады тесно связаны с международными кризисами. Работа Гушона оставалась незамеченной до тех пор, пока ею не заинтересовался А. Барбо, который подробно исследовал величину, введенную Гушоном, назвав ее циклическим индексом.

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

Рис. 1. Графики динамики основных факторов за 2008-2015 гг.

Рис. 2. Граф нейросети

На рис. 1 представлены графики кросс-курса валют EUR/USD [3], следующим фактором рассмотрим динамику S&P500 [10], далее – цены на нефть WTI. График цены на золото AU, динамика российского индекса RTS, график циклического индекса Ганю за 1900-2020 гг.

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

Матрицу значений импортируем в программу Deductor. Файл с исходными данными имеет размерность 9х96. Для обучения нейронной сети разобьем совокупность всех значений – исходное множество на обучающее – 95 % и тестовое – 5 % множества. Структура персептрона включает в себя 8 нейронов на входном слое, 2 нейрона на следующем скрытом слое и 1 – на выходном слое. Для срабатывания активационной функции нейронов выбрана сигмоидальная зависимость. Для обучения нейросетевой модели выбираем алгоритм обратного распространения ошибки.

Граф нейросети представлен восемью входами и одним выходом (рис. 2).

Поставляя значения факторов в закладку нейронной сети «Что-если», мы можем получить прогнозное значение USD/RU. Так прогноз курса доллара на конец ноября 2015 г. составил 65,7216 руб., тогда как фактическое значение составило 64,85.

На ближайшую перспективу – один месяц точность прогноза высокая, поскольку ошибка составила 1,34402 %. Тогда как отклонения прогнозных и фактических значений USD/RU на последующие четыре месяца составляют от 47 % (на декабрь) до 50,6 % (на февраль) (таблица).

Нейронный робот forex: скачать или купить?

Нейронный робот forex: скачать или купить?

Нейронные сети – один из самых популярных методов машинного обучения, в том числе для работы на финансовых рынках. Они используются в алгоритмическом и HFT-трейдинге, для прогнозирования рисков, создания адаптивных индикаторов, и скачать робот для форекса с рекламой «Используются нейронные сети!» не составляет проблем. Но для их правильного использования и тестирования, кроме надежного брокера (например, LiteForex), нужно избавиться от нескольких неверных стереотипов.

  • Нейронные сети являются точной копией мозга

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

  • Нейронная сеть − просто набор статистических методов

Несмотря на внешнее сходство, сети работают иначе, чем статистические торговые роботы Forex, скачать бесплатно которые можно в Интернет. Базовый искусственный нейрон состоит из трех слоев: входные данные, скрытый слой и слой выходных данных. Основным является скрытый слой, назначение которого − свести к минимуму вероятность ошибки, регулируя в реальном времени важность отдельных входных параметров. Обычные методы тоже присутствуют, но обычный новостной советник, работающий только по статистике, называть «нейро»продуктом, будет неправильно.

  • Создать нейронную сеть просто

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

  1. Рекуррентная. Часть нейронов имеет обратную связь и может обработать входные данные несколько раз, постепенно уточняя прогноз. Считается, что такие сети хорошо подходят для реализации в рамках торговых терминалов.
  2. Адаптивная. В процессе обучения и работы может самостоятельно изменять свою структуру, добавляя или убирая нейроны. Финансовый рынок нестабилен по определению и адаптивные алгоритмы подобны человеку, который постоянно меняет стратегию под текущую ситуацию. Но подобный робот для форекса скачать в рабочем состоянии в Интернет практически невозможно. Требуется большая компьютерная мощность для работы в реальном времени, в результате адаптивные технологии в полной мере доступны только крупным игрокам.
  3. Глубокая. Вариант адаптивной сети, но с большим количеством скрытых слоев. Также требует повышенных вычислительных ресурсов.
  • Чем больше нейронов, тем лучше сеть

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

  • Неважно, какие данные используются для обучения

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

  • Не требуется дополнительное обучение

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

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

  • Параметры нейронной сети невозможно скопировать.

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

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

Робот forex скачать. Торговые площадки для работы на Forex

Форекс-робот – это торговая площадка, призванная помогать трейдерам автоматизировать осуществление сделок. Самые популярные роботы для программ по розничной торговле построены на платформе MetaTrader. Эти роботы работают на MetaTrader как экспертные советники, и они могут делать что угодно, от предоставления сигнала для размещения торговли, до автоматического размещения и управления торговлей.

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

Торговые роботы forex скачать бесплатно

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

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

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

Когда и где скачать робот для forex

Скачать робот для forex можно в любое время суток, установка происходит в практически автоматическом режиме.

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

Робот для forex скачать

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

Для проведения тестирования можно опробовать робот для forex скачать который можно на сайте разработчика.

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

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

Прежде чем приступить к скачиванию роботов форекс бесплатно

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

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

Содержание данной статьи является исключительно частным мнением автора и может не совпадать с официальной позицией LiteForex. Материалы, публикуемые на данной странице, предоставлены исключительно в информационных целях и не могут рассматриваться как инвестиционный совет или консультация для целей Директивы 2004/39 /EC.

Нейронные сети в трейдинге на Форекс

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

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

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

Суть нейронных сетей

Применение нейронных сетей на рынке Форекс даёт возможность изъять из нескольких потоков данных один результат.

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

В качестве обучения (тренировки) нейронные сети Форекс применяют в анализе сразу два вида данных: для обучения и тестирования.

Преимущества нейронных сетей

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

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

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

Недостатки нейронных сетей

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

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

Нейронные сети не работают?

Существует определённая категория трейдеров Форекс, которые убеждены, что нейросети попросту не работают.

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

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

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

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

Заключение

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

Отметим, что новичкам в трейдинге лезть в нейронные сети Форекс не имеет смысла. Главное самим научиться прибыльно торговать, и после определённого результата пробовать создавать нейросеть.

Все самое лучшее от Академии
только нашим подписчикам

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

экономические науки

  • Баранова Мария Андреевна , студент
  • Галиаскарова Гузелия Рафкатовна , кандидат наук, доцент, доцент
  • Стерлитамакский филиал Башкирского государственного университета
  • Похожие материалы

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

    Задача прогнозирования динамики индекса курсов доллара США и евро как всемирных эквивалентов является – актуальной. Изменения валютных курсов очень сложно предсказать в связи с их зависимостью от политической, экономической обстановки в стране и в мире.

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

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

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

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

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

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

    Нейронные сети способны к адаптивному обучению путём реакции на положительные и отрицательные воздействия. Они показывают хорошие результаты при решении неформализованных или плохо формализованных процессов, обладают устойчивостью к частым изменениям среды [1, 2].

    С помощью нейронных сетей, проведем прогнозирование валютного курса EUR/USD в программе Deductor Studio. Данное программное обеспечение позволяет на основе единой платформы осуществить все этапы прогнозирования от обработки данных до построения моделей и их визуализации.

    В качестве входных параметров модели будем использовать данные котировок EURUSD в период с 20.07.2020 по 21.01.2020. Данные взяты с сайта http://www.finam.ru/. Задача будет состоять в том, что на основе имеющейся статистической информации, необходимо произвести прогноз EURUSD на 7 дней вперед. В таблице 1 частично представлены используемые входные параметры за рассматриваемый период.

    Таблица 1. Исходные данные EURUSD с 20.07.2020 по 21.01.2020

    2. Прогнозирование рынка Forex с использованием искусственных нейросетей. 2.1. Постановка задачи прогнозирования финансовых рынков с использованием искусственных нейросетей

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

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

    По нашей оценке, на 30.09.2020 г. лучшими брокерами являются:

    • для торговли валютами – NPBFX;

    • для торговли бинарными опционами – Intrade.bar;

    • для инвестирования в ПАММы и др. инструменты – Альпари;

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

    Здесь можно заметить, что нейросетевое моделирование в чистом виде базируется лишь на исходных данных (временном ряде).

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

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

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

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

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

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

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

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

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

    Подзадача получения входных образов для формирования входного множества в задачах прогнозирования временных рядов часто предполагает использование «метода окон». Метод окон подразумевает использование двух окон Wi и Wo с фиксированными размерами n и m соответственно. Эти окна, способны перемещаться с некоторым шагом по временной последовательности исторических данных, начиная с первого элемента, и предназначены для доступа к данным временного ряда, причем первое окно Wi, получив такие данные, передает их на вход нейронной сети, а второе – Wo – на выход. Получающаяся на каждом шаге пара Wi -> Wo используется как элемент обучающей выборки (распознаваемый образ, или наблюдение). Каждый следующий вектор получается в результате сдвига окон Wi и Wo вправо на один шаг. Предполагается наличие скрытых зависимостей во временной последовательности как множестве наблюдений. Нейронная сеть, обучаясь на этих наблюдениях и соответственно настраивая свои коэффициенты, пытается извлечь эти закономерности и сформировать требуемую функцию прогноза P.

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

    Интерес к нейронным сетям

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

    — В ряде работ [2],[36],[37] указано, что на сегодняшний день наиболее распространенными моделями прогнозирования являются авторегрессионные модели (ARIMAX), а также нейросетевые модели (ANN). В статье [3], в частности, утверждается: «Without a doubt ARIMA(X) and GRACH modeling methodologies are the most popular methodologies for forecasting time series. Neural networks are now the biggest challengers to conventional time series forecasting methods».

    Без сомнений модели ARIMA(X) и GARCH являются самыми популярными для прогнозирования временных рядов. В настоящее время главную конкуренцию данным моделям составляют модели на основе ANN.

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

    Первая нейронная сеть

    Не стоит изобретать велосипед, а стоит взять готовый пример из книги Хайкина. Сама задача и ее решение подробно описаны в разделе 4.8 данной книги. Полный архив примеров для книги выложен у нас на форуме. Отдельно взятый рабочий пример можно скачать в архиве. Главный файл называется Create_ANN_step_0.m.

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

    Прогнозирование с помощью нейронной сети

    Я взяла данный пример реализации нейронной сети, просмотрела внимательно содержание его функций и сделала свою нейронную сеть, которая прогнозирует торговый график по европейской территории РФ (далее ТГ) на 24 значения вперед. В архиве вы можете скачать, как полученный мною пример, так и исходные данные к нему. Основной файл называется Create_ANN_step_1.m

    Шаг 1. Инициализация и исходные данные

    Исходные данные по торговому графику содержатся в файле VOLUMES_EUR.mat и имеют значения за период с 01.09.2006 до 22.11.2011.

    Обучение сети, то есть определение весов и смещений для всех нейронов я выполняю на периоде значений с 01.01.2010 по 31.12.2010.

    В качестве тестового я выбрала период с 01.01.2011 по 22.11.2011.

    Шаг 2. Предварительная обработка исходных данных

    Из теории и из примера Хайкина я понимаю, что нейронная сеть работает со значениями временных рядов от 0 до 1. Исходные значения торгового графика в массиве VOLUMES_EUR, конечно, выходят далеко за этот диапазон. Для использования нейронной сети необходимо предварительно отмасштабировать исходный временной ряд, как показано на рисунках.

    Рис 1. Предварительно мы имели значения от 57 847 до 111 720.

    Рис 2. После масштабирования мы стали иметь значения от 0 до 1.

    Шаг 3. Настройка нейронной сети

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

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

    Рис 3. Структура разработанной нейронной сети.

    После описания структуры указываются значения нескольких параметров нейронной сети (см файл Create_ANN_step_1.m). Не мудрствуя лукаво, оставила все значения, которые были установлены в примере Хайкина.

    Шаг 4. Обучение сети

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

    Шаг 5. Тестовое прогнозирование

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

    По результатам прогноза я провожу инверсию масштаба.

    Шаг 6. Оценка ошибки прогнозирования

    На последнем шаге я вычисляю значения ошибки прогнозирования временных рядов MAE и MAPE.

    Величина MAPE оставила около 4%, что показывает в целом адекватность разработанной нейросетевой модели прогнозирования. Однако мы знаем, что это далеко не предел точности! Аналогичное значение MAPE для того же самого временного ряда в отчете за аналогичный период (за 2011 год) составляет около 1.18% при использовании нашей внутренней модели прогнозирования. Подробности можно посмотреть в отчете Точность прогнозирования за истекшие периоды. В упомянутом отчете временной ряд назван для краткости ТГ ЕЦЗ (торговый график европейской ценовой зоны).

    Результаты

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

    Созданная нейронная сеть обучается очень быстро: от 60 до 120 секунд в зависимости от мощности компьютера.

    При тестовом прогнозировании на созданной нейронной сети получается прогноз торгового графика на сутки вперед с ошибкой MAPE ≅ 4%.

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

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

    1. Если вы потратили меньше чем 6 месяцев на эти работы, то не ждите никакого адекватного результата. И полгода на приличный результат мало!
    2. Если у вас возник вопрос вроде «а где в коде то и се?», то имейте в виду, что я не буду впредь на эти вопросы отвечать — задавать их тут бесполезно. Для того, чтобы найти ответ на такого сорта вопрос нужно внимательно пошагово прогнать программу и разобраться.
    3. Если, не смотря на внимательный разбор кода примера, вопрос все равно остался, то задумайтесь, тем ли вы занимаетесь. Математическое моделирование — сфера деятельности, подходящая далеко не всем.

    Похожие публикации

    Комментарии

    Добрый вечер, Ирина!

    Я только начинаю заниматься изучением нейросетевого прогнозирования. Спасибо большое за Ваш пример, он очень полезен для меня.Могли бы подсказать, в результате работы программы только ошибка прогноза, а где можно сам результат посмотреть, «что было» — «что стало». Вывод куда то ведется или это нужно сделать? И например, чтобы мне загрузить свои тестовые данные, мне их нужно записать вручную в файл «VOLUMES_EUR.mat»?Прошу прощения за, возможно «наивные» вопросы, но я только начинаю изучать матлаб, пока что чайник в этом.. Был бы очень признателен, если поможете, ответите.

    Сергей, добрый день!
    Пожалуйста!

    Могли бы подсказать, в результате работы программы только ошибка прогноза, а где можно сам результат посмотреть, «что было» — «что стало»

    У нас с вами есть фраза в коде

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

    И например, чтобы мне загрузить свои тестовые данные, мне их нужно записать вручную в файл «VOLUMES_EUR.mat»?

    Сергей, у вас довольно слабое понимание инструмента. Я бы посоветовала вам открыть и прочитать (хотя бы вводную часть) пособие по MATLABу. Многие ваши вопросы разрешатся.

    mat — это встроенный формат MATLABа; чтобы сделать такой файл удобнее сначала подготовить данные в xls формате, а уж после загрузить xls в MATLAB буквально двумя строчками.

    Добрый день, Ирина.

    Подскажите пожалуйста есть ли смысл заниматься нейросетями на матлабе при очень большом объеме исходных данных. У меня объект — шахта, для обучения — входной вектор из аудиоряда с двух сотен микрофонов, длиной он в месяцы — но вход — кусочек в минуту. А выход — прогнозируемое событие: изменение технологических параметров, конкретно метанообразование). Итого объем данных по выборке более гигабайта.

    Но эти детали наверное не очень важны.

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

    Добрый день! У вас очень интересная задача, но данных действительно очень много, но это много не только для ANN, а вообще много. ANN — неплохой инструмент для подобной задачи, на мой взгляд. У меня в обучающей выборке было около

    30 000 значений временного ряда. Это немного, конечно, по сравнению с вашими данными.

    Работать с сырыми массивами в таком случае довольно сложно, но нужно исходить из задачи:

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

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

    Лучшие брокеры без обмана
    • FinMax (Форекс)
      FinMax (Форекс)

      Огромный выбор торговых инструментов! Заработает каждый!

    • BINARIUM
      ☆☆☆☆☆
      ★★★★★
      BINARIUM

      Лучший брокер по бинарным опционам. Огромный раздел по обучению.

    добрый день, Ирина!

    мы с програмистом практически повторили описанный алгоритм и получили аналогичные результаты по ошибкам на массиве EUR/USD. То есть все получилось и сработало. Но тут возник вопрос у программиста — а где собственно прогнозируемое окно? если Result вычисляется используя Index0 для тестового массива, то в этом масиве уже есть фактические данные , а прогнозируемое окно на 24 свечи вперед, означает что этих фактических данных еще нет, а прогнозируемое окно уже должно показать что «будет». Означает ли это, что мы должны поставить в тестовом массиве Index0 нули на величину одного окна в 24 свечи, а затем сравнить с фактическими данными поступившими в это окно?

    будем благодарны за ответ

    Илья, добрый день!

    Смотрите внимательно, Result получается без использования Index0. Сначала берутся предыдущие дни (h-24; h-48), их индексы хранятся в Index1 и Index2.

    Затем на основании этих индексов фомируется матрица T, где в 2 и 3 столбец записываются исторические значения.

    А затем они используются для формирования входа сети.

    Если все это проделать в дебаг режиме, то ответ на ваш вопрос будет быстро понятен.

    Для использования нейронной сети необходимо предварительно отмасштабировать исходный временной ряд, как показано на рисунка

    Добрый День. А можно с этого момента по подробней.

    Каким методом можно сделать масштабирование? Пожалуйста — направте на литературу или приведите пример как это делаеться и почему. Если у меня данные в диапазано от 0 до 3 или 2 , как отмашт. к 0 и 1?

    Скачиваете код примера в Matlab, смотрите на строки масштабирования и разбираетесь — в примере оно реализовано, достаточно разобраться каким образом.

    Здравствуйте еще раз.По ходу разберательства сформировались еще несколько вопросов.Зачем на вход сети подавать данные за два прошедших дня (Xi-1, Xi-2)?почему бы просто не подать на вход Xi, и пытаться обучая сеть на выходе получить Xi.Далее не совсем понятно почему при формировании матрицы весов:для скрытого слоя W1 = randn(NumberOfHiddenNeurons, NumberOfInputNeurons+1); матрица строится по строкам по количеству нейронов скрытого слоя, по столбцам по количеству входных нейронов. Не понятно почему так,ведь по смыслу связьидет от входного к скрытому. вроде как должно быть наоборот W1 = randn(NumberOfInputNeurons, NumberOfHiddenNeuron+1);. В таком же виде строится матрица и для весов выходного слоя W2 = randn(NumberOfOutputNeurons, NumberOfHiddenNeurons+1); Также не ясно почему столбцов в матрице весов на 1 больше W1 = randn(NumberOfHiddenNeurons, NumberOfInputNeurons+1),по коду ясно, что это столбец загоняется в переменную b1/b2, которая в последствии используется для прогнозирования временного ряда.И вот собственно вопрос, что эта за переменная b1, зачем она нужна, потому как точность прогноза без нее падает ощутимо!

    почему бы просто не подать на вход Xi, и пытаться обучая сеть на выходе получить Xi

    Если сеть обучена по принципу «из Xi получить Xi», то как получить прогноз?

    Далее не совсем понятно почему при формировании матрицы весов.

    Эти вопросы касаются понимания работы сети. Смотрите подробности в Хайкине. Мой пример основан на примере, который подробно разбирается в указанной книге. И вообще, это замечательная книга по нейронным сетям. Кроме того, можете посмотреть мой краткий материал по нейронным сетям.

    Скачал ваш код. Во многом разобрался. Все понятно и доступно.

    Но есть маленькое WHY?

    24 – это NumberOfOutputNeurons?

    Почему 24… не пойму..

    И еще. Если я хочу увеличить число входов (нейронов) нужно ли увеличивать число циклов епох или это нужно делать только экспериментально. То есть смотреть не увеличивается ошибка…?

    Еще раз спасибо Вам за статью и Ваши ответы.

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

    Здравствуйте Ирина!Спасибо Вам за отличную статью! на ру кластере аналога ей нет, очень мало примеров прогнозирования временных рядов с помощью нейронных сетей!Скажите пожалуйста, нет ли у Вас возможности, адаптировать код под более популярный язык программирования java или С++?

    Виктор, спасибо за приятные слова.

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

    Ваш партнер не прав) Задачи решаемые программированием часто пересекаются с задачами математики.

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

    Доброго времени суток. Возникла идея пргнозирования исхода теннисных матчей на основе нейроннных сетей. Хотелось бы спросить, где у вас в программе можно найти заданные выходы соответствующих входов в сети на этапе обучения? Насколько я понимаю именно с заданными выходами и осуществляется сравнение полученных выходов на этапе обучения? Также непонятно, почему при прогнозировании на этапе теста используются предыдущие входы? Ведь на этапе обучения мы получиили нужные нам веса и теперь остается лишь поставлять новые значения входов? Хотелось бы узнать этот момент подробнее. И хотелось бы у вас попросить совета. В строящейся сети будет использовано 50 входных нейронов, 150 скрытых. Задача программы выдавать номер игрока-победителя (либо 1 либо 2). Таким образом как результат необходимо получить сеть с одним выходом. Возможно ли это? Ведь номер победителя будет являться логической величиной, полученной на основе входных характеристик каждых из игроков (то есть грубо говоря, если характеристики игрока 1 лучше игрока 2, то на выходе получаем -1, в обратном случае -2). Может ли нейронная сеть на выходе давать логическую величину? И как будет осуществляться обучение? Ведь получаемые числа будут сравниваться на этапе обучения опять же с логической величиной известных результатов. Просто можно ведь сделать два выхода сети: процент соответствия игроку 1 категории «победитель» и процент соответствия игроку 1 категории «проигравший». Но тогда непонятно как обучать. Ведь в известных результатах базы на этапе обучения есть только номер победителя. Надеюсь понятно изложил свои мысли. Заранее благодарен!

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

    Уважаемые читатели, я не только к автору сего вопроса обращаюсь, а вообще к посетителям. Я выложила пример с пояснениями и исходными данными не для того, чтобы вам тут пошагово каждый раз заново пояснять где чего. Мне такого сорта вопросы надоели до невозможности! Сядьте, наконец, и терпеливо разберитесь! Пример сделан много лет назад, чтобы ответить на ваши вопросы, мне нужно его открывать, смотреть, прогонять в дебаггере. Вы-то при этом чем заняты?

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

    Если вы внимательно все это пошагово прогоните, то поймете, что это не так. И ваш вопрос лишь от невнимательности.

    Таким образом как результат необходимо получить сеть с одним выходом. Возможно ли это?

    Может ли нейронная сеть на выходе давать логическую величину?

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

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

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

    Размещено на http://www.stud.wiki

    1. Анализ предметной области и обзор используемых методов инструментальных средств

    1.1 Постановка задачи прогнозирования

    1.2 Краткое описание модели представления знаний

    1.3 Описание инструментальных средств

    1.4 Построение структуры семантической сети

    2. Реализация экспертной системы

    2.1 Описание структуры ПО

    2.2 Основные решения по интерфейсам

    2.3 Руководство пользователя ЭС

    2.3.1 Условия работы системы

    2.3.2 Установка системы

    2.3.3 Руководство пользователя — эксперта

    2.3.3 Руководство конечного пользователя

    2.4 Описание контрольного примера. Результаты испытаний

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

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

    Одна из наиболее динамично развивающихся областей современной теории интеллектуальных вычислений (computational intelligence) связана с построением и применением искусственных нейронных сетей.

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

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

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

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

    Среди множества существующих структур сетей в качестве важнейших можно выделить:

    сети с самоорганизацией в результате конкуренции нейронов,

    сети с самоорганизацией корреляционного типа,

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

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

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

    1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ И ОБЗОР ИСПОЛЬЗУЕМЫХ МЕТОДОВ ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ

    1.1 Постановка задачи прогнозирования

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

    — Классификационный прогноз направления движения курса;

    — Выработка торговых сигналов покупки/продажи (buy/sell signals).

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

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

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

    По времени опережения различают виды прогнозов:

    сглаживание, R= 0;

    краткосрочный прогноз, R= 1 — 2;

    середнесрочный прогноз, R= 3 — 7;

    долгосрочный прогноз, R= 10 — 15.

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

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

    Данные про поведение объекта, признаки которого связаны с течением времени, представлены как результаты наблюдений в равномерные отсчеты времени. Для моментов времени t=1, 2, . n данные наблюдений приобретают вид временного ряда х(t1), х(t2), . х(tn). Информация про значения временного ряда до момента n позволяет давать оценки параметров x(tn+1), x(n+2), . x(n+m).

    Для прогнозирования элементов временных рядов в линейной модели времени широко используют так называемый метод «временных окон».

    Пусть временной ряд x(t) задан отсчетами процесса x(t1), x(t2). x(tі) в дискретные моменты времени t. Зададим ширину (количество дискретных отсчетов) входного временного окна m, ширину выходного окна р. Входное и выходное окна накладываются на данные ряда, начиная с первого элемента (рис. 1).

    Рисунок 1 — Формирование множеств данных для однопараметрической задачи прогнозирования по методу «временных окон»

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

    Значение ширины окон и шага смещения должны согласовываться с особенностями временного ряда, который обеспечивается путем проведения экспериментов. Пусть входное окно имеет ширину m, выходное окно р=1, шаг смещения s=1. Тогда сформированное множество значений для нашей задачи будет иметь вид, приведенный ниже:

    Множество данных для прогнозирования методом “временных окон”

    1.2 Краткое описание модели представления знаний

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

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

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

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

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

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

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

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

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

    простой обрабатывающий элемент — нейрон;

    очень большое число нейронов участвует в обработке информации;

    один нейрон связан с большим числом других нейронов (глобальные связи);

    изменяющиеся веса связей между нейронами;

    массированная параллельность обработки информации.

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

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

    нейрон получает от дендритов набор (вектор) входных сигналов;

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

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

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

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

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

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

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

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

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

    1.3 Описание инструментальных средств

    В настоящее время существует огромное количество программных пакетов как для профессиональной работы с биржей (т.н. трейдинговые системы, DealStations), так и для нейросетевого моделирования, поэтому в целях экономии времени и концентрирования на задаче курсового проекта была произведенена работа в рамках существующих систем вместо самостоятельного написания новых. В качестве пакета нейросетевого моделирования был выбран модуль Neural Network Toolbox программного комплекса MatLab, а для работы с биржевыми котировками используется ПО MetaTrader 4. Платформа MetaTrader имеет в своем распоряжении встроенные средства визуализации, анализа и получения биржевых котировок (валютных пар) с серверов международного рынка Forex, а также реализует архив хранения котировок на весь период своей работы с различными равномерными отсчетами времени. MetaTrader 4 имеет в своем составе встроенный скриптовый язык с функцией вызова DLL, что позволяет реализовать произвольную логику работы механизма прогнозирования, а также возможность подключения пакета MatLab.

    Для реализации графического интерфейса к радиально-базисной нейронной сети, была выбрана программа-оболочка, написанная в среде быстрой разработки приложений Borland Delphi 7.0 с использованием библиотеки компонентов Jedi Visual Component Library.

    1.4 Построение структуры семантической сети

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

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

    Из всех типов нейронных сетей была выбрана радиально-базисная сеть вследствие некоторых особенностей биржевого предсказания, а именно представления биржевых котировок на определенный промежуток времени в виде т.н. “бара” или “японской свечи”. Бар (японская свеча) представляет собой графическое изображение четырех основных параметров на промежуток времени: цены открытия (“open”), цены закрытия (“close”), максимального скачка цены вверх (“high”) и вниз (“low”). При осуществлении классического анализа производится классификация типов этих свечей и на основании этого строится прогноз. Поэтому выбор радиально базисной сети для такого случая хорошо обусловлен и вполне естественен, поскольку она делает то же самое.

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

    Поподробнее остановимся на сети RBF, поскольку она является не настолько элементарной по своей структуре, как многослойный персептрон.

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

    Рисунок 2 — Структура нейронной сети RBF

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

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

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

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

    Структуру RBF-сети можно усилить путем применения масштабирования входных сигналов аналогичного сигмоидальной нейронной сети. Масштабирующая система вводит дополнительные степени свободы сети, что позволяет лучше приблизить выходной сигнал сети к ожидаемому значению функции. Коэффициенты масштабирования входных сигналов представляют собой группу подбираемых параметров. За счет увеличения количества подбираемых параметров удовлетворительная точность аппроксимации может быть достигнута при меньшем числе нейронов. Структура HRBF сети представлена на рисунке 3.

    Рисунок 3 — Структура нейронной сети HRBF

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

    Если вектор радиальных функций в N-мерном входном пространстве обозначить (X), то это пространство является нелинейно -разделяемым на два пространственных класса X+ и X- тогда, когда существует такой вектор весов w, что

    Граница между этими классами определяется уравнением .

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

    Простейшая нейронная сеть радиального типа функционирует по принципу многомерной интерполяции, состоящей в отображении P различных входных векторов Xi (i = 1, 2, …, P) из входного N-мерного пространства во множество из P рациональных чисел di (i = 1, 2. …, P). Для реализации этого процесса необходимо использовать P скрытых нейронов радиального типа и задать такую функцию отображения F(x), для которой выполняется условие интерполяции (см. формулу 1.2).

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

    где — приближенное j-е значение функции,

    K — число базисных нейронов,

    — вес синапса второго уровня k-ого «нейрона»,

    — функция активации k-го «нейрона»,

    N — число переменных функции F(размерность пространства ),

    — вес синапса первого уровня k-го «нейрона» для i-ой переменой,

    — j-ое значение i-ой переменной,

    — вектор параметров функции активации,

    P -число обучающих примеров (K

    //закроем файл (освободим указатель/handle, чтобы файл можно было

    //открыть для редактирования другими программами)

    return(0); // работа скрипта завершена

    function result = create_nn(file_name, frame_size, error_goal, spread_constant, data_count, use_test);

    %установка значений по умолчанию

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

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

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

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

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

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

    дипломная работа [955,3 K], добавлен 06.11.2011

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

    дипломная работа [3,8 M], добавлен 27.06.2011

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

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

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

    курсовая работа [1,3 M], добавлен 26.03.2020

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

    курсовая работа [4,9 M], добавлен 14.12.2014

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

    презентация [582,1 K], добавлен 25.06.2013

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

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

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

    лабораторная работа [352,2 K], добавлен 20.05.2013

    Программа Trading Solutions. Нейронные сети для вашего анализа рынка

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

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

    Ведь постоянная рутинная работа вокруг оптимизации множества параметров алгоритма просто отпадает.

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

    Торгуй по крупному только с ведущим брокером

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

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

    Установка Trading Solutions

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

    Установка Trading Solutions ничем не отличается от установки любой другой программы на ваш персональный компьютер.

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

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

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

    Работа с программой Trading Solutions

    К сожалению, Trading Solutions – это зарубежная разработка и в ней отсутствует поддержка русского языка, что вызывает некоторые трудности в ее использовании.

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

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

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

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

    Перед вами появится список вариантов, среди которых вы можете проанализировать полученные сигналы, создать оптимальные сигналы, создать звуковое оповещение и многое другое. Для того чтобы создать критерии для создания алгоритма выберите опцию «Apply Rules entry/exit systems».

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

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

    Для того чтобы сгенерировать нейронную сеть по всем возможным критериям программы необходимо вызвать дополнительное меню правой кнопкой мыши на выбранном вами активе и выбрать опцию «Apply a Trading Solution».

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

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

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

    Для того чтобы вычислить корреляцию вызовите дополнительное меню с помощью правой кнопки мыши на выбранном вами активе и среди предложенного списка опций нажмите на «Analyze Correlation».

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

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

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

    Предупреждение о рисках.

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

    Консультации по торговле на форекс и других биржевых площадках России

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

    Одно из самых загадочных и заманчивых направлений автоматической торговли, в тоже время считается самым перспективным. Этот мощный инструмент даже при неумелом обращении способен давать преимущества в получении торговых сигналов. Множество трейдеров на данный момент считает, что это всего лишь способ подгонки под текущие данные, это не так! Всё это из-за того что инструмент математически сложен, и далеко не у каждого получиться разобраться со всеми тонкостями работы с нейронными сетями. А теперь представьте на что будет способен мультивалютный нейросетевой торговый робот? Скорее всего это будет впечатляюще зрелище!

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

    Нейронное прогнозирование для Форекс

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

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

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

    На основании изложенного материала рассмотрено прогнозирование курса валют (украинской гривны к доллару США).

    ВВЕДЕНИЕ

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

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

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

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

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

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

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

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

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

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

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

    1 ПОСТАНОВКА ЗАДАЧИ

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

    В общем случае X означает некоторую совокупность наблюдаемых случайных величин, которые в рассматриваемом контексте называются предсказывающими (или прогнозными) переменными, и задача состоит в построении такой функции Ф(Х), которую можно было бы использовать в качестве оценки для прогнозируемой величины Y:Ф(Х)=Y (т.е. чтобы она была в каком-то смысле «близка» к Y); такие функции Ф(Х) называют предикторами величины Y по X. Разработка методов построения оптимальных (в том или ином смысле) предикторов и составляет главную задачу прогнозирования.

    Если совокупность величин представляет собой значения какого-либо параметра, изменяющегося во времени, то такую совокупность называют временным рядом, при этом каждое значение соответствует значению параметра в конкретное время t 1 , t 2 , …,t n . Задача прогнозирования в этом случае заключается в определении значения измеряемой величины X в момент времени t n+1 , t n+2 , t n+3 ,…, то есть для выполнения прогнозирования необходимо выявить закономерность этого временного ряда.

    Различают многошаговый и одношаговый прогноз.

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

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

    Целью данной работы есть разработка системы, которая могла бы выполнять одношаговое и многошаговое прогнозирование и использовала технологии искусственных нейронных сетей; при этом будет показано каким образом задача прогнозирования сводится к задаче распознавания образов (см. раздел 4).

    2 ОБЗОР КЛАССИЧЕСКИХ МЕТОДОВ И СРЕДСТВ ПРОГНОЗИРОВАНИЯ


    2.1 Статистические методы

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

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

    Статистика оперирует перечисленными ниже понятиями.

    Генеральная совокупность — множество всех объектов в исследованиях.

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

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

    Теория стохастического прогнозирования [1] изучает методы построения предикторов (см. раздел 1). Для построения этой теории, прежде всего, требуется уточнить смысл приближенного равенства Ф(Х)≈Y. Если Ф(Х) используется для предсказания величины Y, то одной из разумных мер расхождения между ними является (Ф(Х)-Y) 2 , или квадратичная ошибка, но так как величина Y неизвестна, то для измерения точности предиктора Ф используется среднеквадратичная ошибка ∆Ф=М(Ф(Х)-Y) 2 , где М — знак математического ожидания. Среднеквадратическая ошибка — мера, традиционно используемая в теории стохастического прогнозирования, хотя в принципе можно было бы использовать и другие меры точности, например среднюю абсолютную ошибку. Предиктор, минимизирующий среднеквадратичную ошибку в заданном классе предикторов, называют оптимальным предиктором или прогнозом.

    2.2 Программный пакет STATISTICA

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

    Прогнозирование моделей авторегрессии и проинтегрированного скользящего среднего [1] имеет методику, реализуемую в следующей последовательности:

    1. идентификация, или определение модели, которая описывает наблюдаемый временной ряд;

    2. оценка параметров модели;

    3. исследование адекватности модели;

    Каждый из этапов методики легко доступен в пакете STATISTICA. Исследователь не испытывает перегрузок, связанных с подготовкой данных, проверкой результатов, построением графиков, рассмотрением альтернативных вариантов — все необходимые инструменты у него под рукой. Например, исследование и прогнозирование временных рядов в рамках ARIMA — Авторегрессия и проинтегрированное скользящее среднее, — реализованные в системе STATISTICA, соответствуют методическим основам Бокса и Дженкинса [1]. Образно можно сказать, что реализованный в системе диалог ARIMA является перенесением методологии Бокса и Дженкинса из мира математических идей и моделей в мир современных компьютерных технологий.

    Большим достоинством системы является наличие встроенного языка STATISTICA BASIC, позволяющего моделировать временные ряды, оценивать качество прогноза, риск при использовании определенной стратегии игры.

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

    3 НЕЙРОСЕТЕВЫЕ ТЕХНОЛОГИИ


    3.1 История развития нейронных сетей

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

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

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

    Параллельно с прогрессом в нейроанатомии и нейрофизиологии психологами были созданы модели человеческого обучения. Одной из таких моделей, оказавшейся наиболее плодотворной, была модель Д. Хэбба [2], который в 1949г. предложил закон обучения, явившийся стартовой точкой для алгоритмов обучения искусственных нейронных сетей. Дополненный сегодня множеством других методов он продемонстрировал ученым того времени, как сеть нейронов может обучаться.

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

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

    Его исследования привели к написанию книги [3], в которой он вместе с Пайпертом доказал, что используемые в то время однослойные сети теоретически неспособны решить многие простые задачи, в том числе реализовать функцию «Исключающее ИЛИ». Минский также не был оптимистичен относительно потенциально возможного здесь прогресса.

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

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

    3.2 Искусственные нейронные сети

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

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

    3.2.1 Биологический прототип нейрона

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

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

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

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

    3.2.2 Искусственный нейрон

    Искусственный нейрон имитирует в первом приближении свойства биологического нейрона. На вход искусственного нейрона поступает некоторое множество сигналов, каждый из которых является выходом другого нейрона. Каждый вход умножается на соответствующий вес, аналогичный синаптической силе, и все произведения суммируются, определяя уровень активации нейрона. На рисунке 3.2 представлена модель, реализующая эту идею. Хотя сетевые парадигмы весьма разнообразны, в основе почти всех их лежит эта конфигурация. Здесь множество входных сигналов, обозначенных x 1 , x 2 ,…, x n , поступает на искусственный нейрон. Эти входные сигналы, в совокупности, обозначаемые вектором X, соответствуют сигналам, приходящим в синапсы биологического нейрона. Каждый сигнал умножается на соответствующий вес w 1 , w 2 ,…, w n , и поступает на суммирующий блок, обозначенный Σ. Каждый вес соответствует «силе» одной биологической синаптической связи. (Множество весов в совокупности обозначается вектором W.) Суммирующий блок, соответствующий телу биологического элемента, складывает взвешенные входы алгебраически, создавая выход, который мы будем называть NET. В векторных обозначениях это может быть компактно записано следующим образом: NET = XW.

    Рисунок 3.2 — Искусственный нейрон

    Сигнал NET далее, как правило, преобразуется активационной функцией F и дает выходной нейронный сигнал OUT. Активационная функция может быть обычной линейной функцией OUT = K*NET, где К – постоянная, пороговой функции, или же функцией, более точно моделирующей нелинейную передаточную характеристику биологического нейрона и представляющей нейронной сети большие возможности.

    Рисунок 3.3 — Искусственный нейрон с активационной функцией

    На рисунке 3.3 блок, обозначенный F, принимает сигнал NET и выдает сигнал OUT. Если блок F сужает диапазон изменения величины NET так, что при любых значениях NET значения OUT принадлежат некоторому конечному интервалу, то F называется «сжимающей» функцией. В качестве «сжимающей» функции часто используется логистическая или «сигмоидальная» (S-образная) функция. Эта функция математически выражается как F(x) = 1/(1 + е -x ). Таким образом,

    По аналогии с электронными системами активационную функцию можно считать нелинейной усилительной характеристикой искусственного нейрона. Коэффициент усиления вычисляется как отношение приращения величины OUT к вызвавшему его небольшому приращению величины NET. Он выражается наклоном кривой при определенном уровне возбуждения и изменяется от малых значений при больших отрицательных возбуждениях (кривая почти горизонтальна) до максимального значения при нулевом возбуждении и снова уменьшается, когда возбуждение становится большим положительным. Гроссберг (1973) обнаружил, что подобная нелинейная характеристика решает поставленную им дилемму шумового насыщения. Каким образом одна и та же сеть может обрабатывать как слабые, так и сильные сигналы? Слабые сигналы нуждаются в большом сетевом усилении, чтобы дать пригодный к использованию выходной сигнал. Однако усилительные каскады с большими коэффициентами усиления могут привести к насыщению выхода шумами усилителей (случайными флуктуациями), которые присутствуют в любой физически реализованной сети. Сильные входные сигналы в свою очередь также будут приводить к насыщению усилительных каскадов, исключая возможность полезного использования выхода. Центральная область логистической функции, имеющая большой коэффициент усиления, решает проблему обработки слабых сигналов, в то время как области с падающим усилением на положительном и отрицательном концах подходят для больших возбуждений. Таким образом, нейрон функционирует с большим усилением в широком диапазоне уровня входного сигнала.

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

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

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

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

    3.2.3 Однослойные искусственные нейронные сети

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

    Рисунок 3.5 — Однослойная нейронная сеть

    Удобно считать веса элементами матрицы W. Матрица имеет т строк и п столбцов, где m – число входов, а n – число нейронов. Например, w 2,3 – это вес, связывающий третий вход со вторым нейроном. Таким образом, вычисление выходного вектора N, компонентами которого являются выходы OUT нейронов, сводится к матричному умножению N=XW, где N и Х – векторы-строки.

    3.2.4 Многослойные искусственные нейронные сети

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

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

    Многослойные сети могут привести к увеличению вычислительной мощности по сравнению с однослойной сетью лишь в том случае, если активационная функция между слоями будет нелинейной. Вычисление выхода слоя заключается в умножении входного вектора на первую весовую матрицу с последующим умножением (если отсутствует нелинейная активационная функция) результирующего вектора на вторую весовую матрицу: (XW 1 )W 2 . Так как умножение матриц ассоциативно, то X(W 1 W 2 ). Это показывает, что двухслойная линейная сеть эквивалентна одному слою с весовой матрицей, равной произведению двух весовых матриц. Следовательно, любая многослойная линейная сеть может быть заменена эквивалентной однослойной сетью. Таким образом, для расширения возможностей сетей по сравнению с однослойной сетью необходима нелинейная активационная функция.

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

    3.3 Обучение искусственных нейронных сетей

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

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

    Различают стратегии обучения: «обучение с учителем» и «обучение без учителя».

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

    Несмотря на многочисленные прикладные достижения, обучение с учителем критиковалось за свою биологическую неправдоподобность. Трудно вообразить обучающий механизм в мозге, который бы сравнивал желаемые и действительные значения выходов, выполняя коррекцию с помощью обратной связи. Если допустить подобный механизм в мозге, то откуда тогда возникают желаемые выходы? Обучение без учителя является намного более правдоподобной моделью обучения в биологической системе. Развитая Кохоненом [4] и многими другими, она не нуждается в целевом векторе для выходов и, следовательно, не требует сравнения с предопределенными идеальными ответами. Обучающее множество состоит лишь из входных векторов. Обучающий алгоритм подстраивает веса нейросети так, чтобы получались согласованные выходные векторы, т. е. чтобы предъявление достаточно близких входных векторов давало одинаковые выходы. Процесс обучения, следовательно, выделяет статистические свойства обучающего множества и группирует сходные векторы в классы. Предъявление на вход вектора из данного класса даст определенный выходной вектор, но до обучения невозможно предсказать, какой выход будет производиться данным классом входных векторов. Следовательно, выходы подобной сети должны трансформироваться в некоторую понятную форму, обусловленную процессом обучения. Это не является серьезной проблемой. Обычно не сложно идентифицировать связь между входом и выходом, установленную сетью.

    Большинство современных алгоритмов обучения выросло из концепций Хэбба [5]. Им предложена модель обучения без учителя, в которой синаптическая сила (вес) возрастает, если активированы оба нейрона, источник и приемник. Таким образом, часто используемые пути в сети усиливаются и феномен привычки и обучения через повторение получает объяснение.

    3.4 Нейросети обратного распространения


    3.4.1 Введение

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

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

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

    Рисунок 3.7 — Искусственный нейрон с активационнной функцией

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

    Как показывает уравнение (3.2), эта функция, называемая сигмоидом, весьма удобна, так как имеет простую производную, что используется при реализации алгоритма обратного распространения.

    Сигмоид, который иногда называется также логистической, или сжимающей функцией, сужает диапазон изменения NET так, что значение OUT лежит между нулем и единицей. Как указывалось выше (см 3.2.4), многослойные нейронные сети обладают большей представляющей мощностью, чем однослойные, только в случае присутствия нелинейности. Сжимающая функция обеспечивает требуемую нелинейность.

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

    В литературе нет единообразия относительно того, как считать число слоев в таких сетях. Одни авторы используют число слоев нейронов (включая несуммирующий входной слой), другие – число слоев весов [2]. Так как последнее определение функционально описательное, то будем использовать его. Согласно этому определению, сеть на рисунке 3.9 рассматривается как двухслойная. Нейрон объединен с множеством весов, присоединенных к его входу. Таким образом, веса первого слоя оканчиваются на нейронах первого слоя. Вход распределительного слоя считается нулевым слоем.

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

    3.4.2 Обучение нейросетей обратного распространения

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

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

    Обучение сети обратного распространения требует выполнения следующих операций:

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

    Вычислить выход сети.

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

    Подкорректировать веса сети так, чтобы минимизировать ошибку.

    Повторять шаги с 1 по 4 для каждого вектора обучающего множества до тех пор, пока ошибка на всем множестве не достигнет приемлемого уровня.

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

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

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

    На шаги 1 и 2 можно смотреть как на «проход вперед», так как сигнал распространяется по сети от входа к выходу. Шаги 3, 4 составляют «обратный проход», здесь вычисляемый сигнал ошибки распространяется обратно по сети и используется для подстройки весов. Эти два прохода теперь будут детализированы и выражены в более математической форме.

    3.4.2.1 Проход вперед

    Шаги 1 и 2 могут быть выражены в векторной форме следующим образом: подается входной вектор Х и на выходе получается вектор Y. Векторная пара вход-цель Х и Т берется из обучающего множества. Вычисления проводятся над вектором X, чтобы получить выходной вектор Y.

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

    Этот процесс может быть выражен в сжатой форме с помощью векторной нотации. Веса между нейронами могут рассматриваться как матрица W. Например, вес от нейрона 8 в слое 2 к нейрону 5 слоя 3 обозначается w 8,5 . Тогда NET-вектор слоя N может быть выражен не как сумма произведений, а как произведение Х и W. В векторном обозначении N=XW. Покомпонентным применением функции F к NET-вектору N получается выходной вектор О. Таким образом, для данного слоя вычислительный процесс описывается следующим выражением:

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

    3.4.2.2 Обратный проход


    3.4.2.2.1 Подстройка весов выходного слоя

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

    δ = OUT(1 – OUT)(Target – OUT) (3.4)

    Затем δ умножается на величину OUT нейрона j, из которого выходит рассматриваемый вес. Это произведение в свою очередь умножается на коэффициент скорости обучения η (обычно от 0.01 до 1.0), и результат прибавляется к весу. Такая же процедура выполняется для каждого веса от нейрона скрытого слоя к нейрону в выходном слое.

    Следующие уравнения иллюстрируют это вычисление:

    Δ w pq,k = η δ q,k OUT (3.5)

    w pq,k (n+1) = w pq,k (n) + Δ w pq,k (3.6)

    где w pq,k (n) – величина веса от нейрона p в скрытом слое к нейрону q в выходном слое на шаге n (до коррекции); что индекс k относится к слою, в котором заканчивается данный вес, т. е. с которым он объединен; w pq,k (n+1) – величина веса на шаге n+1 (после коррекции); δ q,k – величина δ для нейрона q, в выходном слое k; OUT p,j – величина OUT для нейрона р в скрытом слое j.

    3.4.2.2.2 Подстройка весов скрытого слоя

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

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

    С помощью векторных обозначений операция обратного распространения ошибки может быть записана значительно компактнее. Обозначим множество величин δ выходного слоя через D k и множество весов выходного слоя как массив W k . Чтобы получить D j , δ-вектор выходного слоя, достаточно следующих двух операций:

    1. Умножить о-вектор выходного слоя D k на транспонированную матрицу весов W ’ k , соединяющую скрытый уровень с выходным уровнем.

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

    В символьной записи

    D j = D k W ’ k $[0 j $(I – 0 j )], (3.8)

    где оператор $ обозначает покомпонентное произведение векторов, О j – выходной вектор слоя j и I – вектор, все компоненты которого равны 1.

    3.4.2.3 Проблемы обучения нейросетей обратного распространения

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

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

    Обратное распространение использует разновидность градиентного спуска, т. е. осуществляет спуск вниз по поверхности ошибки, непрерывно подстраивая веса в направлении к минимуму. Поверхность ошибки сложной сети сильно изрезана и состоит из холмов, долин, складок и оврагов в пространстве высокой размерности. Сеть может попасть в локальный минимум (неглубокую долину), когда рядом имеется гораздо более глубокий минимум. В точке локального минимума все направления ведут вверх, и сеть неспособна из него выбраться. Статистические методы обучения могут помочь избежать этой ловушки, но они медленны. В [8] предложен метод, объединяющий статистические методы машины Коши с градиентным спуском обратного распространения и приводящий к системе, которая находит глобальный минимум, сохраняя высокую скорость обратного распространения.

    Внимательный разбор доказательства сходимости в [9] показывает, что коррекции весов предполагаются бесконечно малыми. Ясно, что это неосуществимо на практике, так как ведет к бесконечному времени обучения. Размер шага должен браться конечным, и в этом вопросе приходится опираться только на опыт. Если размер шага очень мал, то сходимость слишком медленная, если же очень велик, то может возникнуть паралич или постоянная неустойчивость. В [10] описан адаптивный алгоритм выбора шага, автоматически корректирующий размер шага в процессе обучения.

    Если сеть учится распознавать буквы, то нет смысла учить «Б», если при этом забывается «А». Процесс обучения должен быть таким, чтобы сеть обучалась на всем обучающем множестве без пропусков того, что уже выучено. В доказательстве сходимости [9] это условие выполнено, но требуется также, чтобы сети предъявлялись все векторы обучающего множества прежде, чем выполняется коррекция весов. Необходимые изменения весов должны вычисляться на всем множестве, а это требует дополнительной памяти; после ряда таких обучающих циклов веса сойдутся к минимальной ошибке. Этот метод может оказаться бесполезным, если сеть находится в постоянно меняющейся внешней среде, так что второй раз один и тот же вектор может уже не повториться. В этом случае процесс обучения может никогда не сойтись, бесцельно блуждая или сильно осциллируя. В этом смысле обратное распространение не похоже на биологические системы.

    3.4.2.4 Другие алгоритмические разработки

    Добавление нейронного смещения. Во многих случаях желательно наделять каждый нейрон обучаемым смещением. Это позволяет сдвигать начало отсчета логистической функции, давая эффект, аналогичный подстройке порога персептронного нейрона [2], и приводит к ускорению процесса обучения. Эта возможность может быть легко введена в обучающий алгоритм с помощью добавляемого к каждому нейрону веса, присоединенного к+1. Этот вес обучается так же, как и все остальные веса, за исключением того, что подаваемый на него сигнал всегда равен +1, а не выходу нейрона предыдущего слоя.

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

    Δw pq,k (n+1)= η δ q,k OUT p,j + a Δw pq,k (n) (3.9)

    w pq,k (n+1) = w pq,k (n) + Δw pq,k (n+1) (3.10)

    где a – коэффициент импульса, обычно устанавливается около 0,9.

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

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

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

    В [12] описан привлекательный метод улучшения характеристик обучения сетей обратного распространения. В работе указывается, что общепринятый от 0 до 1 динамический диапазон входов и выходов скрытых нейронов неоптимален. Так как величина коррекции веса Δw pq,k пропорциональна выходному уровню нейрона, порождающего OUT p,j , то нулевой уровень ведет к тому, что вес не меняется. При двоичных входных векторах половина входов в среднем будет равна нулю, и веса, с которыми они связаны, не будут обучаться! Решение состоит в приведении входов к значениям ±½ и добавлении смещения к сжимающей функции, чтобы она также принимала значения ±½. Новая сжимающая функция выглядит следующим образом:

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

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

    3.4.3 Применения нейросетей обратного распространения

    Обратное распространение было использовано в широкой сфере прикладных исследований. Фирма NEC в Японии объявила, что обратное распространение было ею использовано для визуального распознавания букв, причем точность превысила 99%. Это улучшение было достигнуто с помощью комбинации обычных алгоритмов с сетью обратного распространения, обеспечивающей дополнительную проверку.

    В работе [14] достигнут впечатляющий успех с Net-Talk, системой, которая превращает печатный английский текст в высококачественную речь. Магнитофонная запись процесса обучения сильно напоминает звуки ребенка на разных этапах обучения речи.

    В [15] обратное распространение использовалось в машинном распознавании рукописных английских слов. Буквы, нормализованные по размеру, наносились на сетку, и брались проекции линий, пересекающих квадраты сетки. Эти проекции служили затем входами для сети обратного распространения. Сообщалось о точности 99,7% при использовании словарного фильтра.

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

    4 ПРОГНОЗИРОВАНИЕ КАК ЗАДАЧА РАСПОЗНАВАНИЯ ОБРАЗОВ


    4.1 Задача распознавания образов

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

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

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

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

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

    4.2 Метод windowing

    Задача прогнозирования, рассмотренная ранее в разделе 1 и 2 может быть сведена к задаче распознавания образов, описанной выше, для этого применяется метод окон (метод windowing).

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

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

    5 РАЗРАБОТКА ПРОГРАММНОЙ СИСТЕМЫ ПРОГНОЗИРОВАНИЯ ВРЕМЕННЫХ РЯДОВ


    5.1 Обзор объектно-ориентированного программирования в Delphi

    Большинство современных языков программирования поддерживают концепцию объектно-ориентированного программирования (ООП). Эта концепция базируется на основных понятиях: классы, объекты, сообщения, наследование и полиморфизм (или позднее связывание). Среда программирование Delphi 5 [17] использует объектно-ориентированный язык Object Pascal.

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

    Объект (object) есть экземпляр класса или, другими словами, переменная, тип которой является класс. Объекты, в отличие от классов реальны в том смысле, что во время выполнения программы они хранятся в памяти.

    Класс может иметь любое число полей и методов. Однако хороший стиль ООП требует, чтобы данные в классах были инкапсулированы (скрыты). Для доступа к внутренним данным объекта нужно использовать методы — это уменьшает шансы появления ошибочной ситуации, а также позволяет автору класса модифицировать его структуру в следующих версиях. Концепция инкапсуляции весьма проста: нужно просто думать о классе как о «черном ящике» с очень маленькой видимой частью. Эта видимая часть называется интерфейсом класса и позволяет получать доступ к данным объектов этого класса остальным частям программы. Для доступа к внутренним данным используются методы — этот подход в концепции ООП называют разграничением информации. Object Pascal заимствовал из C++ три спецификатора доступа: privat (информация доступна только для методов самого класса), protected (доступ разрешен для методов класса и его потомков) и publuc (всеобщий доступ). Есть также спецификатор published, который имеет специальное применение в Delphi.

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

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

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

    Delphi содержит множество стандартных подпрограмм, но еще больше и важнее имеющаяся библиотека классов VCL (Visual Component Library, библиотека визуальных компонентов), которая имеет иерархическую структуру (иерархия классов). Каждый класс этой иерархии является наследником класса TObject, который является корнем иерархии, что позволяет использовать тип TObject в качестве замены для типа данных любого системного класса. Такая иерархическая структура удобна для программиста и позволяет быстро разрабатывать приложения.

    5.2 Объектно-ориентированный анализ задачи прогнозирования на искусственных нейронных сетях


    5.2.1 Графический пользовательский интерфейс приложения

    Для удобного обращения с создаваемой прогнозируемой системой необходимо разработать удобный и понятный графический интерфейс (см. рисунок 5.1), который должен позволять вводить различные входные данные, управлять работой программы и в удобной форме выводить результат. Все эти действия должны совершаться на форме (окне Windows), поэтому будем использовать объект класса TForm1, наследуемый от базового класса форм TForm.

    В поставленной задаче (см. раздел 1), зная алгоритм ее решения (см. раздел 3), выделим входные и выходные данные, а также проанализируем и определим их, используя объектно-ориентированные возможности VCL.

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

    Для задания параметров искусственной нейронной сети обратного распространения поместим на главную форму визуальный компонент класса TSpinEdit (для задания количества слоев в нейронной сети), визуальный компонент класса TStringGrid (для задания количества нейронов в каждом слое нейронной сети).

    Для задания параметров алгоритма обратного распространения (см. п. 3.4) и метода windowing (см. п. 4.2) поместим на форму следующие визуальные компоненты: три компонента TSpinEdit для задания размера входного окна (выходное окно будет иметь единичный размер в нашем приложении), для указания количества элементов временного ряда для анализа (на этих элементах нейронная сеть будет обучаться) и для задания количества элементов временного ряда, которые нужно спрогнозировать; два компонента TEdit для задания погрешности обучения нейросети и для задания шага скорости обучения (см. 3.4.2.2.1). Кроме того, поместим на форму переключать, указывающий на необходимость выполнения нормализации временного ряда перед обучением, группу радиокнопок, определяющих тип результирующего прогноза, а также кнопку для запуска процесса обучения и кнопку для выполнения заданного типа прогноза. Для удобного анализа прогноза поместим на форму компонент TeeChart, инкапсулирующий возможность построения диаграмм.

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

    5.2.2 Моделирование нейронной сети обратного распространения

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

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

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

    Операционная система Windows 98 является многозадачной операционной системой, поэтому можно было бы класс нейрона сделать наследником класса TThread, создать нить для каждого объекта этого класса, и таким образом промоделировать параллельность работы нейрона в рамках операционной системы Windows 98. На самом же деле все расчеты будут выполняться на одном процессоре (если, конечно, нет многопроцессорной системы), и поэтому нити будут получать процессорное время последовательно, а значит, нет большой необходимости создавать нити, тем более, что в большинстве случаев возникают дополнительные трудности с распараллеливанием: синхронизация вычислений, и такие приложения зачастую на одном процессоре работают медленнее чем последовательные аналогичные алгоритмы, выполняющиеся в одной задаче.

    Поэтому, после ряда опытов, было принято решение о создании класса, инкапсулирующего нейросеть обратного распространения вцелом. Этот класс назван TBackPropagation и помещен в модуль bkpropag.pas. Объект этого класса будет моделировать работу нейросети в создаваемой системе прогнозирования. Следует отметить, что эти объекты можно использовать и для других задач, требующих применение нейросетей обратного распространения (класс оптимизирован именно для задачи прогнозирования), при этом нет необходимости в написании программного кода моделирования нейросети, так как он уже инкапсулирован в классе TBackPropagation, и если нужно добавить что-либо к нейросети, то можно воспользоваться наследованием (см. п.5.1).

    5.2.2.1 Константы и типы модуля bkpropag

    Для корректной работы объекта класса TBackPropagation необходимы следующие константы и типы, которые описаны в интерфейсной части модуля bkpropag (см. приложение А):

    · MAXLAYERS=300 — максимальное количество слоев в нейросети;

    · MAXVES=300 — максимальное количество нейронов в слое;

    · MAXINPUT=300 — максимальное количество входов нейросети;

    · MAXTRAND=300 — максимальное количество элементов во временном ряду;

    · TVesCountNeuro — тип количества нейронов в слоях;

    · TVesNeuro — тип значений весов нейросети;

    · TTrend — временной ряд;

    · TOutPromezh — промежуточные выходные сигналы в нейросети.

    5.2.2.2 Описание класса TBackPropagation

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

    · fCountLayer:word — количество слоев в нейросети;

    · fArrayVesCount:TvesCountNeuro — количество нейронов в слоях;

    · fArrayVes:TvesNeuro — значения весов нейросети;

    · fXCount:word — количество входных сигналов;

    · fY:double — выходной сигнал нейросети;

    · fCountTrend:word — количнство чисел во временном ряду;

    · fTrend:Ttrend — временной ряд ;

    · fYPromezh:ToutPromezh — промежуточные выходные сигналы;

    · procedure RandomVes — задание весов случайным образом;

    · function activation (g:double):double — функция активации ;

    · function activation_diff(g:Double):double — производная функции активации .

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

    Функция SetArrayVesCount задает количество нейронов в слоях и возвращает true при правильной работе, она имеет такие параметры: Count содержит количество слоев нейросети; Xcount равняется количеству входных сигналов для нейросети; AVC типа TVesCountNeuro задает количество нейронов в каждом слое. Функция GetArrayVesCount возвращает результат типа T V esCountNeuro, который содержит массив количества нейронов в слоях нейросети, кроме того, в параметре Count возвращается количество слоев, в параметре X C ount количество входных сигналов.

    Функция SetTrend задает обучающее множество (временной ряд) и возвращает true при правильной работе, параметр Count содержит количество элементов для обучения, параметр ST типа T T rend задает массив элементов обучающего множества. Функция GetTrend возвращает массив элементов обучающего множества, а также в параметре Count возвращается количество этих элементов.

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

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

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

    5.2.3 Диаграмма классов и шаблон основного класса

    Существует несколько графических способов представлять результаты объектно-ориентированного проектирования программы. В нашем случае рассмотрим графическую нотацию предложенную Гради Бучем [18]. На рисунке 5.2 приводится диаграмма классов во Гради Бучу.

    Рисунок 5.2 — Диаграмма классов

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

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

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

    Имеется много впечатляющих демонстраций возможностей искусственных нейронных сетей: сеть научили превращать текст в фонетическое представление, которое затем с помощью уже иных методов превращалось в речь [14]; другая сеть может распознавать рукописные буквы [15]; сконструирована система сжатия изображений, основанная на нейронной сети [16]. Все они используют сеть обратного распространения – наиболее успешный, по-видимому, из современных алгоритмов.

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

    Однако, обратное распространение не свободно от проблем. Прежде всего, нет гарантии, что сеть может быть обучена за конечное время. Много усилий, израсходованных на обучение, пропадает напрасно после затрат большого количества машинного времени. Когда это происходит, попытка обучения повторяется – без всякой уверенности, что результат окажется лучше. Нет также уверенности, что сеть обучится наилучшим возможным образом. Алгоритм обучения может попасть в «ловушку» так называемого локального минимума и будет получено худшее решение.

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

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

    Нейронные сети в сфере валютного рынка

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

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

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

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

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

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

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

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

    Прогнозирование курса валюты с помощью нейронных сетей Текст научной статьи по специальности « Экономика и экономические науки»

    Аннотация научной статьи по экономике и экономическим наукам, автор научной работы — Фёдорова Е.А., Линкова М.А.

    В статье представлено сравнение методик прогнозирования курса валюты доллара США и евро на основе нейронных сетей и GARCH-методологии. Прогнозирование методом нейронных сетей для доллара имеет 89% предсказательной способности, для евро 91%.

    Похожие темы научных работ по экономике и экономическим наукам , автор научной работы — Фёдорова Е.А., Линкова М.А.,

    Текст научной работы на тему «Прогнозирование курса валюты с помощью нейронных сетей»

    ПРОГНОЗИРОВАНИЕ КУРСА ВАЛЮТЫ С ПОМОЩЬЮ НЕЙРОННЫХ СЕТЕЙ

    доктор экономических наук, доцент кафедры финансового менеджмента

    аспирантка кафедры финансового менеджмента

    E-mail: m_linkova@mail. ru Финансовый университет при Правительстве Российской Федерации

    В статье представлено сравнение методик прогнозирования курса валюты — доллара США и евро -на основе нейронных сетей и GARCH-методологии. Прогнозирование методом нейронных сетей для доллара имеет 89 % предсказательной способности, для евро — 91 %%.

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

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

    Прогнозирование необходимо во всех сферах управления и на любых уровнях деятельности. Задача прогнозирования динамики индекса — курсов доллара США и евро как всемирных эквивалентов -является актуальной.

    Изменения валютных курсов очень сложно предсказать в связи с их зависимостью от поли-

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

    Последние достижения в области как аналитических, так и вычислительных методов значительно упростили эмпирические исследования нелинейных моделей и привели к появлению многочисленных аналитических подходов в данной области, существенно увеличив число методов прогнозирования валютных курсов: регрессионный анализ и нейронные сети [6, с. 71-84], GARCH-модели [1, с. 307-327], рекурсивные модели нейронных сетей [5, с. 477487] и др.

    Зависимости котировок валюты от предыдущего курса исследовали многие аналитики: В. П. Бауэр, А. Н. Киреев [3, с. 488], А. Н. Фомин [11, с. 16] и т. д. Как известно, во второй половине XX в. появились методы прогнозирования, идентификации, которые основаны на достижениях нейробиологии. Целью данной работы является разработка методов прогнозирования валютных курсов с помощью многослойных нейронных сетей в среде MatLab Simulink и Deductor Studio Academk и сопоставление с методами GARCH-моделирования.

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

    Как и в большинстве стран, валютный рынок РФ имеет свои особенности и перспективы. Проведем анализ волатильности курса доллара и евро по отношению к рублю. На графике (см. рисунок) представлено изменение курса валют с января 2007 г. по октябрь 2012 г. [8].

    Как видно из приведенного графика, резкий рост стоимости доллара с 23 руб. до 35 и евро с 34 руб. до 46 меньше чем за полгода в 2008-2009 гг. нельзя назвать малозаметным, как и снижение цен на них с 35 до 28 руб. и с 46 до 37 руб. соответственно. С другой стороны, за последние 10 лет курс доллара практически не изменился: в июне 2002 г. в России он составлял в среднем 31,4 руб., хотя евро за то же время вырос с 30 руб. на 35 %. Бивалютная корзина (доли доллара и евро в ней составляют соответственно 55 и 45 %), являющаяся ориентиром Банка России

    в монетарной политике, подорожала с 30,8 до 35 руб., или примерно на 17 % всего за 10 лет [9].

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

    На волатильность валюты в 2007-2012 гг. повлияли мировой финансовый кризис, природные катастрофы, стихийные бедствия, смена власти в Египте, Тунисе, Ливии и авария на АЭС Фукуси-ма-1. Ведущие обозреватели отмечают, что в 2010 г. российский фондовый рынок восстанавливался после мирового финансового кризиса в условиях благоприятной конъюнктуры, внешних условий в реальном секторе национальной экономики РФ и оживления внешнего рынка.

    В 2011 г. произошли существенные проблемы в зоне евро, понижение рейтинга Италии, вследствие чего инвесторы выводили активы из рискованных вложений в безопасные инвестиции, увеличивался спрос на доллар США, швейцарский франк и японскую иену. В конце 2011 г., по данным Центрального банка РФ, установился дисбаланс спроса и предложения иностранной валюты на российском валют-

    Изменение курса доллара и евро за 2007-2012 гг.

    Характеристика и причины изменения курса доллара и евро за 2007-2012 гг. в России

    Диапазон дат Изменения Характеристика Причина изменения курса валюты

    09.01.2007-09.07.2008 26,451-23,421 Плавное удешевление, за 2 года практически незаметное —

    09.07.2008-05.03.2009 23,421-35,890 Очень резкий рост цен на доллар Начало мирового финансово-экономического кризиса

    05.03.2009-12.11.2009 35,890-28,702 Достаточно резкое удешевление Мировой финансово-экономический кризис

    12.11.2009-11.01.2011 28,702-30,637 Плавный, едва заметный рост цен на доллар В результате природных катастроф и стихийных бедствий экономика потерпела ущерб на 180 млрд евро

    11.01.2011-09.08.2011 30,637-29,606 Стабильное положение рубля по отношению к доллару

    09.08.2011-06.10.2011 29,606-32,464 Плавный рост цен на доллар «Арабская весна», смена власти в Египте, Тунисе, Ливии, масса переселенцев-беженцев. Проблемы в Еврозоне, понижение рейтинга Италии. Авария на АЭС в Фукусиме. Уничтожение диктатора и террориста № 1

    06.10.2011-12.05.2012 32,464-30,178 Плавное удешевление доллара

    12.05.2012-09.06.2012 30,178-32,761 Плавный рост цен на доллар

    09.01.2007-09.09.2008 34,497-36,103 Плавное подоражание, за 2 года практически незаметное —

    09.09.2008-01.11.2008 36,103-34,338 Достаточно резкое удешевление Начало мирового финансово-экономического кризиса

    01.11.2008-09.02.2009 34,338-46,596 Очень резкий рост цен на евро Мировой финансово-экономический кризис

    09.02.2009-08.06.2010 46,596 — 37,833 Достаточно резкое удешевление евро В результате природных катастроф и стихийных бедствий экономика потерпела ущерб на 180 млрд евро

    08.06.2010-09.11.2010 37,833-42,765 Резкое подорожание

    09.11.2010-08.02.2011 42,765-39,869 Плавное снижение цен на евро «Арабская весна», смена власти в Египте, Тунисе, Ливии, масса переселенцев-беженцев. Проблемы в Еврозоне, понижение рейтинга Италии. Авария на АЭС в Фукусиме. Уничтожение диктатора и террориста № 1

    08.02.2011-03.08.2011 39,869-39,653 Стабильное положение рубля по отношениею к евро

    03.08.2011-13.10.2011 39,653-42,976 Плавный рост цен на евро

    ном рынке при отсутствии тенденции к укреплению или ослаблению отечественного рубля.

    Разработанный в данной статье прогноз методом искусственных нейронных сетей (ИНС) был применен для ежедневных обменных курсов доллара и евро посредством инструмента анализа «Нейросеть» аналитической платформы Deductor Studio и Matlab Simulink. Действительно значимыми для прогнозирования являются изменения котировок, а не сами котировки. Это и послужило входными данными для обучения ИНС. Путем тестирования оптимальной выбрана структура многослойной нейронной сети, содержащей три слоя: в первом — три нейрона, во втором — два, в третьем — два. Используя прогнозы на основе ИНС, попытаемся включить структурную информацию в непараметрический анализ.

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

    России в 12:00 (по московскому времени) [7]. Период выборки длится с 1 января 2011 г. по 31 декабря 2011 г. Следует заметить, что анализ финансовых рядов нескольких стран требует специальной обработки для высокочастотных (ежедневных) данных. Наконец, отметим, что из данных были удалены праздничные дни, соответствующие изо дня в день рядам обменных курсов, и устранены наблюдения тех дней, в которые отсутствовали торги в любой из рассматриваемых стран.

    Как принято в литературе, эффективность прогнозирования первоначально измеряется с помощью и-статистики Тейла — резюмирующей, основанной на стандартной, симметрической функции потерь:

    где хт — реальное значение и xf — прогнозируемое значение [10, с. 383-392]. ‘

    Наглядно показывает эффективность авторских прогнозов и традиционной модели Garch табл. 2. В первом случае зависимые ряды валютных курсов получены методом моделирования ИНС. Как видно из табл. 1, U-статистика, полученная методом моделирования ИНС, меньше единицы, что является хорошим результатом. Статистика Тейлора позволяет сопоставить прогностические способности моделей. Если значение данной статистики меньше единицы, то анализируемая модель лучше по прогностическим способностям первоначальной «эталонной» модели [2, с. 51-61].

    Из анализа данных табл. 1 вытекает, что модель предиктора Garch всегда предлагает более высокую U-статистику (больше единицы), что говорит о недостатках Garch-моделирования. Статистика предиктора SNN свидетельствует о высоких прогнозных качествах модели линейного тренда.

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

    Для оценки качества модели прогноза локальных предикторов, прогнозов, полученных методом нейросетевого программирования и GARCH, авторы использовали тест на безразмерный коэффициент детерминации (coefficient of determination) R2:

    Таблица 2 Точность прогноза (U-статистика)

    Валюта Предиктор SNN* Предиктор Garch

    Доллар (временной ряд, используемый для установления происходящих аналогов предикторов ИНС) 0,613 1,658

    * SNN — Нейронные сети STATISTICA Neural Networks — программный продукт для нейросетевых исследований.

    Направленные прогнозы (процент правильного направления прогноза)

    X к -м& ])2 х к — ъ )2

    X (Ук -мк ])2 X к -мк])2

    где М — оператор математического ожидания

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

    Из полученных результатов следует, что предложенная модель для предиктора ИНС применительно к доллару объясняет 89 % имеющихся реальных данных, к евро — 91 %. Минимальным допустимым значением, лимитом точности моделирования, оцениваемым проанализированным коэффициентом детерминации, как правило, считают 70-75 %. Таким образом, предложенная модель в целом является достаточно точной и адекватной, а некоторая неверность прогноза объясняется описанными ранее волнениями 2011 г., зарегистрированными на валютном рынке.

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

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

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

    Валюта Предиктор Предиктор

    ИНС Garch (1, 1, 0)

    Доллар (временной ряд, ис- 66,49 52,19

    пользуемый для установле-

    ния происходящих аналогов

    Валюта Коэффициент детерминации R2 предиктора SNN Коэффициент детерминации предиктора GARCH

    в большинстве случаев прогнозирование методом моделирования ИНС для доллара объясняет 89 % имеющихся реальных данных, для евро — 91 %.

    Эти результаты доказывают важность прогнозирования валютного курса [10]. Оптимальным и наиболее эффективным среди рассмотренных был признан метод прогнозирования с использованием нейросетевых технологий аналитической платформы Deductor Studio и Matlab Simulink.

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

    1. Боллерслев T. Обобщенная авторегрессионная условная гетероскедастичность // Эконометрика. 1986. № 31.

    2. Вайд В. Влияние правила Тейлора на отклонения реального валютного курса // Международный периодический журнал экономики и финансов. 2007. № 24.

    3. КиреевА. Н. Международная макроэкономика. Международная экономика и макроэкономическое программирование. Ч. 2. М.: Международные отношения, 2001.

    4. Паклин Н. Б., Орешков В. И. Бизнес-аналитика: от данных к знаниям. СПб: Питер, 2012.

    5. Париси A., Париси Ф., Диаз Д. Прогнозирование изменений цены на золото: свернутые и регрессионные модели нейронных сетей // Журнал международного финансового менеджмента. 2008. № 18.

    6. Преминджер A., Франк Р. Прогнозирование обменных курсов // Международный журнал прогнозирования. 2007. № 23.

    7. Сайт Центрального банка РФ. База данных по курсам валют. URL: http://www. cbr. ru/currency_ base/dynamics. aspx?VAL_NM_RQ=R01235&date_r eq1=01.01.2009&r1=1&date_req2=31.12.2011&C_ month=12&C_year=2011&rt=2&x=43&y=13&mode =2.

    8. Сайт Центрального банка РФ. Динамика официального курса заданной валюты URL: http:// www. cbr. ru/currency_base/dynamics. aspx.

    9. Сайт Центрального банка РФ. Состояние внутреннего финансового рынка URL: http://www. cbr. ru/analytics/fm_r/fm_m/ni0_fm_m. htm.

    10. Фернандес-Родригес Ф., Сосвилла-Риверо С., Андрэда-Феликс Д. Прогнозирование валютного курса методами ближайшего соседнего: обоснования EMS // Международный журнал прогнозирования. 1999. № 15.

    11. Фомин А. Н. Методики прогнозирования динамики биржевого индекса. М., 2010.

    Издательский дом «ФИНАНСЫ и КРЕДИТ» выпускает специализированные финансово-экономические и бухгалтерские журналы, а также оказывает услуги по изданию монографий, деловой и учебной литературы.

    Нейронная программа для прогнозирования

    К странице.
    Страница 1 из 2 1 2 >

    Позвольте представиться, меня зовут Березовский Александр, возраст 36 лет, имею два высших образования.
    В течении 4-х лет я разрабатывал программу с использованием нейронных сетей для прогнозирования результатов спортивных состязаний, за это время в проект вложено более 5 млн. рублей, привлечены профессиональные программисты и научные сотрудники математических факультетов ведущих вузов России. Результатом является программа прогнозирования с точностью 95%.
    «Пришло время собирать камни»
    Ввиду того, что во всех букмекерских конторах есть ограничения по суммам ставок и количеству счетов, принято решение о привлечении в проект партнеров.
    Схема партнерства:
    1. ПАРТНЕР регистрирует и открывает на свое имя счет в указанной букмекерской конторе и вносит на свой счет оговоренную сумму инвестиций (Ввод и вывод денежных средств производится ТОЛЬКО по ФИО, наименованию и реквизитам владельца счета с использованием СМС-паролей).
    2. ПАРТНЕР предоставляет мне логин и пароль от игрового счета для организации ставок на спортивные мероприятия, самостоятельная работа на данном счете ЗАПРЕЩАЕТСЯ.
    3. Ежедневно программа дает прогноз на исход от 1-го до 5 спортивных событий, со средним коэффициентом 1,4. Таким образом, ежедневно инвестиции на игровом счету ПАРТНЕРА дают от 40 до 200%% прибыли.
    4. ПАРТНЕР ежедневно выводит полученную прибыль и 50% переводит по указанным мною реквизитам. Только после получения мной доли прибыли с игрового счета, производятся следующие ставки.

    КАК ПРОВЕРИТЬ РАБОТОСПОСОБНОСТЬ ПРОГРАММЫ?
    • Реализовать 1 и 2 пункт партнерства с суммой на игровом счету от 50 до 200 рублей. Ограничение проверки 10 спортивных мероприятий.

    Если у Вас остались вопросы или есть предложения, пишите.

    Воскрешение нейросетей для трейдинга

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

    В этом нет ничего странного, для трейдеров это новая, а вернее забытая старая надежда, которая была популярна в докризисные годы. Такие программы как neuroshell, neurosolutions были очень популярны в среде трейдеров. Однако, не стоит обольщаться на тему использования нейросетей для торговли на рынке форекс или бирже – звучит заманчиво, наукообразно, затягивает, но в целом бесполезно и вот почему.

    Что нужно искать на рынке с помощью нейросетей?

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

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

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

    Кстати, многие пропагандируют идею о том, что можно натравить нейросеть на данные, а она, что-то найдёт сама – это называется подгонкой. Нейросеть сгенерирует красивые картинки на истории, но поскольку паттерна в реальности не существует и это подгонка, то результат в реальности сразу будет убыточным. Откуда я все это знаю? Я занимался нейросетями до 2008 года, у нас даже были некоторые успехи по распознанию паттернов. Но поскольку стабильно существующих прибыльных паттернов на длительной истории просто нет, мы отказались от нейросетей.

    Когда уместно использовать нейросети?

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

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

    Как же можно использовать нейросети?

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

    1. Возьмём «условный флаг». Если флаг имеет положительную статистику на протяжении длительного времени, то можно научить нейросеть находить любые флаги. Но если этот паттерн убыточен, то какой в этом смысл? Вы, наверное, думаете, что мой то паттерн – прибыльный! Ну это чаще не так, если посчитать статистику, то вы узнаете, как на самом деле. Если вы используете прибыльный паттерн/ситуацию – поздравляю, но если у вас нет даже статистики, то на что расчёт?
    2. Более сложная ситуация: выход положительного NFP + цена в определённой области канала, а волатильность такая-то. Статистически при таком раскладе рынок делает достаточное для прибыли движение. Если ли смысл использовать нейросеть? Возможно да, особенно если определение такого паттерна имеет в основе нечёткую логику и весовые коэффициенты.

    Что является прогнозируемым и предсказуемым?

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

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

    Почему другие зависимости не имеют значения для рынка?

    Почему другие зависимости не имеют значения для рынка, например, некая условная вероятность? Потому, что вы просто не сможете извлечь прибыль. Ну представьте себе, что в сентябре месяце у вас есть вероятность сбора урожая равной ¼. Это значит, что только в один год из четырех вы сможете собрать яблоки, причём вы не знаете в какой именно год. Стоит ли на этом выстраивать бизнес — НЕТ! Аналогия уместна и на рынке – да, действительно существует некие условности и некие ситуации в которых если наступает событие, то вслед за ним с некой слегка отличной от ½ вероятностью наступает желаемое движение или событие на рынке. На этом просто нельзя заработать денег.

    Выводы:

    • Нейросети хорошо классифицируют ситуации, паттерны.
    • Если нет связи между прошлым и будущим, то ни нейросети, ни человек не могут прогнозировать будущее.
    • Связь между прошлым и будущим – это или наличие тренда в ряде данных или наличие цикличности в ряде данных.
    • Если в вашем наборе данных нет паттернов или они не значимы, то их нет смысла использовать. Есть ли у вас исторические симуляции, например, как вот эти, за 10-20 лет? Кстати, вы можете открыть статистики фондов и посмотреть, что у множества именно подобные результаты. Может стоит использовать то, что работает и делать как фонды, то есть — инвестировать ?
    • Ну, а если вера ваша сильна и по вашему скромному мнению рынок определяется кукловодами, то просто посчитайте статистику за несколько лет, форекс головного мозга излечивается именно так.

    Успешного заработка с помощью рынка!

    Нейросети и их применение на рынке Форекс

    Развитие технологий порождает создание «умных» интеллектов, активно использующихся практически повсеместно. Торговля на финансовых рынках – не исключение. Яркими тому примерами являются торговые советники и иные алгоритмические системы, освобождающие трейдера от работы и приносящие ему иногда неплохой заработок. Одной из последних «новинок» в области Форекс являются нейросети, активно использующиеся трейдерами при работе на финансовых рынках. Что это такое, и каким образом их использование способно помочь трейдеру в торговле, попробуем разобраться в нашей статье.

    Суть нейросетей

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

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

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

    Связь нейросетей с Форексом

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

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

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

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

    Преимущества и недостатки нейросетей

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

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

    Выводы

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

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

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

    Другие интересные статьи:

    Индикаторы-предсказатели

    #1 — 1 сентября 2012 в 16:16
    #2 — 1 сентября 2012 в 16:20
    CTGStructurex_gp3fa.rar | 17.67 Кб | Скачали: 1874
    CTGStructurex_gp3fa.gif | 17.58 Кб | Скачали: 1884
    #3 — 1 сентября 2012 в 17:26
    #4 — 2 сентября 2012 в 09:02
    #5 — 15 сентября 2012 в 11:14

    Очень интересный индикатор для тех, кто пользуется анализом японских свечей, индикатор CandleStick_Pattern_indicator подписывает появившиеся сочетания

    #6 — 21 сентября 2012 в 09:18
    #7 — 28 сентября 2012 в 17:50
    BubbleAndDrops_porsj.mq4 | 2.38 Кб | Скачали: 964
    #8 — 28 сентября 2012 в 18:51
    #9 — 28 сентября 2012 в 19:02
    #10 — 28 сентября 2012 в 19:09
    Fourierextrapolator_porsj.mq4 | 5.75 Кб | Скачали: 1488
    #11 — 28 сентября 2012 в 19:15
    #12 — 28 сентября 2012 в 19:33
    #13 — 29 сентября 2012 в 18:48

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

    Параметр CandleBody определяет цвет «тела» и «теней» свечи.
    Параметр «BullCandle» определяет цвет восходящей «бычьей» свечи, а «BearCandle», соответственно, нисходящей «медвежьей».
    Имейте в виду, что при использовании белого фона экрана с черными свечами значения цветов следует поменять на противоположные.
    Также, значение первого параметра желательно сделать потемнее, например красным.
    И, наконец, последнее значение, «IndicatorNameView», позволяет вкл/откл в верхней части экрана название индикатора. По умолчанию отключено.

    #14 — 29 сентября 2012 в 19:23
    #15 — 30 сентября 2012 в 16:02

    BPNN!
    Предсказатель на основе самообучающейся нейронной сети.
    Предлагается индикатор использующий нейронную сеть прямого распространения (feedforward neural network), которая самообучается методом Обратного Распространения Ошибки (backpropagation).
    Сеть загружается через DLL файл, исходный C++ код которого прилагается.
    Нейронная сеть это ничто иное как нелинейная модель выходов как функция входов. На входы подаются данные задаваемые пользователем, например выборки временного ряда. Смысл выходных
    данных также задаётся пользователем, например сигналы 1=buy/0=sell. Структура сети опять же задаётся пользователем. Сеть прямого распространения состоит из
    -входного слоя (input layer), элементами которого являются входные данные,
    — скрытых слоёв (hidden layers), состоящих из вычислительных узлов называемых нейронами (neurons) и
    — выходного слоя (output layer), который состоит из одного или нескольких нейронов, выходы которых являются выходами всей сети.
    Все узлы соседних слоёв связаны между собой. Эти связи называются синапсами (synapses). Каждый синапс имеет вес (weight w[i,j,k]), на которой умножаются данные передаваемые по синапсу.
    Данные передвигается слева направа т.е. от входов сети к её выходам. Отсюда и название, «сеть прямого распространения».

    Смысл функции активации нейрона заключается в моделировании работы нейрона мозга: нейрон срабатывает только после того как информация достигла определённого порога. В математическом
    аспекте, эта функция как раз и придаёт нелинейность сети. Без неё, нейронная сеть была бы линейной авторегрессионной моделью (linear prediction model). В прилагаемых библиотечных функциях
    возможен выбор трёх функций активации нейрона
    * сигмоидальная функция sigm(x)=1/(1+exp(-x)) (#0)
    * гиперболический тангенс tanh(x)=(1-exp(-2x))/(1+exp(-2x)) (#1)
    * рациональная функция x/(1+|x|) (#2)

    Ладно не буду вас грузит! Короче в папке содержатся:
    Прилагаемые файлы:

    * BPNN.dll — библиотечный файл
    * BPNN.zip — архив всех файлов необходимых для создания ДЛЛ файла
    * BPNN Predictor.mq4 — индикатор предсказывающий будущее значение цены
    * BPNN Predictor with Smoothing.mq4 — индикатор предсказывающий будущее значение цены, сглаженной ЕМА

    BPNN Predictor.mq4 — предсказывает будущие цены. Входными параметрами сети являются относительные приращения цен:

    x=Open[test_bar]/Open[test_bar+delay]-1.0
    где delay берётся из ряда Фибоначи. Выходом сети является предсказываемое относительное приращение будущей цены. Фунцкия активации в выходном слое отключена.

    Индикатор выдаёт такую картинку(скрин №1), где

    * красный цвет — предсказания от последней цены Open
    * чёрный цвет — прошлые тренировочные цены Open, по котором (как ожидаемым выходным данным) проводилось обучение сети
    * синий цвет — выходы обученной сети на тренировочных данных

    BPNN Predictor with Smoothing.mq4 — тоже предсказывает цены, (скрин №2), но с предварительным сглаживанием цен экспоненциальной скользящей средней (EMA) с периодом smoothPer.

    1. Копируйте приложенный BPNN.DLL файл в C:\Program Files\MetaTrader 4\experts\libraries
    2. Включайте использование DLL в метатрейдере: Tools — Options — Expert Advisors — Allow DLL imports
    Если приложенный DLL файл не работает, то компилируйте сами. Все необходимые файлы содержатся в BPNN.zip.

    BPNN_3e8p0.zip | 70.18 Кб | Скачали: 1252
    #16 — 30 сентября 2012 в 17:49
    SultonovPrediction3_3e8p0.zip | 37.25 Кб | Скачали: 966
    #17 — 1 октября 2012 в 09:52

    Индикатор Xprofunder

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

    Xprofuterdd_mlgjm.zip | 1.31 Кб | Скачали: 896
    #18 — 1 октября 2012 в 10:04

    Индикатор Mtf_candles

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

    mtfcandles_mlgjm.mq4 | 2.01 Кб | Скачали: 1138
    #19 — 13 октября 2012 в 18:55

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

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

    DRP2_kkcsm.rar | 0.85 Кб | Скачали: 1096
    #20 — 21 октября 2012 в 01:26

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

    Параметр CandleBody определяет цвет «тела» и «теней» свечи.
    Параметр «BullCandle» определяет цвет восходящей «бычьей» свечи, а «BearCandle», соответственно, нисходящей «медвежьей».
    Имейте в виду, что при использовании белого фона экрана с черными свечами значения цветов следует поменять на противоположные.
    Также, значение первого параметра желательно сделать потемнее, например красным.
    И, наконец, последнее значение, «IndicatorNameView», позволяет вкл/откл в верхней части экрана название индикатора. По умолчанию отключено.

    BPNN!
    Предсказатель на основе самообучающейся нейронной сети.
    Предлагается индикатор использующий нейронную сеть прямого распространения (feedforward neural network), которая самообучается методом Обратного Распространения Ошибки (backpropagation).
    Сеть загружается через DLL файл, исходный C++ код которого прилагается.
    Нейронная сеть это ничто иное как нелинейная модель выходов как функция входов. На входы подаются данные задаваемые пользователем, например выборки временного ряда. Смысл выходных
    данных также задаётся пользователем, например сигналы 1=buy/0=sell. Структура сети опять же задаётся пользователем. Сеть прямого распространения состоит из
    -входного слоя (input layer), элементами которого являются входные данные,
    — скрытых слоёв (hidden layers), состоящих из вычислительных узлов называемых нейронами (neurons) и
    — выходного слоя (output layer), который состоит из одного или нескольких нейронов, выходы которых являются выходами всей сети.
    Все узлы соседних слоёв связаны между собой. Эти связи называются синапсами (synapses). Каждый синапс имеет вес (weight w[i,j,k]), на которой умножаются данные передаваемые по синапсу.
    Данные передвигается слева направа т.е. от входов сети к её выходам. Отсюда и название, «сеть прямого распространения».

    Смысл функции активации нейрона заключается в моделировании работы нейрона мозга: нейрон срабатывает только после того как информация достигла определённого порога. В математическом
    аспекте, эта функция как раз и придаёт нелинейность сети. Без неё, нейронная сеть была бы линейной авторегрессионной моделью (linear prediction model). В прилагаемых библиотечных функциях
    возможен выбор трёх функций активации нейрона
    * сигмоидальная функция sigm(x)=1/(1+exp(-x)) (#0)
    * гиперболический тангенс tanh(x)=(1-exp(-2x))/(1+exp(-2x)) (#1)
    * рациональная функция x/(1+|x|) (#2)

    Ладно не буду вас грузит! Короче в папке содержатся:
    Прилагаемые файлы:

    * BPNN.dll — библиотечный файл
    * BPNN.zip — архив всех файлов необходимых для создания ДЛЛ файла
    * BPNN Predictor.mq4 — индикатор предсказывающий будущее значение цены
    * BPNN Predictor with Smoothing.mq4 — индикатор предсказывающий будущее значение цены, сглаженной ЕМА

    BPNN Predictor.mq4 — предсказывает будущие цены. Входными параметрами сети являются относительные приращения цен:

    x=Open[test_bar]/Open[test_bar+delay]-1.0
    где delay берётся из ряда Фибоначи. Выходом сети является предсказываемое относительное приращение будущей цены. Фунцкия активации в выходном слое отключена.

    Индикатор выдаёт такую картинку(скрин №1), где

    * красный цвет — предсказания от последней цены Open
    * чёрный цвет — прошлые тренировочные цены Open, по котором (как ожидаемым выходным данным) проводилось обучение сети
    * синий цвет — выходы обученной сети на тренировочных данных

    Нейронное прогнозирование для Форекс

    Вы загружаете изображение (например, скриншот) любого отрезка графика.

    Программа фиксирует текущий отрезок графика как базовый.

    Находит похожие отрезки в истории биржевой торговли.

    Показывает статистику дальнейшего движения графика.

    Самообучающаяся нейронная сеть

    Для анализа каждого графика Expatterns «просматривает» всю историю биржевой торговли по 2400 эмитентам начиная с 1970 года.

    Мы провели более 1000 тестов программы. Точность анализа составляет не менее 95%.

    Удобство и скорость

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

    Отличие от торговых роботов

    Expatterns — не робот. Трейдер самостоятельно принимает решение о покупке или продаже.

    Нейронное прогнозирование для Форекс

    Для этого я выбрал:
    1. Open BEAGLE — evolutionary computation framework.
    2. NeuroSolutions — neural network.

    Входные данные
    Первая проблема которая возникает это выбор входных данных для нейронной сети. Тут я пошел по пути наименьшего сопротивления. Было решено подавать на вход все данные, которые дает рынок в неискаженном виде. То есть цена открытия, закрытия, максимум, минимум и объем. Все эти данные представлены в виде логарифма относительного приращения log(C(t)/C(t+1)).

    Также на всякий случай для улавливания закономерностей были добавлены данные о дне недели и времени.

    Тут рассмотрим поиск стратегии на 3х барах. От одного бара 5 входов соответственно для 3х это 15 + день и время. Итого 17 входов для нейронной сети.

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

    И так простейшая сеть это всего 1 сигмоидальный нейрон. То есть входные данные передаются всего на один нейрон и на выходе получаем сигнал для торговли.

    Поиск
    Процесс поиска прост, перебираются варианты весов сети. Алгоритм был выбран CMA-ES. Для простейшей сети он подходит лучше всего. Функция оценки стратегии представляет из себя рост отхваченных пипсов за неделю. В борьбе с переоптимизацией решено тупо установить лимит профита. То есть если у рынка отхвачено больше 100 пипсов за неделю в течении года то эта стратегия хорошая.

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

    Тестирование
    Оптимизация проводится на тренировочном участке истории (Train). Для оценки пригодности сети используем форвард тест(CV). Период тестирования будет отображать реальную торговлю (Test).

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

    Инструмент: EURUSD
    Таймфрейм: H1
    История: 2009.12.21 -> 2011.02.28

    Делалась генерация 45 сетей. Из них выбирались самые прибыльные на участке форвард тестирования(CV). Ниже показаны по 3 самые-самые.

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

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

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

    Опции:
    Tarasp
    Статистик

    Зарегистрирован: 09/03/2007
    Сообщений: 413
    Нахождение: moscow

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: Aivenum]
    # 326995 — 02/03/2011 20:38
    Правка Ответ Цитата Быстрый ответ
    много перепробовал сетей и пришел к следующему выводу:

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

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

    ———————
    Усложнять — просто, упрощать — сложно.

    Опции:
    Aivenum
    Гость

    Зарегистрирован: 28/01/2010
    Сообщений: 10

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: Tarasp]
    # 327002 — 02/03/2011 22:49
    Правка Ответ Цитата Быстрый ответ
    По поводу торгового сигнала уточню. На выходе выходного нейрона проверяем если:
    1. сигнал >= 0.5 покупка
    2. сигнал = 0.2 завершаем short сделку
    4. сигнал

    Опции:
    fingoldo
    Свой человек

    Зарегистрирован: 03/05/2005
    Сообщений: 40

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: Aivenum]
    # 339713 — 26/07/2011 09:54
    Правка Ответ Цитата Быстрый ответ
    Ребят, добрый день.
    Я понял после нескольких лет периодических попыток использования ИНС для прогнозирования в общем-то простую вещь. 🙂
    Прежде чем применять какой-либо инструмент для прогноза (неважно, линейную регрессию или ИНС или нечёткую экспертную систему) на рядах данных, нужно убедиться, что между интересующими Вас переменными вообще есть зависимость. Иначе 100% «мусор на входе-мусор на выходе». Совет: смотрите в сторону теоретико-информационных методов (mutual information и производные).

    Опции:
    fingoldo
    Свой человек

    Зарегистрирован: 03/05/2005
    Сообщений: 40

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: fingoldo]
    # 339714 — 26/07/2011 10:02
    Правка Ответ Цитата Быстрый ответ
    А насчёт замечания Тараса о врЕменных «окнах», когда прогнозирование или классификация становятся возможны — тут можно применять коэффициент Хёрста, который показывает степень и характер предсказуемости временного ряда. Правда, он считается на основе только одного ряда, многомерных аналогов я не знаю..

    Опции:
    VovaM
    майор

    Зарегистрирован: 20/08/2003
    Сообщений: 2504

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: fingoldo]
    # 339775 — 26/07/2011 22:48
    Правка Ответ Цитата Быстрый ответ
    Все совершенно справедливо — для того что бы что то применять, нужно примерно понимать модель происходящего («почему», «откуда», «как»). Но когда вы ее поймете — для достижение главной цели — прибыли, нейросеть уже нафиг не нужна.

    ———————
    Все проблемы от того, что люди плохо фильтруют базар

    Опции:
    DXiT
    Свой человек

    Зарегистрирован: 18/02/2009
    Сообщений: 46

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: VovaM]
    # 339866 — 28/07/2011 01:28
    Правка Ответ Цитата Быстрый ответ
    Был преподаватель на кафедре, лекции нам читал по нейронным сетям и искусственному интеллекту, и «про между делом» диссер по данной теме защитил. Фанат своего дела! Так вот бился он пару лет с прикручиванием нейронных сетей для прогнозирования поведения цены на форексе, на выходе увы получил пшик. Кстати в книге Кац и МакКормик-а результаты применения НС при walk forward проверке оказались тоже весьма плачевными. Для себя сделал выводы о не применимости данных методов «в лоб».

    ———————
    Статистика — обоснованное отражение объективной реальности

    Опции:
    Dmitry_A_E
    Unregistered

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: Tarasp]
    # 339867 — 28/07/2011 02:30
    Правка Ответ Цитата Быстрый ответ
    Нейросеть это один из классов универсальных апроксиматоров (проще говоря подгонщик под оригинал). Видов сетей много. Видел отчеты о неплохих результатах тестингов в т.ч. на данных которые сеть не видела в процессе обучения, провести эксперимент самому пока не хватает времени. Лично я чесно говоря пока придерживаюсь мнения что неудачи с сетями в неучитывании рыночных процессов, хотя-бы базовых — что рынок меняется, что погрешности будут полюбому и т.п.

    Редактировано Dmitry_A_E (28/07/2011 02:31)

    Опции:
    Dmitry_A_E
    Unregistered

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: VovaM]
    # 339868 — 28/07/2011 02:38
    Правка Ответ Цитата Быстрый ответ
    С другой стороны применяемая модель (вид сети) уже содержит в себе определенную идею и философию. Если точнее то не каждая сеть подойдет для рынка, т.к. рынок это процесс нестационарный (все знают я думаю какие у этой тайм серии свойства), а о моделировании нестационарных процессов нужно иметь представление еще до запуска сети.

    Опции:
    alles
    Свой человек

    Зарегистрирован: 01/09/2004
    Сообщений: 44
    Нахождение: Москва

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: ]
    # 339926 — 28/07/2011 17:57
    Правка Ответ Цитата Быстрый ответ
    Все правильно: нейросеть — обычный аппроксиматор, коэффициенты подбираются так, чтобы результат был похож на исходную функцию. Поэтому прогнозировать она не может. Я тоже увлекался одно время нейросетями. После построения и оптимизации сети она мне прогнозировала таким образом: повторяла предыдущее движение — если вчера было плюс 100 пипсов, то прогноз на сегодня +100 пипсов. И это логично: это — самая лучшая аппроксимация случайного процесса

    Опции:
    Барин
    Реинкарнировавший Kent

    Зарегистрирован: 19/10/2009
    Сообщений: 1478

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: alles]
    # 339932 — 28/07/2011 18:35
    Правка Ответ Цитата Быстрый ответ
    прогнозировать нейросеть может

    Опции:
    Andrewso
    Верю, СССР
    будет восстановлен

    Зарегистрирован: 31/07/2006
    Сообщений: 1624

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: Барин]
    # 339941 — 28/07/2011 19:31
    Правка Ответ Цитата Быстрый ответ
    agree

    Опции:
    VovaM
    майор

    Зарегистрирован: 20/08/2003
    Сообщений: 2504

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: ]
    # 339947 — 28/07/2011 20:24
    Правка Ответ Цитата Быстрый ответ

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

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

    ———————
    Все проблемы от того, что люди плохо фильтруют базар

    Опции:
    Юджин
    Долгожитель

    Зарегистрирован: 20/01/2008
    Сообщений: 1076

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: VovaM]
    # 339964 — 29/07/2011 00:14
    Правка Ответ Цитата Быстрый ответ
    Нейросеть это как полином n-й степени, отлично интерполирует, чуть хуже экстраполирует. Вообще c точки зрения математики нс корректно применять только к стационарным процессам, хоть и нелинейным по своей природе. Так что присоединюсь к тренду — нс в сторонку

    Опции:
    Барин
    Реинкарнировавший Kent

    Зарегистрирован: 19/10/2009
    Сообщений: 1478

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: Юджин]
    # 339987 — 29/07/2011 10:14
    Правка Ответ Цитата Быстрый ответ
    поскольку нейросети могут согласно вики:
    2.1 Распознавание образов и классификация
    2.2 Принятие решений и управление
    2.3 Кластеризация
    2.4 Прогнозирование
    2.5 Аппроксимация
    2.6 Сжатие данных и Ассоциативная память

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

    другой момент — кому какой инструмент удобнее, это скорее дело личных предпочтений и пристрастий

    Опции:
    KnyazSeverov
    Душа форума

    Зарегистрирован: 06/09/2010
    Сообщений: 250
    Нахождение: Rostov-on-Don

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: Барин]
    # 340009 — 29/07/2011 12:27
    Правка Ответ Цитата Быстрый ответ
    На тему нужности/не нужности нейронных сетей: Интервью с Леонидом Величковским (LeoV)
    Может быть это конечно уже баян, но тем кто не читал и интересуется нейронными сетями, я думаю стоит прочитать.

    Обучали ли Вы сначала нейросеть на поиск оптимальных сигналов для входа в позицию, а затем уже дорабатывали стратегию по поиску стратегий выхода, или это происходило как то по-другому?
    Я люблю переворотные стратегии. То есть вход является выходом из предыдущего входа. Я считаю, что если найти хорошие входы в рынок, к примеру buy, то они будут являться хорошими выходами из предыдущего sell, и наоборот. Хороших входов, на самом деле, не так уж и много. Поэтому я обучаю сеть на поиск только входов. Обычно для длинных входов использую одну нейросеть, для коротких входов другую. Но иногда одну и для длинных и для коротких. Но, кстати, могу сделать ТС без нейросетей. И она будет работать. Нейросеть — не грааль и не панацея. Это всего лишь инструмент, которым нужно уметь пользоваться. Есть очень много других инструментов, которые с успехом работают на финрынках не хуже, а может даже лучше нейросетей. В принципе, задача, как сделать на Форексе прибыльную торговую стратегию, как найти закономерности рынка, для меня решена. До конца не решенным остается вопрос выбора наиболее оптимальных параметров ТС для будущей торговли (наибольшей прибыльности) после ее оптимизации.

    Редактировано KnyazSeverov (29/07/2011 13:34)

    Опции:
    Dmitry_A_E
    Unregistered

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: KnyazSeverov]
    # 340162 — 31/07/2011 23:51
    Правка Ответ Цитата Быстрый ответ
    Reading forex memory with five-day Markov chains

    Для себя я сделал это более или менее строгое определение сантимента: Сантимент — это однонаправленное движение цены в течении нескольких баров. Оценивается приблизительно следующим образом:

    Рост сантимента — рост однонарправленности движения цены.

    Простейший пример использования сантимента (Марковости) — продолжение движения в течении нескольких баров после мощной свечи.

    Редактировано Dmitry_A_E (01/08/2011 00:04)

    Опции:
    Барин
    Реинкарнировавший Kent

    Зарегистрирован: 19/10/2009
    Сообщений: 1478

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: ]
    # 340181 — 01/08/2011 09:58
    Правка Ответ Цитата Быстрый ответ
    марковость и сантимент разные вещи имхо
    во всяком случае марковость имеет строгое определение
    марковость здесь не причем

    Опции:
    Dmitry_A_E
    Unregistered

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: Барин]
    # 340182 — 01/08/2011 10:01
    Правка Ответ Цитата Быстрый ответ
    Не понял

    Опции:
    Барин
    Реинкарнировавший Kent

    Зарегистрирован: 19/10/2009
    Сообщений: 1478

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: ]
    # 340189 — 01/08/2011 11:55
    Правка Ответ Цитата Быстрый ответ
    фраза «Простейший пример использования сантимента (Марковости)» подразумевает в моем понятии «сантимент = марковость»
    смысл моего поста заключается в том, что это не так в моем понимании

    Опции:
    Юджин
    Долгожитель

    Зарегистрирован: 20/01/2008
    Сообщений: 1076

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: Барин]
    # 340203 — 01/08/2011 15:00
    Правка Ответ Цитата Быстрый ответ
    А что есть такое сантимент в Вашем понимании?

    Опции:
    Барин
    Реинкарнировавший Kent

    Зарегистрирован: 19/10/2009
    Сообщений: 1478

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: Юджин]
    # 340207 — 01/08/2011 15:39
    Правка Ответ Цитата Быстрый ответ
    в моем понимании это когерентное (согласованное, коррелированное) поведение участников рынка

    Опции:
    Юджин
    Долгожитель

    Зарегистрирован: 20/01/2008
    Сообщений: 1076

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: Барин]
    # 340209 — 01/08/2011 15:47
    Правка Ответ Цитата Быстрый ответ
    Которое в свою очередь приводит к появлению «памяти» в ценах, так?

    Опции:
    Барин
    Реинкарнировавший Kent

    Зарегистрирован: 19/10/2009
    Сообщений: 1478

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: Юджин]
    # 340214 — 01/08/2011 16:14
    Правка Ответ Цитата Быстрый ответ
    возможно, честно говоря, я не знаю, что точно приводит к появлению «памяти», думаю, много разных причин, в том числе новости, фундаментальные данные

    Опции:
    Барин
    Реинкарнировавший Kent

    Зарегистрирован: 19/10/2009
    Сообщений: 1478

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: Барин]
    # 340231 — 01/08/2011 20:52
    Правка Ответ Цитата Быстрый ответ
    посмотрел статью по линку от Dmitry_A_E
    Reading forex memory with five-day Markov chains
    http://www.futuresmag.com/Issues/2011/May-2011/Pages/Reading-market-memory.aspx?page=1
    попись Aleksey Yudin is a professional quantitative analyst. Reach him at yudinaleksey@hotmail.com
    он же Алексей Юдин, он же Axiom( ник на данном форуме), вероятно он же ФеликсВайт

    Опции:
    Барин
    Реинкарнировавший Kent

    Зарегистрирован: 19/10/2009
    Сообщений: 1478

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: Барин]
    # 340232 — 01/08/2011 21:11
    Правка Ответ Цитата Быстрый ответ
    вот еще:
    First of all it is necessary to note that our approach can work only with liquid shares, therefore we selected only ones satisfying to the condition:

    Average ((Closing of a day)*(Day Volume), 52 Weeks) >= $30 mio to construct the basket.
    http://community.scottrade.com/blogs/310/461
    Aleksey Yudin has been researching nonlinear methods as applied to markets since 2005 and he is an investment analyst of Universal Finance Systems Limited, United Kingdom. He can be reached at [Email]yudinaleksey@hotmail.com.[/Email]

    т.е. вероятно на данном сайте был некий поиск клиентов под ником Аксиом и далее ФеликсВайт

    тем же примерно пытался заняться и ник Cr

    признаки так называемого приема — партизанский маркетинг

    Опции:
    Dmitry_A_E
    Unregistered

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: ]
    # 340238 — 02/08/2011 00:20
    Правка Ответ Цитата Быстрый ответ
    http://club.investo.ru/viewtopic.php?f=9&t=42053&start=45

    Опции:
    Kobra007
    Змей007

    Зарегистрирован: 09/06/2003
    Сообщений: 1727

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: ]
    # 340240 — 02/08/2011 00:32
    Правка Ответ Цитата Быстрый ответ
    Ссылка заражена трояном JS/Kriptik.BP об ентом мне eSet мотюгнулся

    Опции:
    Dmitry_A_E
    Unregistered

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: Kobra007]
    # 340242 — 02/08/2011 00:37
    Правка Ответ Цитата Быстрый ответ
    Странно. У меня не показало трояна. Ссылка к тому, что Марковость обсуждали в далеком 2002-2003м гг., Атаман, Акело, Нео, ну и в сявязи с тем что картинки показанные там были тогда мной многократно просмотрены но не поняты, решил показать интересную статью, т.к. на форумах таких обсуждений я уже давно не видел.

    Опции:
    Kobra007
    Змей007

    Зарегистрирован: 09/06/2003
    Сообщений: 1727

    Re: Нейронная сеть и генетический алгоритм — опыт использования [re: ]
    # 340243 — 02/08/2011 00:42
    Правка Ответ Цитата Быстрый ответ
    Ну а у мну не токмо мотюгнулся, так еще и доступ сразу же перекрыл
    01.08.2011 23:29:10 HTTP filter file http://club.investo.ru/viewtopic.php?f=9&t=42053&start=45 JS/Kryptik.BP trojan connection terminated — quarantined

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

    Опции:
    Страниц в ветке: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | >> (все)
    Назад Индекс Вперед ветвями

    Дополнительная информация
    1 зарегистрированных и 28 незарегистрированных пользователей просматривает форум.

    Доступ и ограничения:
    Вы не можете начать новую тему
    Вы не можете отвечать на тему
    HTML включён
    UBBCode включён

    Generated in 1.152 seconds in which 0.01 seconds were spent on a total of 13 queries. Zlib compression enabled.

    Искусственный интеллект и букмекерство: нейронные сети для прогнозирования спортивных событий

    Букмекерские компании и опытные игроки активно используют нейросети и Big Data в прогнозировании, и сами того не подозревая, делают огромную услугу теоретикам искусственного интеллекта (ИИ).

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

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

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

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

    Коэффициенты и прогнозирование результатов

    Что собой вообще представляет букмекерская компания и как она работает?

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

    Ваш выигрыш принесет выгоду не только вам! Если букмекер неправильно сделает прогноз и рассчитает вероятности, он рискует остаться без маржи и активов. Поэтому при прогнозе учитывать надо большое количество факторов. Коэффициенты и спортивное прогнозирование – вот вам и предметное поле искусственного интеллекта!

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

    Нейронное прогнозирование в футболе

    За успешными примерами применения ИИ в букмекерстве далеко ходить не надо. В лаборатории Университета Лозанны три аспиранта создали технологию на основе искусственного интеллекта, которая предсказывала результаты матчей Евро-2020. Трио футбольных оракулов разработало методы прогнозирования футбольных матчей, которые в разы точнее машинного прогнозирования!

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

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

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

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

    На сайте системы kickoff опубликованы результаты прогнозирования за период Евро-2020. Точность предсказаний — 80%. Эта программа перевернула сферу спортивного прогнозирования!

    Прогнозирование результатов футбольных матчей от IT-корпораций

    Теперь давайте от стартапа перейдем к IT-гигантам. Они тоже не остались в стороне от футбола и показали мощь ИИ в альтернативной сфере.

    Корпорация Microsoft запустила облачный сервис Cortana Intelligence Suite, который сразу же выдал успешное предсказание — Франция победила Румынию с результатом 2:1 на открытии футбольного чемпионата Евро-2020.

    Настолько точный прогноз Cortana Intelligence Suite — результат обработки гигабайтов информации об участниках чемпионата. Предыдущие игры, эффективность игроков, вместе и по отдельности, их травмы. Также анализирует новостной контент и публикации в социальных медиа.

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

    Такие корпорации, как Google и Yahoo, также проявили себя и задействовали прогнозирование с помощью нейронных сетей. Google в своих нейросервисах использовала внутренние особенности команды, а Yahoo анализировала подробную статистику четырехлетней давности: составы, результативность и развитие команд. Обе программы предсказывали победу Германии на чемпионате. Но, как нам известно, за победу на Евро-2020 боролись французские и португальские спортсмены. Словом, недоработали IT-хедлайнеры свои прогнозы…

    Самое точное предсказание на Евро-2020. ИИ поверил во Францию

    Сборная Германии, конечно, очень сильная, да и поддержка болельщиков была колоссальная. Но программа NeuroBayes проигнорировала прогнозы общественности! Она была создана главой аналитического отдела ядерной лаборатории CERN Майклом Файндтом и поверила во французскую команду! По ее прогнозу, вероятность того, что Франция будет в финале, составляла 34%. Такой результат заслуживает внимания.

    NeuroBayes использовала данные о результатах все матчей: как локальных, так и международных. После тщательного анализа шансов на победу для каждой сборной на Евро-2020 программа выдала около 95 млрд вариантов исходов событий. Все это слишком сложно для ограниченного человеческого разума, но на помощь пришел численный метод Монте-Карло, и при помощи моделирования случайных величин прогнозы были систематизированы.

    С такой бешеной гонкой технологий, основанных на искусственном интеллекте, букмекерский бизнес сможет выйти на новый уровень – кроме ставок на результаты спортивных событий, делать ставки на результаты нейронного прогнозирования. Например, можно поставить на Google, Cortana или NeuroBayes. Хлеб у букмекеров будет всегда!

    Подозревал ли о таких перспективах Алан Тьюринг, когда работал над своими проектами? Маловероятно.

    Искусственный интеллект в большом теннисе

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

    У сервиса есть система подписки и встроенный калькулятор, который считает размер вашего выигрыша, но это не главное. OhMyBet обладает собственной богатой базой матчей, которых уже больше 825 000! Вдобавок к этому сервис генерирует всю ветку сыгранных матчей спортсмена, новости и контент социальных медиа. К слову, правильность прогнозов OhMyBet — 85%.

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

    Нейросервис для ставок на скачках. Объединение человеческих ресурсов и программы ИИ

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

    Как тут разработать правильные метрики и какие факторы учитывать для точного прогноза?

    Вы не поверите, но недавно ставка на скачках «Кентукки Дерби» превратилась из $20 в куш $11 000. Такой поразительный выигрыш стал результатом объединения коллективного разума и искусственного интеллекта.

    Программа UNU, которая включала как человеческие ресурсы, так и искусственный разум, смогла за несколько дней до скачек определить четырех лошадей, которые займут призовые места. Хотя шансы на победу в обычном прогнозе были 540:1.

    Разработчик данной программы Льюис Розенберг использовал особенную систему ИИ — Swarm Intelligence (роевой интеллект), который описывает поведение коллектива в самоорганизованной системе. Как утверждает Розенберг, UNU усиливает возможности человеческого разума, а не заменяет. Такая технология показывает, что с искусственным интеллектом можно не только соревноваться, но и дружить!

    Как это происходит

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

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

    Эта программа также продемонстрировала свои способности на вручении Оскара. Система UNU верно определила 11 победителей из 15. Такой результат шокировал даже опытных кинокритиков и бывалых букмекеров!

    Результаты поражают. Кажется, теорию вероятности скоро поставят на место!

    А техническая сторона? За любым подобным сервисом компилируются тонны сложного кода! Рассмотрим пример.

    Программа для примера: как настроить спортивное прогнозирование

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

    Основные программные требования:

    Windows:

    • Pyside для Python 2.6 32 bit
    • Python 2.6 32 bit

    Linux:

    • Python 2.6 или 2.7
    • Pyside
    • Pyfann

    Другими словами, перед тем как использовать программу, надо установить модули Python, Pyside или Pyfann.

    Как и любая программа, спортивное прогнозирование имеет свой «скелет».

    BetBoy состоит из 8 блоков:

    Модуль сбора статистических данных

    Тут можно посмотреть статистику выбранной лиги и спортивных событий.

    Селектор матчей

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

    Моделирование ставок

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

    Менеджер обновлений

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

    Генератор ссылок

    Здесь можно создать файл со списком URL-адресов для используемых обновлений.

    Генератор лиги

    В этом модуле можно вручную обновить лиги или создать собственные.

    Экспорт-менеджер

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

    Блок самообучения

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

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

    Казалось бы, искусственный интеллект может уничтожить главный компонент ставок — азарт, но нет. Никогда не известно, будет ли успешный алгоритм точно работать в следующем матче. Кто знает, что там в «голове» у искусственного интеллекта?

    Лучшие брокеры с бонусами:
    • FinMax (Форекс)
      FinMax (Форекс)

      Инвестируй в акции торговых компаний и получай до 40% в месяц!

    • BINARIUM
      ☆☆☆☆☆
      ★★★★★
      BINARIUM

      Лучший брокер по бинарным опционам. Огромный раздел по обучению.

    Добавить комментарий