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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
elibrarius
2660
elibrarius  

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

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


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

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


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

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

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

elibrarius
2660
elibrarius  

Скопирую код (для МТ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) // 
Файлы:
Алёша
552
Алёша  
elibrarius:

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

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

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

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

geratdc
1512
geratdc  
elibrarius:


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


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

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

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