Насколько доступные трейдерам нейросети умны?

 

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

А могут ли доступные нам НС (например или ALGLIB или из R) различать примитивные вещи, например треугольники, квадраты и окружности друг от друга?Прямо как из обучающих игр для детей 2-3 летнего возраста.


Я повторил пример проверки таблицы умножения на ALGLIB - получается неплохо. Но понятия не имею, как описать задачу с фигурами для НС, практического опыта маловато и знаний. Может кто-то из более опытных товарищей подскажет, как занести обучающие примеры с этими фигурами? Или проведет такой эксперимент и поделится результатами? Желательно с обучающей матрицей или кодом, чтобы можно было повторить эксперимент. И желательно на ALGLIB, т.к. он уже есть в МТ5, а с R не так просто оказалось на практике. Статьи по R были написаны под одну версию R, но теперь произошло обновление и в новой версии старые коды не работают, т.е. повторить примеры из статей не выходит. Не хочется снова потратить время на разработку, которая может перестать работать, если Майкрософт опять что-то изменит. Впрочем если ALGLIB не справится с такими задачами, а R справится, то будем заниматься и изучать то, что действительно работает.

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


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

Ну и совсем сложный вариант - объемные фигуры...

Может у вас есть примеры (с кодом) решения других не менее интересных и сложных задач?

 

Скопирую код (для МТ5) проверки таблицы умножения сюда:

#include <Math\Alglib\dataanalysis.mqh>
//+------------------------------------------------------------------+
#define _rand(min,max) ((rand()/(double)SHORT_MAX)*((max)-(min))+min)
//+------------------------------------------------------------------+
void OnStart()
{
   CMultilayerPerceptron net;
   CMLPReport rep;
   CMatrixDouble patterns;
   double vector[2], out[1];
   int info;
   // подготовка данных
   patterns.Resize(100,3);
   int m=0;     // first pattern
   for(int i=1; i<=10; i++)
      for(int j=1; j<=10; j++)
      {
         patterns[m].Set(0,i/10.0);       // input 1
         patterns[m].Set(1,j/10.0);       // input 2
         patterns[m].Set(2,(i*j)/100.0);  // target
         m++; //next pattern
      }
   // создание сети с одним скрытым слоем(5 нейронов)
   CMLPBase::MLPCreate1(2,5,1,net);
   // обучение сети
   CMLPTrain::MLPTrainLM(net,patterns,100,1e-3,5,info,rep);     //Levenberg-Marquardt
   //CMLPTrain::MLPTrainLBFGS(net,paterns,100,1e-3,10,0.001,1000,info,rep);//L-BFGS
   Print("Info=",info,"  Error=",CMLPBase::MLPError(net,patterns,100)); 
   // проверка сети на целочисленных данных
   string s="Тест 1 >> ";
   for(int i=1; i<=10; i++)
   {
      int d1=(int)_rand(1,10), d2=(int)_rand(1,10);
      vector[0]=d1/10.0;
      vector[1]=d2/10.0;
      CMLPBase::MLPProcess(net,vector,out);
      s+=(string)d1+"*"+(string)d2+"="+DoubleToString(out[0]*100,0)+" // ";
   }
   Print(s);
   // проверка сети на дробныx данных
   s="Тест 2 >> ";
   for(int i=1; i<=5; i++)
   {
      double d1=NormalizeDouble(_rand(1,10),1), d2=NormalizeDouble(_rand(1,10),1);
      vector[0]=d1/10.0;
      vector[1]=d2/10.0;
      CMLPBase::MLPProcess(net,vector,out);
      s+=DoubleToString(d1,1)+"*"+DoubleToString(d2,1)+"="+DoubleToString(out[0]*100,2)+
         "("+DoubleToString(d1*d2,2)+") // ";
   }
   Print(s);
}
2012.10.13 12:44:31     Test_MLP(Alglib) (EURUSD,M30)   Info=2  Error=0.0005349624857861839
2012.10.13 12:44:31     Test_MLP(Alglib) (EURUSD,M30)   Тест 1 >> 3*6=18 // 1*1=0 // 7*8=56 // 1*5=5 // 4*6=24 // 7*6=42 // 8*2=16 // 1*5=5 // 3*2=6 // 6*7=42 // 
2012.10.13 12:44:31     Test_MLP(Alglib) (EURUSD,M30)   Тест 2 >> 6.3*8.2=51.83(51.66) // 7.0*8.1=57.04(56.70) // 9.0*8.1=73.36(72.90) // 4.1*9.6=39.05(39.36) // 6.3*8.8=55.63(55.44) // 
Файлы:
 
elibrarius:

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

А могут ли доступные нам НС (например или ALGLIB или из R) различать примитивные вещи, например треугольники, квадраты и окружности друг от друга?Прямо как из обучающих игр для детей 2-3 летнего возраста.

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

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

 
elibrarius:


Хочется надеяться, что доступные нам НС справятся, ведь и в трейдинге все паттерны постоянно искажаются.


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

Опираться на паттерны, искажённые как фигуры второго ряда очень недальновидно, ну согласитесь. Это всё равно что дать пьяному взаймы))) 

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