"New Neural" ist ein Open-Source-Projekt für neuronale Netzwerke für die MetaTrader 5-Plattform. - Seite 40

 

Dies sind Funktionen für die Koeffizienten des sigmoidalen Anstellwinkels:

//+------------------------------------------------------------------+
double ytrans0(double y=0.5)// [0;0.5;1] --> [0;1;500.5] гипербола с перегибом в 0.5
  {
   double x=line0(y);
   return(x>0.5005?0.5005/(1.001-x):x*2.);
  }
//+------------------------------------------------------------------+
double ytrans1(double y=0.)// [-1;0;1] --> [0;1;500.5] сдвинутая гипербола с перегибом в 0.0
  {
   double x=(line1(y)+1.)/2.;
   return(x>0.5005?0.5005/(1.001-x):x*2.);
  }
//+------------------------------------------------------------------+

SZZ Ich erkläre Ihnen, wozu das geschrieben wurde:

Aufgabe: Wir müssen den sigmoiden Anstellwinkel durch die Ausgaben der Neuronen selbst regulieren, Ausgaben innerhalb [0;1] oder [-1;1].

Betrachten wir die Variante mit [0;1]. Im Abschnitt von 0 bis 0,5 müssen wir den Anstellwinkel verringern, was zu einer Verringerung der Ausgangstemperatur führt, im Abschnitt von 0,5 bis 1 sollte der Winkel im Gegenteil größer werden, aber die Hauptsache ist, dass er gleichmäßig und ohne Übergänge ist.

Sie benötigen eine Hyperbel mit einem Wendepunkt in einem bestimmten Mittelpunkt. Sie können nur einen Ausgang zur Steuerung des Anstellwinkels verwenden oder mehrere Ausgänge als arithmetisches Mittel behandeln, da Sie sonst in der Richtung des Anstellwinkels, der die Schwellenwertfunktion ausgibt, einrasten.

HZZ Wenn die angegebenen Eingaben verwendet werden, dann werden line0() und line1() nicht benötigt, aber dann muss ytrans1() in den Eingabebereich [0;1] verschoben werden.

 
TheXpert:

Im Übrigen.

Wir brauchen eine sigmoidale Funktion.

Die Anforderungen - eine Normalform der Funktion und ihrer Ableitung (nicht zu schwer zu berechnen) und eine Normalform der Umkehrfunktion und ihrer Ableitung.

Diese sind die Umkehrung der obigen Sigmoidfunktion.

//+------------------------------------------------------------------+
double Invsigma0(double c)//  вход [0;1] обратные
  {
   return(-log((1.-c)/c));
  }
//+------------------------------------------------------------------+
double Invsigma1(double c)//  вход [-1;1]
  {
   return(-log((1.-c)/(1.+c)));
  }
//+------------------------------------------------------------------+
double Dsigma0(double c)//  вход [0;1] производные
  {//exp(-c)/(1+exp(-c))^2
   double e=exp(-c);
   double c2=1.+e;
   return(e/(c2*c2));
  }
//+------------------------------------------------------------------+
double Dsigma1(double c)//  вход [-1;1]
  {// (2*E^-c)/(1+E^-c)^2 
   double e=exp(-c);
   double c2=1.+e;
   return(2.*e/(c2*c2));
  }
//+------------------------------------------------------------------+
double DInvsigma0(double c)// вход [0;1] производные обратной сигмы
  {
   return(1./(c-c*c));
  }
//+------------------------------------------------------------------+
double DInvsigma1(double c)// вход [-1;1]
  {
   return(-2./(c*c-1.));
  }
//+------------------------------------------------------------------+

aber das zweite muss überprüft werden, sonst könnte es zu #IND kommen

ZZY habe ich nicht geprüft, alles muss geprüft werden, um nicht in #IND zu geraten

ZZZY sorry vergaß das Quadrat, korrigiert.

 
Urain:
Alle 4 Funktionen müssen für alle X definiert sein
 
Urain:

Dies ist die Umkehrung der oben genannten Sigmoidfunktion.

aber das zweite muss überprüft werden, sonst könnte man #IND bekommen


Fügen Sie in die Funktion etwas wie folgt ein:

if(x>0.9999999)
x=1.0;
if(x<-0.9999999)
x=-1.0;
 
joo:

Fügen Sie in die Funktion etwas wie folgt ein:

Sie können lineare Aktivatoren nennen, es gibt ohnehin keinen Grund, verwirrende Formeln zu verwenden.

ZS 39 Seite, die letzten beiden Funktionen line0() und line1().

ZZY fügte auf Seite 39 eine weitere Funktion hinzu, um Mline() auf überschüssiges -#IND #IND zu prüfen

 
Dumm.
 
TheXpert:


?

 

Warum? Ich mag es.

Ich nehme an, der Name ist kein Thema mehr?

 
TheXpert:

Warum? Ich mag es.

Ich nehme an, dass der Name nicht in Frage kommt?

))

Im Laufe der Entwicklung werden sich die Dinge, wie immer, hundertfach ändern.

 

Alles scheint in Ordnung zu sein, aber etwas ist entweder falsch oder unnötig oder fehlt...

Und es ist unklar, warum, denn bei genauerem Hinsehen gibt es überhaupt nichts wiedergutzumachen.

Haben Sie Ihren Kopf auf Ihrem Avatar?

Oder du musst dich ausschlafen. Das werde ich jetzt tun. Und morgen gehe ich auf Hechtfang.