Diskussion zum Artikel "Neuronale Netze leicht gemacht" - Seite 7

 

Leider ist ein neuronales Netz kein Allheilmittel. In dem Sinne, dass, wenn Sie Müll in seine Eingabe füttern, werden Sie Müll am Ausgang erhalten, egal wie viel Sie es trainieren und wie viele Schichten Sie nicht machen.

Ich nenne alle in das Trading-Terminal eingebauten Indikatoren und alle gängigen Methoden der Techanalyse, die versuchen, die Zukunft auf der Grundlage des vergangenen Kursverhaltens vorherzusagen.

Deshalb ist die richtige Auswahl der Eingangssignale die Grundlage für den Erfolg beim Einsatz von NS im Handel. Selbst die Architektur des NS ist nicht so wichtig wie gute Eingangssignale (Sie können mich mit Steinen bewerfen:) ).


P.S. Ich würde gerne einen Artikel über den Einsatz von Reinforcement Learning sehen.

Ich versuche selbst, in diese Richtung zu gehen, und benötige daher zusätzliche Informationen von sachkundigen Personen.

 
Es wäre großartig, wenn jemand diesen Artikel in der Praxis anwenden könnte.
 

Gibt es etwas falsch mit der Backpropagation-Funktion?

Ich baue einen sehr einfachen Experten mit dieser Bibliothek, aber die Ausgabeschicht gibt immer die gleichen Werte aus... ich verwende nur zwei Ausgabeschichten.

//--- offen
   m_Trade.SetExpertMagicNumber(symbol.magicnumber);
   
   BackPropagation(symbol);
   
   CArrayDouble *inputVals = new CArrayDouble();
   
   for(int i=0;i<inputNeurons;i++)inputVals.Add((iClose(symbol.name,PERIOD_CURRENT,i)-iClose(symbol.name,PERIOD_CURRENT,i+1))/iClose(symbol.name,PERIOD_CURRENT,i+1));
   
   symbol.Net.feedForward(inputVals);
   
   CArrayDouble *results = new CArrayDouble();
   
   symbol.Net.getResults(results);
   
   Print(results.At(0)," ",results.At(1));
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
void BackPropagation(CSymbol &symbol)
{
   
   CArrayDouble *targetVals = new CArrayDouble();
     
   if(iClose(symbol.name,PERIOD_CURRENT,0)-iClose(symbol.name,PERIOD_CURRENT,1) > 0)
   {
      targetVals.Add(1);targetVals.Add(0);
   }
   else
   {
      targetVals.Add(0);targetVals.Add(1);
   }
   
   symbol.Net.backProp(targetVals);
}


Es wäre toll, wenn mir jemand sagen könnte, ob ich einen Schritt im Prozess übersehe.

danke.

[Gelöscht]  
Es kam immer wieder zu Speicherlecks. Ich arbeite an meinem eigenen Modell rynna
[Gelöscht]  
Vitaliy davydov :

Leider ist das neuronale Netz kein Allheilmittel. In dem Sinne, dass, wenn Müll zu seinem Eingang gefüttert wird, dann wird Müll am Ausgang empfangen werden, egal wie viele trainieren es nicht oder wie viele Schichten nicht.

Und als Müll bezeichne ich alle Indikatoren, die in das Handelsterminal eingebaut sind, und alle gängigen Methoden der technischen Analyse, die versuchen, die Zukunft anhand des vergangenen Kursverhaltens vorherzusagen.

Daher ist die richtige Auswahl der Eingangssignale die Grundlage des Erfolgs beim Einsatz von NS im Handel. Selbst die Architektur des NS ist nicht so wichtig wie gute Eingangssignale (Sie können Steine bei mir lassen :)).


PS: Ich würde gerne einen Artikel über den Einsatz von Verstärkungstraining sehen.

Ich selbst versuche, in diese Richtung zu gehen, und brauche daher zusätzliche Informationen von sachkundigen Personen.

Ich auch. Aber ich dachte mir, der beste Weg, meinen eigenen Reinforcement-Learning-Algorithmus zu verstehen und zu entwickeln, ist, zuerst zu verstehen, wie neuronale Netzwerke lernen.

PS: Ich erstelle benutzerdefinierte Indikatoren, die auf reinen Preisaktionen basieren und lese meine Berechnungsergebnisse aus dem EA. Eine gute Möglichkeit, zwei Threads zu nutzen.✔✔✔

[Gelöscht]  
Nelson Wanyama:
Es kam immer wieder zu Speicherlecks. Ich arbeite an meinem eigenen Modell rynna

Das Modell ist fertig. Den Quellcode und ein einfaches Arbeitsbeispiel finden Sie unter https://www.mql5.com/en/forum/338341/page4#comment_17770620

Es ist ein laufendes Projekt. Vielleicht möchten Sie den Thread ab und zu besuchen, um einige erstaunliche Erweiterungen zu erhalten, die noch in der Entwicklung sind.

The Ultimate AI EA Project
The Ultimate AI EA Project
  • 2020.07.14
  • www.mql5.com
Hello everyone. I would like to call upon every worthy programmer and trader to a crucial mission...
 
Dmitriy Gizlyk:

Die "5 Why"-Technik basiert auf aufeinander aufbauenden Fragen, wobei jede Frage den Grund für die vorangegangene Frage beantwortet. Wir betrachten zum Beispiel einen Chart und einen Chart mit steigenden Kursen und und konstruieren Fragen (die Fragen werden in der Zusammenfassung beantwortet, um die Technik zu erklären):
1. Wo soll gehandelt werden - Kaufen
2. Warum kaufen? - Weil es sich um einen Aufwärtstrend handelt
3. Warum ein steigender Trend? - Der MA50 steigt
4. Warum steigt der MA50? - Der durchschnittliche Schlusskurs von 50 Kerzen mit einer Verschiebung von 1 ist niedriger als der durchschnittliche Schlusskurs der letzten 50 Kerzen.

usw.
Da die Fragen aufeinander aufbauen und eine Ursache-Wirkungs-Beziehung aufweisen, erstellen wir Ebenen, um dieser Beziehung zu folgen. Wenn wir nur 2 Schichten verwenden, geht die Ursache-Wirkungs-Beziehung verloren, das neuronale Netz analysiert eine Reihe von unabhängigen Optionen und wählt die beste aus.

Ich lese dies und denke: Das scheint Sinn zu machen.

Aber das ist es nicht! Ich erstelle ein neuronales Netz mit 1 Schicht, und es liefert gute Ergebnisse. Ich füge eine zweite Schicht hinzu, und das Ergebnis ist schlechter.

Die Anzahl der Schichten wird also nicht durch logische Überlegungen bestimmt, sondern durch das Ergebnis der Arbeit. Du hast das Ergebnis der Arbeit nicht, du hast nicht darüber nachgedacht, ob es eine Strategie ist, also scheint es dir, dass es etwas mit etwas ist.

Außerdem. Warum glauben Sie, dass Kaufen und Verkaufen unterschiedliche Entscheidungen des neuronalen Netzes sind? Kaufen und Verkaufen sind die gleiche Entscheidung, einen Vermögenswert zu kaufen. Ansonsten ist das völliger Unsinn. Geben Sie negative Werte des Oszillators in die Eingänge ein, um eine Ausgabe kleiner als Null zu erhalten, und positive Werte, um eine Ausgabe größer als Null zu erhalten? Aber wenn der Oszillator unter Null liegt, handelt es sich um eine überverkaufte Zone, und Sie sollten kaufen, nicht verkaufen.

Kurz gesagt, denken Sie über das Ergebnis nach, und die Dinge werden sich sofort in eine andere Richtung entwickeln. Armer, armer Rosenblat...

 
Evgeniy Scherbina:

Ich lese dies und denke: Das scheint Sinn zu machen.

Aber das tut es nicht! Ich erstelle ein neuronales Netz mit 1 Schicht, und es liefert gute Ergebnisse. Ich füge eine zweite Schicht hinzu, und das Ergebnis ist schlechter.

Die Anzahl der Schichten wird also nicht durch logische Überlegungen bestimmt, sondern durch das Ergebnis der Arbeit. Du hast das Ergebnis der Arbeit nicht, du hast nicht darüber nachgedacht, ob es eine Strategie ist, also denkst du, es ist etwas mit etwas.

Außerdem. Warum glauben Sie, dass Kaufen und Verkaufen unterschiedliche Entscheidungen des neuronalen Netzes sind? Kaufen und Verkaufen sind die gleiche Entscheidung, einen Vermögenswert zu kaufen. Ansonsten ist das völliger Unsinn. Geben Sie negative Werte des Oszillators in die Eingänge ein, um eine Ausgabe kleiner als Null zu erhalten, und positive Werte, um eine Ausgabe größer als Null zu erhalten? Aber wenn der Oszillator unter Null liegt, handelt es sich um eine überverkaufte Zone, und wir sollten kaufen, nicht verkaufen.

Kurz gesagt, denken Sie über das Ergebnis nach, und die Dinge werden sich sofort in eine andere Richtung bewegen. Armer, armer Rosenblat...

Mit einem Neuron kommt man auf die Autokorrelationsfunktion.
Und wenn wir von Kaufen und Verkaufen sprechen, ja, in beiden Fällen geht es nur um den Kauf verschiedener Vermögenswerte. Und das neuronale Netz trifft die Entscheidung, den einen oder anderen Vermögenswert zu kaufen, auf der Grundlage der Analyse der gleichen Daten, die dem Eingang zugeführt werden. Und die Entscheidung wird auf der Grundlage der Analyse der Trainingsstichprobe getroffen. Im Laufe des Trainings ändern sich die Gewichtungskoeffizienten, und ihr Vorzeichen kann sich ins Gegenteil verkehren.

 
Aleksey Mavrin:

Methode 5 ähnelt einem Entscheidungsbaum, auch der Bereich der Lösungs-/Ursachensuche wird schrittweise eingegrenzt. Es ist jedoch nicht klar, wie es mit der Tatsache zusammenhängt, dass im NS 4 Schichten in einer solchen Struktur verwendet werden. Ich verstehe, dass die Struktur kompliziert ist, z. B. wird die zweite Schicht mit dem summierten Ausgangssignal der ersten Schicht und dem unveränderten Eingangssignal gefüttert, usw.

Können Sie mir sagen, ob Sie sich auf eine andere Arbeit gestützt haben, die eine solche Grundlage für die Wahl der Anzahl der Schichten verwendet? Oder ist dies Ihr Know-how?

s.s. Die Arbeit ist gut, danke.

Können Sie das beantworten?

 
Aleksey Mavrin:

Können Sie das beantworten?

Methode 5 - warum bildlich dargestellt. Die Anzahl der Schichten wird oft experimentell gewählt. In der Literatur wird erwähnt, dass Netze mit einer versteckten Schicht für Probleme verwendet werden, bei denen Objekte linear in 2 Teile geteilt werden können. Eine Erhöhung der Anzahl der Schichten ermöglicht die Lösung komplexerer Probleme.