Нейросети и пересечение Moving Average

16 мая 2017, 16:44
Yuriy Asaulenko
0
399

Прочитав несколько высокохудожественных книг по Neural Network, наигравшись с экземплами пакетов реальных нейросетей (НС) и разобравшись в теории и практических возможностях, осталось совершенно непонятно, куда же запрягать лошадь. Было решено для распознавания НС подобрать какой-нибудь запоминающийся образ приближенный к рыночным реалиям. Выбор пал на распознавание НС точек пересечения двух МА. Для упрощения будем искать только точки пересечения вверх, как-бы под лонг.

Далее все конкретные данные будут касаться только пакета с которым проводились эксперименты.

Наивный подход. Для определения пересечения 2-х МА нейросети потребуется МА2(t), МА1(t) и МА1(t-1). В логике задачка решается просто

((MA1(t)-MA2(t)>0) & (MA1(t-1)-MA2(t)<0))==true  (1)

т.е., данные для распознавания достаточны.

Берем отрезок рыночного временного рядя в качестве обучающей выборки, готовим отклик системы в виде единичных импульсов в точках пересечения, и коль НС такая умная, подаем на вход НС MA1(t), MA1(t-1) и МA2(t), обучаем, и любуемся результатом. НС, естественно берем несложную. Для таких задач еще не хватало огород городить.)

Результата нет. Вообще нет. Никакого.

Как выяснилось, дело в следующем. Нейросети не в ладах с арифметикой. Пусть МА =1500, разность МА при пересечении где-то от 1 до 7 пунктов. Это всего максимум 0.47% от величины МА. Т.е. образы слишком мелкие и расположены в зоне колебаний МА -1200-1600, где попало. На всяких прикидочных образах выяснилось, что построенная НС хорошо работает в области входных сигналов от -2 до +2, а еще лучше, для многослойной сети, от -1 до +1, и хорошо чувствует изменения сигнала с дельтой не менее 0.2-0.3.

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

x1=MA1(t)-MA2(t) и x2=MA1(t-1)-MA(t) (2)

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

Однако, в данной задаче мы хотели не схему И, а проявления от НС некоторого интеллекта.)

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

Эта НС тоже хорошо обучается. На выходах уже не четкие 1/0, а итоги зрелых размышлений, типа - ну, где-то 0.7-0.8. Иногда даже ошибается, на пересечениях близких к горизонтальным.

Задача НС, в данном применении, эквивалентна различению соотношения яркости двух точек и их взаимного расположения.

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

Поделитесь с друзьями: