Was soll in den Eingang des neuronalen Netzes eingespeist werden? Ihre Ideen... - Seite 69

[Gelöscht]  
Du hast in einem anderen Thread geschrieben. Trainieren Sie in talovo NS so, dass es so viele Trades wie möglich gibt. Nur dann nicht flip auf neue Daten, sondern filtern Signale nach Zeit, Volatilität, etc. etc. Suchen Sie nach stabilen Sets.

Andernfalls werden Sie nur Ihre Zeit verschwenden.
Im letzten Artikel in den Kommentaren, warf ich ein Beispiel über Hosen und Shorts. Das gleiche Prinzip.

Ihre NS wird wie eine Datenbank sein, aus der Sie mit Abfragen etwas herausziehen werden.
 
Maxim Dmitrievsky #:
Das erspart Ihnen eine Menge unnötiger Überlegungen :)

Wenn es nicht um die Gedanken ginge, würde ich jetzt meine Zeit mit dem MO-Gott Gizlyk verschwenden :)


m oskitman #:

Wie der Kaffeesatz des 21. Jahrhunderts



Generell - ja, aber es lässt einen nicht los: Da sitzt man da, zerlegt die manuelle TC von jemandem, und dann: "Mensch, beim letzten Mal habe ich das und das nicht ausprobiert" - und hier wieder



F örster #: Bei Bäumen wird es durch Splits gelöst - nur Blätter mit Prädiktorwert < 0,1 und > 0,5 ergeben keine Signale.


Ich komme nicht an sie heran.

M axim Kuznetsov#:

hat jemand etwas über NN und DL ? zumindest jemand hier ...

---

naja, außer Charts in Python und angepassten Tests:-) Zumindest "EA trades on demo and plus".

---

oder man hat das Gefühl, dass dies ein Sackgassen-Zweig der Evolution ist und der gesamte Output von Mashobuch und Neuronen in Werbung, Spam und "mutual_sending" besteht.




Es stellt sich heraus, dass es ein harter Handel ist, aber ein weicher, so dass man auf den Markt gehen kann - noch nicht.

[Gelöscht]  
Ivan Butko #:

Wenn es dumdums nicht gäbe, würde ich jetzt meine Zeit mit dem MO-Gott Gizlyk verschwenden :)

Denken ist schlecht für Ihren Körper, leihen Sie die Erfahrung ))

 
Maxim Dmitrievsky #:

Denken ist schlecht für den Körper, das weiß ich aus Erfahrung ))

Auch wahr

 
Ivan Butko #:

Die Eingabe istnicht die Stärke des Signals

Seine Stärke wird ihm durch Gewichte gegeben. Aber die Eingangszahl selbst trägt a priori bereits(!) ein Potenzierungselement - ihren quantitativen Faktor.




Vorhin habe ich das Problem des Verständnisses von Eingabedaten angesprochen: Indem wir der Eingabe eine Zahl geben, verleihen wir ihr bereits von vornherein einen Kraftwert. Das ist ein Fehler, denn das Wesen unserer NS besteht darin, den Kraftfaktor zu finden und ihn auf die Eingänge zu verteilen.

Ich verstehe das nicht ganz, unterrichten Sie mit einem Lehrer?
 
Andrey Dik #:
Ich verstehe nicht ganz, unterrichten Sie mit einem Lehrer?







In MT5-Optimierung. Und ich habe es mit einem Lehrer in NeuroPro probiert. Der Kern des theoretischen Problems läuft auf Folgendes hinaus:Wenn der Eingabebereich von 0 bis 1 reicht, wird der NS niemals den Gral finden, wenn die Drain-Muster im oberen Bereich in den Zahlen des unteren Bereichs begraben sind, weil er den oberen "abwürgen" muss, und bei statischen Gewichten kommt alles, was unten ist, auch unter das Messer.

Das Ergebnis ist, dass der Addierer eine Zahl erhält, die sowohl aus den Drain-Daten als auch aus den Arbeitsdaten besteht - 50/50.






Und wenn der Eingabebereich von -1 bis 1 reicht und der Gral irgendwo in der Mitte liegt, passiert dasselbe: Der NS dämpft die Extreme und der Gral wird weggespült.Aber wenn Sie ein Filtermodul erstellen, wird die Zahl 0,9 in 0,01 oder überhaupt in 0 "verwandelt".

Und die Zahl 0,63 zu 0,99 usw. - ich gehe davon aus, dass diese Methode zumindest besser ist als die Standardmethode und höchstens ein Potenzial hat. Und schon sollten diese Zahlen dem NS zugeführt werden, der Regeln für die Arbeit mit vom Rauschen "befreiten" Eingabedaten erstellen wird .

 
Ivan Butko #:




Die Essenz des theoretischen Problems läuft auf Folgendes hinaus:Wenn der Eingangsbereich von 0 bis 1 reicht, wird der NS niemals den Gral an den Drain-Mustern im oberen Bereich finden, wenn er in den Zahlen des unteren Bereichs begraben ist, weil er den oberen "abwürgen" muss und bei statischen Gewichten alles, was tiefer liegt, ebenfalls unter das Messer gerät.

Das Ergebnis ist, dass der Addierer eine Zahl erhält, die sowohl aus Drain-Daten als auch aus Arbeitsdaten besteht - 50/50 und es stellt sich heraus.




Und wenn der Eingabebereich von -1 bis 1 reicht und der Gral irgendwo in der Mitte liegt - dann passiert das Gleiche: der NS dämpft die Extreme und der Gral wird weggespült.Aber wenn Sie ein Filtermodul erstellen, dann wird die Zahl 0,9 zu 0,01 oder überhaupt zu 0 "werden".

Und die Zahl 0,63 wird zu 0,99 usw. - ich gehe davon aus, dass diese Methode zumindest besser ist als die Standardmethode und höchstens ein Potenzial hat. Und schon sollten diese Zahlen in das NS eingespeist werden, das Regeln für die Arbeit mit von Rauschen "befreiten" Eingabedaten erstellen wird .

Ja... ich glaube, ich verstehe, was Sie meinen (korrigieren Sie mich, wenn es falsch ist). Ein Neuron eines herkömmlichen MLP fasst die Produkte der ihm zugeführten Eingaben und der entsprechenden Gewichte zusammen, verschiebt die Summe und transformiert sie dann nichtlinear (die Verschiebung ist für jedes Neuron gleich, unabhängig von den ihm zugeführten Signalen). Das heißt, es ist nicht möglich, jede Eingabe einzeln linear zu verschieben. Wenn die Aufgabe darin besteht, die Eingabewerte des Netzes zu korrigieren, kann man MLP ein wenig verbessern, indem man eine zusätzliche Korrekturschicht (ohne Aktivierungsfunktion) zwischen der Eingabeschicht und der ersten versteckten Schicht einfügt, deren Aufgabe darin besteht, die Werte der Eingabeschicht linear zu korrigieren. Es stellt sich heraus, dass für jeden Eingang des Netzes ein zusätzliches Gewicht und ein zusätzlicher Offset erforderlich wären. In der Tat ist nur eine dieser zusätzlichen Schichten erforderlich, und dann geht alles wie gewohnt weiter.

Interessant, nicht schwer zu implementieren.

Es ist klar, dass, wenn im Voraus bekannt war, wie die Eingabewerte umgewandelt werden sollten, sie als zwei Bytes nehmen und umwandeln würden, um sie zu senden, aber wenn es unbekannt ist, macht eine solche zusätzliche Schicht Sinn.

IMLP - verbesserteMLP
 
Ivan Butko #:




Wenn der Eingabebereich von 0 bis 1 reicht, wird der NS niemals den Gral finden, wenn die Pflaumenmuster im oberen Bereich in den Zahlen des unteren Bereichs begraben sind, weil er den oberen Bereich "blockieren" muss, und bei statischen Gewichten wird alles, was tiefer liegt, ebenfalls unter das Messer kommen. Als Ergebnis wird der Addierer eine Zahl erhalten, die sowohl aus Pflaumen- als auch aus Arbeitsdaten besteht - 50/50.


Ihr Problem ist leicht zu lösen: Teilen Sie jedes Datenblatt in die gewünschte Anzahl von Bereichen (3,5,10,50...) und füttern Sie diese als separate Blätter. Für jeden Bereich werden die Koeffizienten individuell angepasst.
Wenn Sie einen Gral im oberen Drittel versteckt haben, wird er von diesem einzelnen Fiche gefunden.

 
Andrey Dik #:

Ja... ich glaube, ich verstehe, wovon Sie sprechen (korrigieren Sie mich, wenn ich falsch liege). Ein Neuron eines herkömmlichen MLP summiert die Produkte der Eingaben und der entsprechenden Gewichte, verschiebt die Summe und transformiert sie dann nichtlinear (die Verschiebung ist für jedes Neuron gleich, unabhängig von den Signalen, die es erhält). Das heißt, es ist nicht möglich, jeden Eingang einzeln linear zu verschieben. Wenn die Aufgabe darin besteht, die Eingabewerte des Netzes zu korrigieren, kann man MLP ein wenig verbessern, indem man eine zusätzliche Korrekturschicht (ohne Aktivierungsfunktion) zwischen der Eingabeschicht und der ersten versteckten Schicht einfügt, deren Aufgabe darin besteht, die Werte der Eingabeschicht linear zu korrigieren. Es stellt sich heraus, dass für jeden Eingang des Netzes ein zusätzliches Gewicht und ein zusätzlicher Offset erforderlich wären. Tatsächlich ist nur eine dieser zusätzlichen Schichten erforderlich, und dann geht es weiter wie bisher.

Interessant, nicht schwer zu implementieren.

Es ist klar, dass, wenn es im Voraus bekannt war, wie die Eingabewerte umgewandelt werden sollten, sie als zwei Bytes nehmen und umwandeln würden, um sie zu senden, aber wenn es unbekannt ist, macht eine solche zusätzliche Schicht Sinn.

IMLP - verbesserteMLP






Ja, das ist eine Art des Filterns Der einfachste Weg und auch der effizienteste: fügen Sie einfach eine "if"-Bedingung ein. If N1 < IN < N2, then IN = Filter[i]; Ich habe es so mit einer Schleife gemacht

double CalculateNeuron(double &in[],    double &w[])
  {
   double NET=0.0;

   for (int n = 0; n < ArraySize(in); n++)
     {
      NET += /*x[n] **/ W(in[n], w);
     }    
    
   return((NET     ));
  // return(ActivateNeuron(NET));
  }
double W(double in,   double &w[])
  {
    double x = MathAbs(in);
  //  double x = in;
    
    double r1 = 1.0;
    double r2 = 1.0;
    double z  = 0.0125;           // затрагивает весь диапазон от 0 до 1
   // double z  = 0.00625;          // диапазон от 0.5 до 1
   // double z  = 0.003125;         // диапазон от 0.75 до 1
   // double z  = 0.0015625;        // диапазон от 0.875 до 1
   // double z  = 0.00078125;       // диапазон от 0.9375 до 1
   // double z  = 0.000390625;      // диапазон от 0.96875 до 1
   // double z  = 0.0001953125;     // диапазон от 0.984375 до 1
    r2 -= z;
    
    double res;
    
    int i = 0;   
   
    if (x >= r1)              res = w[i]; 
    for (i = 1; i < 80; i++)
      {
        if (x < r1 && x >= r2)    res = w[i];    r1 -= z;    r2 -= z;
      }
    if (x < r1 && x > 0)    res = w[i];    r1 -= z;    r2 -= z;

    if (in < 0) res = -res;      // если на вход попало минусовое число — скорректированное также умножаем на (-1)
    
    return res;
  }




Wenn der Eingang mit allen möglichen Kanalgrenzen gespeist wird, die eine hohe Wahrscheinlichkeit für Korrekturen von den Grenzen haben, kann der Bereich in zwei Teile geteilt werden, von denen einer ignoriert (genullt) wird und der zweite intensiver korrigiert wird. Dieser Weg ist die schnellste Anpassung (Umschulung), die es geben kann.

Aber nein, die Q-Tabelle steht an erster Stelle und diese Methode an zweiter Stelle. MLP hingegen ist ein sehr... sehr spezifisches Werkzeug für den Forex-Bereich. Ich denke sogar, dass es ein störendes Werkzeug ist.



F örster #:


Ihr Problem ist leicht zu lösen: Unterteilen Sie jedes Merkmal in die erforderliche Anzahl von Bereichen (3,5,10,50...) und reichen Sie sie als separate Merkmale ein. Für jeden Bereich werden die Koeffizienten einzeln angepasst.
Wenn Sie einen Gral im oberen Drittel versteckt haben, wird er von diesem einzelnen Fiche gefunden werden.

Ich denke, das ist ungefähr das, was ich gemacht habe.
 
Maxim Kuznetsov #:

Hatte jemand Glück mit NN und DL...

---

außer Python-Charts und angepassten Tests:-) Zumindest "EA trades on demo and plus".

---

oder man hat das Gefühl, dass dies ein Sackgassen-Zweig der Evolution ist und der gesamte Output von Mashobuch und Neuronen in Werbung, Spam und "mutual_sending" besteht.

Ich denke, die Zweifel sind unbegründet. Beurteilen Sie den Fortschritt nicht nach falschen Gralspythonianern und wir werden sehen.