Уважаемые нейросетивики уделите минутку внимания!)!

 

Привет всем,


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

-где я могу найти качественную информацию на тему;

-MQL4 или MQL5?

-другие рекомендации и собственное соображения на тему.


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



Всем заранее спасибо.

 

https://www.mql5.com/ru/forum/124189 + поиск... а пока выглядит как профессиональный журналистский вопрос - "Что Вы можете сказать по этому поводу?"...

 
igor.senych писал(а) >>

-MQL4 или MQL5?


На MQL5 будет намного проще сеть писать.

 

Намного сложнее :) . Увы, реалии таковы, пользоваться ООП в MQL5 на полную и легко не получится. Так что, ИМХО, лучше НС написать на ЯВУ общего назначения и потом подключить дллкой.

А пользовать, да, лучше таки MQL5.

 
Проще на том языке, который знаешь;-)А потом можно в виде ДЛЛ прицепить куда угодно. Не плагиатствую - литература по ссылке https://www.mql5.com/ru/forum/124189 .Практическое применение - Используем нейронные сети в MetaTrader (Респект автору!!!!) Если появятся вопросы (по сетям, MQL сам изучаю, но тоже можно) - в личку или skype - segunkh
 
igor.senych писал(а) >>

в качестве инженерской работы, сделать нейросеть


Какую нейросеть хоть?

p.s. Естественно, mql5.

 
Integer >>:


На MQL5 будет намного проще сеть писать.

Проще некуда. Работает и на MQL4 и на MQL5. На MQL5 раз 20-40 быстрее правда, код одинаковый.

MLP будет выглядеть так:

//+------------------------------------------------------------------+
//|                                                        NNlib.mqh |
//|                                     Copyright 2009, JQS aka Joo. |
//+------------------------------------------------------------------+

/*В теле программы объявить
double SumHiddenLayer[];
ArrayResize(SumHiddenLayer,N2Count);
*/

//==================================================================================================
void ANN(int N1Count,int N2Count,int N3Count,double &SumHiddenLayer[], double &InputNN[],double &WeightNN[],double &OutNN[])
{
        int cnt_W=0;
        //Присваивание ячейкам массива сумм значений точек насыщения нейрона: (+b)
        for (int i=0;i<N2Count;i++)
        {
                SumHiddenLayer[i]=WeightNN[cnt_W];
                cnt_W++;
        }
        //Суммирование: (+w1*x1+...+wn*xn+b) для каждого нейрона
        for (int i=0;i<N1Count;i++)
        {
                for (int u=0;u<N2Count;u++)
                {
                        SumHiddenLayer[u]+=InputNN[i]*WeightNN[cnt_W];
                        cnt_W++;
                }
        }
        //Посчитаем функцию активации для каждого скрытого нейрона
        for (int i=0;i<N2Count;i++)
        {
                SumHiddenLayer[i]=(2.0/(1.0+MathPow(2.0,-SumHiddenLayer[i])))-1.0;
        }
//*************************************************************************  
        //Присваивание ячейкам массива сумм значений точек насыщения нейрона: (+b)
        for (int i=0;i<N3Count;i++)
        {
                OutNN[i]=WeightNN[cnt_W];
                cnt_W++;
        }
        //Суммирование: (+w1*x1+...+wn*xn) для каждого нейрона
        for (int i=0;i<N2Count;i++)
        {
                for (int u=0;u<N3Count;u++)
                {
                        OutNN[u]+=SumHiddenLayer[i]*WeightNN[cnt_W];
                        cnt_W++;
                }
        }
        //Выровняем по границе от -1 до 1
        for (int i=0;i<N3Count;i++)
        {
                if (OutNN[i]>1.0)
                {
                        OutNN[i]=1.0;
                }
                if (OutNN[i]<-1.0)
                {
                        OutNN[i]=-1.0;
                }
        }
}
//======================================================================
 
joo писал(а) >>

MLP будет выглядеть так:


Если на mql5 - то и пользоваться нужно его возможностями, а не переносить один-в-один код с mql4.
 
lea >>:

Если на mql5 - то и пользоваться нужно его возможностями, а не переносить один-в-один код с mql4.

Возможности нужно применять, согласен. Но зачем усложнять то, что просто и работает? Как там у классика - отсекать лишнее.

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

Причина обращения: