"Новый нейронный" - проект Open Source движка нейронной сети для платформы MetaTrader 5. - страница 38

 
gpwr:
Фильтры обучаются без учителя путём представления случайно-выбранных 10000-40000 участков истории (это же количество итераций). Обучение очень быстрое. В зависимости от комьютера, 10000 фильтров обучаются на 20000 участках истории от 1-2 минуты на 360 GPU CUDA процессорах, примерно 1 час на 4-х интеловских процессорах с 16-ю тредами, 3-4 часа на моём ноутбуке с одним процессором и двумя тредами. Хотя время здесь неважно. Даже если мне нужен день или два для такого обучения фильтров, оно делается только один раз для каждой котировки (EURUSD, USDJPY, и т.д.). После того как фильтры обучены, они не изменяются и используются для фильтрования новых цен. Само фильтрование очень быстрое - считаем сумму произведений цены на коэффициенты фильтров.

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

вопрос в том сколько раз придётся подать каждый пример?

 
Urain:

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

вопрос в том сколько раз придётся подать каждый пример?

Не обязательно проходить один и тот же участок истории несколько раз. И не обязательно каждый участок истории проходить по крайеней мере один раз. Некоторые участки исории могут опущены. Фильтры по существу собирают статистику котировок по случайным выборкам. Случайность выборки здесь главное. При последовательном сканировании всей истории, фильтры будут склонятся к статистике в начале истории.
 
gpwr:
Не обязательно проходить один и тот же участок истории несколько раз. И не обязательно каждый участок истории проходить по крайеней мере один раз. Некоторые участки исории могут опущены. Фильтры по существу собирают статистику котировок по случайным выборкам.
Нет, вы говорите о фильтрах, я же предупредил что вопрос в сторону, я говорю о алгоритмах обучения НС.
 
Urain:
Нет, вы говорите о фильтрах, я же предупредил что вопрос в сторону, я говорю о алгоритмах обучения НС.
Тогда действительно не понял. Предлагаемая мною сеть состоит из двух модулей: модуль преобразования данных несколькими слоями фильтров и модуль классификации. Фильтры в первом модуле обучаются без учителя по всей истории один раз и запоминаются для всех последующих применений сети. После того как фильтры обучены, обучаем второй модуль с учителем, т.е. на входе первого модуля ценовой паттерн, на выходе второго модуля уже заранее известные сигналы Buy (+1), Sell (-1), Hold (0). Второй модуль может быть любой известной нам нейронной сетью, например Feed-Forward Network (FFN или MLP), Support Vector Machine (SVM), Radial Basis Function (RBF). Обучение этого модуля такое же долгое как и без первого фильтрующего модуля. Как я уже объяснял раньше, по моему мнению, второй модуль не так важен, как первой. Надо сначала правильно преобразовать (фильтровать) котировки перед тем как их подавать в сеть. Простейшим методом фильтрации является например МА. Можно применять и другие индикаторы, что большинство нейросетевеков уже делают. Я предлагаю специальный "индикатор" состоящий из нескольких слоёв фильтров наподобие биологических для такого преобразования котировок, что одинаковые но искажённые паттерны описываются одинаковым кодом на выходе этого "индикатора" (первого модуля моей сети). Тогда уже можно классифицировать эти коды во втором модуле используя общеизвестные методы.
 

Общий курс (с сайта http://www.intuit.ru/department/expert/neuro/ там нужна регистрация, кому влом регится - ник Nic_Touch pas zdraste01 )



Лекции  http://www.softcraft.ru/neuro/ni/p00.shtml



Примеры отображения http://www.statsoft.ru/home/products/version6/snn.htm



Книги по моделям и методам обучения

Нейрокомпьютерные системы | Учебный курс | НОУ ИНТУИТ
Нейрокомпьютерные системы | Учебный курс | НОУ ИНТУИТ
  • www.intuit.ru
Излагаются основы построения нейрокомпьютеров. Дается детальный обзор и описание важнейших методов обучения нейронных сетей различной структуры, а также задач, решаемых этими сетями. Рассмотрены вопросы реализации нейронных сетей.
Файлы:
Books.zip  14709 kb
 

gpwr:

Тогда действительно не понял. Предлагаемая мною сеть состоит из двух модулей: модуль преобразования данных несколькими слоями фильтров и модуль классификации. Фильтры в первом модуле обучаются без учителя по всей истории один раз и запоминаются для всех последующих применений сети. После того как фильтры обучены, обучаем второй модуль с учителем, т.е. на входе ценовой паттерн, на выходе уже заранее известные сигналы Buy (+1), Sell (-1), Hold (0). Второй модуль может быть любой известной нам нейронной сетью, например Feed-Forward Network (FFN или MLP), Support Vector Machine (SVM), Radial Basis Function (RBF). Обучение этого модуля такое же долгое как и без первого фильтрующего модуля. Как я уже объяснял раньше, по моему мнению, второй модуль не так важен, как первой. Надо сначала правильно преобразовать (фильтровать) котировки перед тем как их подавать в сеть. Простейшим методом фильтрации является например МА. Можно применять и другие индикаторы, что большинство нейросетевеков уже делают. Я предлагаю специальный "индикатор" состоящий из нескольких слоёв фильтров наподобие биологических для такого преобразования котировок, что одинаковые но искажённые паттерны описываются одинаковым кодом на выходе этого "индикатора" (первого модуля моей сети). Тогда уже можно классифицировать эти коды во втором модуле используя общеизвестные методы.

Если я правильно понял то сами фильтры и их обучение можно отнести к модулю предобработки.
 
Urain:
Если я правильно понял то сами фильтры и их обучение можно отнести к модулю предобработки.
Да, первому модулю, само-обучающемуся один раз на всю жись.
 
Urain:
Alex а как это у тебя получилось 14 метров прикрепить, модераторская привелегия или увеличили лимит?
написано до 16М. Наверно увеличили.
 
Во! Ура, 15-я лекция это сети на нечеткой логике, про которые я говорил в самом начале.
 

u - вход активатора

y - дополнительный степенной коэффициент.

//+------------------------------------------------------------------+
double sigma0(double u,double y=1.)// [0;1]
  {
   return(1./(1.+exp(-y*u)));
  }
//+------------------------------------------------------------------+
double sigma1(double u,double y=1.)// [-1;1] сдвинутый сигмоид
  {
   return((2./(1.+exp(-y*u)))-1.);
  }
//+------------------------------------------------------------------+
double func1(double u,double y=1.)// [-1;1]
  {
   return(y*u/sqrt(1.+y*y*u*u));
  }
//+------------------------------------------------------------------+
double func2(double u,double y=1.)// [-1;1]
  {
   return(sin(M_PI_2*y*u));
  }
//+------------------------------------------------------------------+
double func3(double u,double y=1.)// [-1;1]
  {
   return(2./M_PI*atan(y*u));
  }
//+------------------------------------------------------------------+
double func4(double u,double y=1.)// [-1;1]
  {
   return(y*u-y*y*y/3.*u*u*u);
  }
//+------------------------------------------------------------------+
double line0(double u,double y=1.)// [0;1] линейный активатор
  {
   double v=y*u;
   return((v>1.?1.:v<0.?0.:v));
  }
//+------------------------------------------------------------------+
double line1(double u,double y=1.)// [-1;1]
  {
   double v=y*u;
   return((v>1.?1.:v<-1.?-1.:v));
  }
//+------------------------------------------------------------------+
double Mline(double v)// [DBL_MIN;DBL_MAX]
  {
   return((v>DBL_MAX?DBL_MAX:v<DBL_MIN?DBL_MIN:v));
  }
//+------------------------------------------------------------------+
Причина обращения: