Diskussion zum Artikel "Neuronale Netze leicht gemacht (Teil 31): Evolutionäre Algorithmen"

 

Neuer Artikel Neuronale Netze leicht gemacht (Teil 31): Evolutionäre Algorithmen :

Im vorangegangenen Artikel haben wir uns mit nicht-gradientenbasierten Optimierungsmethoden befasst. Wir haben uns mit dem genetischen Algorithmus vertraut gemacht. Heute werden wir dieses Thema fortsetzen und eine andere Klasse von evolutionären Algorithmen besprechen.

Nach der Optimierung wurde das Modell mit dem Strategietester getestet. Um das Modell zu testen, habe ich den EA Evolution-test.mq5 verwendet, der eine exakte Kopie des EA aus mehreren früheren Artikeln ist. Die Änderungen betrafen nur den Dateinamen des geladenen Modells. Der vollständige Code des EAs befindet sich im Anhang.

Der EA wurde für den Zeitraum der letzten 2 Wochen getestet, der nicht in der Trainingsstichprobe enthalten war. Das bedeutet, dass der EA unter realitätsnahen Bedingungen getestet wurde. Die Testergebnisse haben die Tragfähigkeit des vorgeschlagenen Ansatzes gezeigt. Das nachstehende Schaubild zeigt die zunehmende Dynamik des Gleichgewichts. Insgesamt wurden während des Testzeitraums 107 Abschlüsse getätigt. Davon waren fast 55 % rentabel. Das Verhältnis von gewinnbringenden zu verlustbringenden Geschäften liegt nahe bei 1:1, aber der durchschnittliche Gewinn liegt um 43 % höher als der durchschnittliche Verlust. Daraus ergibt sich ein Gewinnfaktor (Profit Factor) von 1,69. Der Erholungsfaktor (Recovery Factor) erricht 3,39.

Testergebnisse des trainierten Modells

Testergebnisse des trainierten Modells


Autor: Dmitriy Gizlyk

 
MetaQuotes:

Der Artikel Neuronale Netze sind einfach (Teil 31) wurde veröffentlicht : Evolutionäre Algorithmen:

Autor: Dmitriy Gizlyk


Es ist ein Fehler aufgetreten. Bitte sagen Sie mir, wie ich ihn lösen kann

2022.10.21 18:23:12.259 Evolution (EURUSD,H1) 1 nicht gelöschte Objekte übrig
2022.10.21 18:23:12.259 Evolution (EURUSD,H1) 1 Objekt vom Typ CBufferFloat übrig
2022.10.21 18:23:12.259 Evolution (EURUSD,H1) 1280 Bytes an ausgelaufenem Speicher
2022.10.21 18:23:13.785 Evolution (EURUSD,H1) EURUSD_PERIOD_H1_Evolution.nnw
2022.10.21 18:23:13.858 Evolution (EURUSD,H1) OpenCL: GPU-Gerät 'NVIDIA GeForce RTX 3080' ausgewählt
2022.10.21 18:23:16.085 Evolution (EURUSD,H1) Fehler der Ausführung Kernel SoftMax FeedForward: 5109
2022.10.21 18:23:16.085 Evolution (EURUSD,H1) Train -> 206


Im Protokoll
2022.10.21 18:23:12.281 Experten Experten Evolution (EURUSD,H1) erfolgreich geladen


Und nichts passiert, Stille, ich kann die Grafikkarte nicht hören, sie macht normalerweise Geräusche bei der Arbeit (mit dem gleichen Fractal OCL als Beispiel).
 
Ivan Butko #:


Es wird ein Fehler angezeigt. Bitte sagen Sie mir, wie ich ihn lösen kann

2022.10.21 18:23:12.259 Evolution (EURUSD,H1) 1 nicht gelöschte Objekte übrig
2022.10.21 18:23:12.259 Evolution (EURUSD,H1) 1 Objekt vom Typ CBufferFloat übrig
2022.10.21 18:23:12.259 Evolution (EURUSD,H1) 1280 Bytes an ausgelaufenem Speicher
2022.10.21 18:23:13.785 Evolution (EURUSD,H1) EURUSD_PERIOD_H1_Evolution.nnw
2022.10.21 18:23:13.858 Evolution (EURUSD,H1) OpenCL: GPU-Gerät 'NVIDIA GeForce RTX 3080' ausgewählt
2022.10.21 18:23:16.085 Evolution (EURUSD,H1) Fehler der Ausführung Kernel SoftMax FeedForward: 5109
2022.10.21 18:23:16.085 Evolution (EURUSD,H1) Train -> 206


Im Protokoll
2022.10.21 18:23:12.281 Experten Experten Evolution (EURUSD,H1) erfolgreich geladen


Und nichts passiert, Stille, ich kann die Grafikkarte nicht hören, sie macht normalerweise Geräusche bei der Arbeit (mit dem gleichen Fractal OCL als Beispiel).

Versuchen Sie, die Populationsgröße zu reduzieren. Setzen Sie sie für das Experiment auf 5-10. Wenn der Fehler verschwindet, erhöhen Sie sie. Und finden Sie experimentell die akzeptable Grenze.

 
Dmitriy Gizlyk #:

Versuchen Sie, die Populationsgröße zu verringern. Setzen Sie sie für das Experiment auf 5-10. Wenn der Fehler nicht mehr auftritt, erhöhen Sie die Zahl. Und finden Sie experimentell die akzeptable Grenze.

Ich habe es versucht, ich habe sie von 5 auf 10 gesetzt und einen Versuch gemacht. Derselbe Fehler:

2022.10.22 01:42:08.768 Evolution (EURUSD,H1) Fehler der Ausführung Kernel SoftMax FeedForward: 5109.


Mir ist etwas aufgefallen, das vielleicht damit zusammenhängt: Beim Speichern eines Modells erscheint auf der linken Seite des Fensters folgende Aufschrift: "Fehler beim Laden des Modells, Datei auswählen, Fehler-ID: 5004". Vielleicht hat das eine Auswirkung.


Außerdem: die erstellte Datei sollte 16 Megabyte wiegen! Es ist ungewöhnlich, solche Größen in mql zu sehen.




UPD

Ich habe es auf meinem Laptop versucht, es will auch nicht trainieren:

2022.10.22 13:07:36.028 Evolution (EURUSD,H1) EURUSD_PERIOD_H1_Evolution.nnw
2022.10.22 13:07:36.028 Evolution (EURUSD,H1) OpenCL: GPU device 'Intel(R) UHD Graphics' selected
2022.10.22 13:07:37.567 Evolution (EURUSD,H1) 9 nicht gelöschte Objekte übrig
2022.10.22 13:07:37.567 Evolution (EURUSD,H1) 1 Objekt vom Typ CLayer übrig
2022.10.22 13:07:37.567 Evolution (EURUSD,H1) 1 Objekt vom Typ CNeuronBaseOCL übrig
2022.10.22 13:07:37.567 Evolution (EURUSD,H1) 7 Objekte des Typs CBufferFloat verlassen
2022.10.22 13:07:37.567 Evolution (EURUSD,H1) 2688 Bytes an ausgelaufenem Speicher

Im Protokoll:

2022.10.22 13:07:34.716 Experten Experte Evolution (EURUSD,H1) erfolgreich geladen
2022.10.22 13:07:37.568 Experten Initialisierung von Evolution (EURUSD,H1) mit Code 1 fehlgeschlagen
2022.10.22 13:07:37.580 Experten Experte Evolution (EURUSD,H1) entfernt


 
Ivan Butko #:

Mir ist etwas aufgefallen, das vielleicht damit zusammenhängt: Beim Speichern eines Modells erscheint auf der linken Seite des Fensters folgende Aufschrift: "Fehler beim Laden des Modells, Datei auswählen, Fehler-ID: 5004". Vielleicht hat das eine Auswirkung.


Es handelt sich nicht um einen Fehler, NetCreator versucht nur, das Modell auf der linken Seite zu laden und es ist keine Datei angegeben. Der Fehler 5004 ist ein Fehler beim Öffnen einer Datei.

 
Ivan Butko #:

Ich habe es versucht, ich von 5 bis 10 gesetzt, und ich habe versucht, ein. Gleicher Fehler:

2022.10.22 01:42:08.768 Evolution (EURUSD,H1) Fehler der Ausführung Kernel SoftMax FeedForward: 5109

Haben Sie alle Dateien aus dem letzten Artikel verwendet?

 
Dmitriy Gizlyk #:

Haben Sie alle Dateien aus dem letzten Artikel verwendet?

Ja.

Wenn der Fehler mit OpenCl zusammenhängt, sollte vielleicht der Prozessor irgendwie umgeschaltet werden, vielleicht will er nicht
Ich habe es auf verschiedenen Terminals versucht.

 

Wenn derselbe Abschnitt der Geschichte des trainierten Modells wiederholt getestet wird, ist das Ergebnis zufällig

Dateien:
qoymbc.gif  928 kb
 
Ivan Butko #:

Wenn derselbe Abschnitt der Geschichte des trainierten Modells wiederholt getestet wird, ist das Ergebnis zufällig

Dies ist bei einem ungeübten Modell möglich oder wenn die analysierten Daten keine Präferenz für eine Aktion zulassen. Wie man sieht, verwendet der Algorithmus die zufällige Auswahl einer Aktion aus einer Wahrscheinlichkeitsverteilung. Wenn das Modell für alle Aktionen gleiche Wahrscheinlichkeiten erzeugt, dann erhalten wir am Ausgang ein zufälliges Ergebnis.

 
Dmitriy Gizlyk #:

Dies ist mit einem untrainierten Modell möglich

Müssen Sie, um ein Modell zu trainieren, unbedingt die in den Einstellungen festgelegten 1000 Generationen durchführen? (mehr als ein Tag Training mit dem 3080)

 

Sie schrieben: "Der Prozess der Modellschulung wurde bereits in früheren Artikeln beschrieben. Ich werde nicht weiter darauf eingehen."

Ich verstehe, dass Sie sich nicht wiederholen wollen, aber können Sie Ihren Lesern wenigstens einen Verweis auf den Artikel geben, in dem sie diese Informationen finden können