Diskussion zum Artikel "Neuronale Netzwerke leicht gemacht (Teil 13): Batch-Normalisierung" - Seite 2
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Die Eingaben sind eine Einheit pro Sekunde.
Beim Lesen des Netzes aus der Datei sollte die Funktion zur Erzeugung von Zufallsgewichten keinen Wert haben. Die Gewichte werden aus der Datei gelesen. Aber in Ihrer Funktion ist die Generierung nicht zufällig und erzeugt bei jedem Neustart die gleichen Gewichte, deshalb konvergiert das Ergebnis. Überprüfen Sie Ihren Code. Es scheint, dass Sie nach dem Lesen das trainierte Netz mit Zufallsgewichten überschreiben.
Hallo Dmitriy
Bitte hätten Sie ein Code-Beispiel für ein LSTM mit der Version der neuronet.mqh-Datei von Artikel 13?
Ich habe versucht, Artikel 4 fractal_lstm.mq5 Datei zu verwenden, aber ohne Erfolg ... ein Fehler tritt beim Training auf ...
Prost
Neuer Artikel Neuronale Netze leicht gemacht (Teil 13): Batch Normalisierung ist erschienen:
Autor: Dmitri Gizlyk
Für mich als Anfänger mit NN war es sehr erhellend. Ich möchte Ihre Vorschläge nutzen, um einen EA zu programmieren. Es sollte ein Baukasten für DNN sein, um verschiedene Funktionen und Topologien auszuprobieren und zu lernen, welche besser sind.
Also habe ich dein letztes Beispiel (MLMH + Convolutional) modifiziert.
Ich habe viele verschiedene Aktivierungsfunktionen (32 Funktionen - Gauß, SeLU, SILU, Softsign, Symmetric Sigmoid,...) und deren Ableitungen hinzugefügt,
Ich habe die Fehler-/Erfolgsberechnung (Buy, Sell, DontBuySell) geändert, weil ich denke, dass "Don't trade" nicht undefiniert ist. Wenn das NN also keinen Kauf und keinen Verkauf erkennt und dies in der Realität korrekt ist, sollte es in der Feedbackschleife belohnt werden.
Vielleicht hat jemand schon Lösungen oder kann bei folgenden Fragen helfen:
Ich bin nicht in der Lage, Funktionen zu erstellen, die die Gewichte der gesamten Schicht benötigen: Softmax, Maxout, PRelu mit gelerntem Alpha.
Auch bin ich nicht in der Lage, verschiedene Optimierungen durchzuführen (AdaBound, AMSBound, Momentum).
Ich denke an einen DNN-Builder-EA zum Testen, um die beste Netztopologie zu finden.
1. Wie kann ich die Anzahl der Neuronen und Gewichte pro Schicht ermitteln?
2. Welche Topologie schlagen Sie vor? Ich habe viele Variationen ausprobiert:
A) Ein paar Neuronenschichten mit Anzahl=19000, dann absteigende Anzahl in den nächsten Schichten *0.3
B) 1 Convolutional + 12 Schichten MLMH mit je 300 Neuronen
C) 29 Schichten mit je 300 Neuronen
D) 29 Schichten mit je 300 Neuronen und Normalisierung zwischen jeder Schicht.
Ich erhalte Vorhersagen bis maximal 57%, aber ich denke, es kann/muss besser sein.
Sollte es Schichten mit steigender Neuronenzahl geben und dann wieder absteigend?
3. Wie kann ich einen Rücktest machen? Es gibt eine Bedingung, die in den Testmodi false zurückgibt - ich habe versucht, das zu bemerken, aber ohne Erfolg.
Es gibt viele sehr detaillierte Erklärungen, aber ich verstehe manche Übersicht nicht.
4. Welche Ebene nach welcher? Wo sollten die BatchNorm-Schichten sein?
5. Wie viele Ausgangsneuronen hat convolutional oder all die multi head wie MLMH, wenn layers=x, step=y, window_out=z? Ich muss die Anzahl der nächsten Neuronenschicht berechnen. Ich möchte zu große Schichten oder Engpässe vermeiden.
6. Was ist mit LSTM_OCL?
Ist es zu schwach in Bezug auf Aufmerksamkeit/MH, MHML?
7. Ich möchte eta für jede Schicht implementieren, hatte aber keinen Erfolg (Mangel an Know-How über Klassen - ich bin ein guter Codierer der 3. Ich habe eine Konstante von 0,6+.
9. Was ist mit den Bias-Neuronen in den bestehenden Layouts?
Ich habe schon wochenlang viele Webseiten studiert, aber keine Antworten auf diese Fragen gefunden.
Aber ich freue mich darauf, dies zu lösen, aufgrund des positiven Feedbacks von anderen, die bereits Erfolg hatten.
Vielleicht gibt es demnächst Teil 14 mit Lösungen für all diese Fragen?
Mit freundlichen Grüßen
und vielen Dank im Voraus
HI. Ich erhalte folgende Fehlermeldung
CANDIDATE FUNCTION NOT VIABLE: NO KNOW CONVERSION FROM 'DOUBLE __ATTRIBUTE__((EXT_VECTOR_TYPE92000' TO 'HALF4' FOR 1ST ARGUMENT
2022.11.30 08:52:28.185 Fractal_OCL_AttentionMLMH_b (EURJPY,D1) OpenCL program create failed. Fehlercode=5105
bei Verwendung von EA seit Artikel Teil 10 Beispiele
Bitte irgendeinen Tipp???
Dankeschön
bei Verwendung von EA seit Artikel Teil 10 Beispiele
Bitte eine Vermutung???
Dankeschön
Hallo, können Sie das vollständige Protokoll senden?
Hallo. Danke für die Hilfe
Rogerio
Hallo. Danke für die Hilfe
Rogerio
Hallo Rogerio.
1. Du erstellst kein Modell.
2. Deine GPU unterstützt keine Verdopplung. Bitte lade die letzte Version aus dem Artikel https://www.mql5.com/ru/articles/11804
Hallo Dmitrij
Du hast geschrieben: Du erstellst kein Modell.
Aber wie kann ich ein Modell erstellen? Ich kompiliere alle Programmschriften und führe den EA aus.
Der EA erstellt eine Datei im Ordner 'files' mit der Erweiterung nnw. Diese Datei ist nicht das Modell?
Vielen Dank
Hallo Herr Lehrer Dmitriy
Jetzt kompiliert keine der .mqh
Wenn ich zum Beispiel versuche, die vae.mqh zu kompilieren, erhalte ich folgende Fehlermeldung
'MathRandomNormal' - nicht deklarierter Bezeichner VAE.mqh 92 8
Ich werde versuchen, wieder von vorne anzufangen.
Eine weitere Frage: Wenn Sie eine neue Version von NeuroNet.mqh erstellen, ist diese Version dann vollständig kompatibel mit den anderen älteren EA?
Vielen Dank
rogerio
PS: Selbst wenn ich alle Dateien und Verzeichnisse lösche und mit einer neuen Kopie von Teil 1 und 2 beginne, kann ich keinen Code mehr kompilieren.
Zum Beispiel, wenn ich versuche, den Code in fractal.mq5 zu kompilieren, erhalte ich diesen Fehler:
cannot convert type'CArrayObj *' to reference of type 'const CArrayObj *' NeuroNet.mqh 437 29
Sorry, ich wollte wirklich Ihre Artikel und Ihren Code verstehen.
PS2: OK ich habe das Wort 'const' bei 'feedForward', 'calcHiddenGradients' und 'sumDOW' entfernt und konnte nun die Fractal.mqh und Fractal2.mqh kompilieren