//—————————————————————————————————————————————————————————————————————————————— //| MLP.mq5 | //| Copyright 2010, JQS aka Joo | //| http://www.mql5.com | //—————————————————————————————————————————————————————————————————————————————— double *HiLayer1= new double[0];// Íåéðîíû ïåðâîãî ñêðûòîãî ñëîÿ double *HiLayer2= new double[0];// Íåéðîíû âòîðîãî ñêðûòîãî ñëîÿ //—————————————————————————————————————————————————————————————————————————————— //Çàïðîñ íåîáõîäèìîãî êîëè÷åñòâà âåñîâ int RequiredWeightsCount( int InNeuronCount, // Êîëè÷åñòâî íåéðîíîâ âî âõîäíîì ñëîå int HiNeuronCount1,// Êîëè÷åñòâî íåéðîíîâ â ïåðâîì ñêðûòîì ñëîå int HiNeuronCount2,// Êîëè÷åñòâî íåéðîíîâ âî âòîðîì ñêðûòîì ñëîå int OutNeuronCount // Êîëè÷åñòâî íåéðîíîâ â âûõîäíîì ñëîå ) { HiLayer1= new double[HiNeuronCount1]; HiLayer2= new double[HiNeuronCount2]; return(InNeuronCount *HiNeuronCount1+HiNeuronCount1+ HiNeuronCount1*HiNeuronCount2+HiNeuronCount2+ HiNeuronCount2*OutNeuronCount+OutNeuronCount); } //—————————————————————————————————————————————————————————————————————————————— //—————————————————————————————————————————————————————————————————————————————— //Ðàñ÷åò ìíîãîñëîéíîãî ïåðñåïòðîíà void MLP( int WeightAddress, //Èíäåêñ âåñà â ìàññèâå, ñ êîòîðîãî íóæíî ÷èòàòü int InNeuronCount, //Êîëè÷åñòâî íåéðîíîâ âî âõîäíîì ñëîå int HiNeuronCount1,//Êîëè÷åñòâî íåéðîíîâ â ïåðâîì ñêðûòîì ñëîå int HiNeuronCount2,//Êîëè÷åñòâî íåéðîíîâ âî âòîðîì ñêðûòîì ñëîå int OutNeuronCount,//Êîëè÷åñòâî íåéðîíîâ â âûõîäíîì ñëîå double *InLayer, //Íåéðîíû âõîäíîãî ñëîÿ double *Weight, //Âåñà íåéðîíîâ ñåòè double *OutLayer //Íåéðîíû âûõîäíîãî ñëîÿ ) { int i=0, u=0, cnt_W=WeightAddress;//Ñ÷åò÷èê //---------------Îáðàáîòàåì ïåðâûé ñêðûòûé ñëîé--------------------------- //Äîáàâèì ñìåùåíèå òî÷åê íàñûùåíèÿ íåéðîíà: (+b) for ( i=0;i