Минимальный код простейшей нейросети

 

Можно ли назвать этот участок кода ветерана кодбазы Решетова нейросетью?

double perceptron_S() 

  {
   double w1 = s1 - 100;
   double w2 = s2 - 100;
   double w3 = s3 - 100;
   double w4 = s4 - 100;
   double a1 = iAC(Symbol(),0,0);
   double a2 = iAC(Symbol(),0,1);
   double a3 = iAC(Symbol(),0,3);
   double a4 = iAC(Symbol(),0,9);
   return(w1 * s1 + w2 * s2 + w3 * s3 + w4 * s4);

  }

Если нет, то как должна выглядеть самая простая нейросеть на примере того же индикатора?


 
Ivan Butko:

Можно ли назвать этот участок кода ветерана кодбазы Решетова нейросетью?

double perceptron_S() 

  {
   double w1 = s1 - 100;
   double w2 = s2 - 100;
   double w3 = s3 - 100;
   double w4 = s4 - 100;
   double a1 = iAC(Symbol(),0,0);
   double a2 = iAC(Symbol(),0,1);
   double a3 = iAC(Symbol(),0,3);
   double a4 = iAC(Symbol(),0,9);
   return(w1 * s1 + w2 * s2 + w3 * s3 + w4 * s4);

  }

Если нет, то как должна выглядеть самая простая нейросеть на примере того же индикатора?


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

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

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

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

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

 
transcendreamer #:

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

Вот-вот, уже и несколько осциляторов кидал на входы, форвард и бэк  никак не поддаются росту.

Спасибо за ответ

 
Ivan Butko #:

Вот-вот, уже и несколько осциляторов кидал на входы, форвард и бэк  никак не поддаются росту.

Спасибо за ответ

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

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

Но вот сам подход к созданию синтетических сигналов интересен, подчеркну...

 
Ivan Butko #:

Вот-вот, уже и несколько осциляторов кидал на входы, форвард и бэк  никак не поддаются росту.

Спасибо за ответ

Также пробовал несколько лет назад, была пара подходов с некоторым промежутком. 

Менял индикаторы, ни ничего не смог вытащить даже в тестере.

 

Это только на одном персептроне тотальное переобучение! Не могу представить, как ребята в ветке по сеткам выкручиваются? Там и слоёв, и весов больше... Как там рыбу можно удить?

 
Aleksei Stepanenko #:

Это только на одном персептроне тотальное переобучение! Не могу представить, как ребята в ветке по сеткам выкручиваются? Там и слоёв, и весов больше... Как там рыбу можно удить?

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

 

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

значения весов 0, 0.1, 0.2,  ...    0.9, 1.0

количество весов 20

количество переборов 11^20


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

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

Так что, Иван хорошую тему поднял, молодец!

 
Ivan Butko #:

Вот-вот, уже и несколько осциляторов кидал на входы, форвард и бэк  никак не поддаются росту.

Спасибо за ответ

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

Дело не в самом перцептроне.

Дело в том, что все эти встроенные в МТ осцилляторы -  ̶г̶о̶в̶н̶о̶ дерьмо.

А реализация Решетова весьма оригинальна и заслуживает внимания.