+
Ist dies ein Beispiel für MLP? Ist das Lernen mit Adam schneller geworden? Ich erinnere mich, dass Epochen beim letzten Mal sehr lange zum Lernen gebraucht haben.
Der stochastische Gradient braucht mit Sicherheit sehr lange, um zu funktionieren.
Vielen Dank für diesen Artikel.
Gibt es Pläne, andere Methoden zur Berechnung der Lernverlustfunktion zu organisieren?
Dmitriy Gizlyk - haben Sie neben der bloßen Theorie auch Praxis oder sind Sie ein ewiger "Lehrer"?
Praxis - ist es, wenn Sie mit Hilfe Ihrer Methoden erfolgreich handeln?
- www.mql5.com
Dmitriy Gizlyk - haben Sie neben der bloßen Theorie auch Praxis oder sind Sie ein ewiger "Lehrer"?
Praxis - ist es, wenn Sie mit Hilfe Ihrer Methoden erfolgreich handeln?
Wollen Sie, dass der Artikel eine Gelddruckmaschine enthält?
Der Mann spricht über die Netzwerkarchitektur und Variationen ihrer Organisation, was interessant ist, und was man in das Netzwerk einspeisen kann, bleibt dem Benutzer überlassen.
Frage. Welchen Zweck erfüllt die Erstellung einer Aufzählung
enum ENUM_BUFFERS
{
WEIGHTS,
DELTA_WEIGHTS,
OUTPUT,
GRADIENT,
FIRST_MOMENTUM,
SECOND_MOMENTUM
}; und Variablen in der Klasse CLayer?
class CLayer: public CArrayObj { private: ... int hWeights; int hDeltaWeights; int hOutput; int hGradient; ... };
Ich kann ihre Verwendung im Code nicht finden.
Frage. Zu welchen Zwecken werden Übertragungen geschaffen
und Variablen in der Klasse CLayer?
Ich kann ihre Verwendung in dem Code nicht finden.
Danke für den Hinweis. Sie können sie löschen, sie sind noch von Entwürfen übrig.
Hallo an alle. Wer hat diesen Fehler beim Versuch, eine Datei zu lesen, festgestellt?
OnInit - 198 -> Fehler beim Lesen von AUDNZD.......
Hallo an alle. Wer hat diesen Fehler beim Versuch, eine Datei zu lesen, festgestellt?
OnInit - 198 -> Fehler beim Lesen von AUDNZD.......
Diese Meldung informiert Sie nur darüber, dass das vortrainierte Netzwerk nicht geladen wurde. Wenn Sie Ihren EA zum ersten Mal ausführen, ist das normal und Sie brauchen die Meldung nicht zu beachten. Wenn Sie das neuronale Netz bereits trainiert haben und das Training fortsetzen möchten, sollten Sie prüfen, wo der Fehler beim Lesen der Daten aus der Datei aufgetreten ist.
Leider haben Sie den Fehlercode nicht angegeben, so dass wir mehr dazu sagen können.Diese Meldung informiert Sie nur darüber, dass das vortrainierte Netzwerk nicht geladen wurde. Wenn Sie Ihren EA zum ersten Mal ausführen, ist das normal und Sie brauchen die Meldung nicht zu beachten. Wenn Sie das neuronale Netz bereits trainiert haben und das Training fortsetzen möchten, sollten Sie überprüfen, wo der Fehler beim Lesen der Daten aus der Datei aufgetreten ist.
Leider haben Sie den Fehlercode nicht angegeben, so dass Sie mehr dazu sagen können.Hallo.
Ich werde Ihnen mehr darüber erzählen.
Wenn Sie den Expert Advisor zum ersten Mal starten. Mit diesen Änderungen im Code:
dError=Net.getRecentAverageError(); if(add_loop) { Net.Save(FileName+".nnw",dError,dUndefine,dForecast,dtStudied,false); printf("Era %d -> error %.2 f %% forecast %.2 f",count,dError,dForecast); } ChartScreenShot(0,FileName+IntegerToString(count)+".png",750,400); int h=FileOpen(CSV,FILE_READ|FILE_WRITE|FILE_CSV); if(h!=INVALID_HANDLE) { FileSeek(h,0,SEEK_END); FileWrite(h,eta,count,dError,dUndefine,dForecast); FileFlush(h); FileClose(h); Print("Файл должен быть создан ChartScreenShot "); } else Print("Операция FileOpen ChartScreenShot неудачна, ошибка ",GetLastError()); } }
Im Log schreibt er dies :
KO 0 18:49:15.205 Core 1 NZDUSD: load 27 bytes of history data to synchronise at 0:00:00.001
FI 0 18:49:15.205 Core 1 NZDUSD: Historie synchronisiert von 2016.01.04 bis 2022.06.28
FF 0 18:49:15.205 Core 1 2019.01.01 00:00:00 OnInit - 202 -> Fehler beim Lesen AUDNZD_PERIOD_D1_ 20Fractal_OCL_Adam 1.nnw prev Net 0
CH 0 18:49:15.205 Core 1 2019.01.01 00:00:00 OpenCL: GPU-Gerät 'gfx902' ausgewählt
KN 0 18:49:15.205 Core 1 2019.01.01 00:00:00 Era 1 -> Fehler 0.01 % Prognose 0.01
QK 0 18:49:15.205 Core 1 2019.01.01 00:00:00 Zu erstellende Datei ChartScreenShot
HH 0 18:49:15.205 Core 1 2019.01.01 00:00:00 Era 2 -> Fehler 0,01 % Prognose 0,01
CP 0 18:49:15.205 Core 1 2019.01.01 00:00:00 Zu erstellende Datei ChartScreenShot
PS 2 18:49:19.829 Kern 1 nicht verbunden
OL 0 18:49:19.829 Kern 1 Verbindung geschlossen
NF 3 18:49:19.829 Tester von Benutzer gestoppt
И в директории "C:\Users\Borys\AppData\Roaming\MetaQuotes\Tester\BA9DEC643240F2BF3709AAEF5784CBBC\Agent-127.0.0.1-3000\MQL5\Files"
Diese Datei wird erstellt:
Fractal_10000000.csv
#define FileName Symb.Name()+"_"+EnumToString((ENUM_TIMEFRAMES)Period())+"_"+IntegerToString(HistoryBars,3)+StringSubstr(__FILE__,0,StringFind(__FILE__,".",0)) #define CSV "Fractal_"+StringSubstr(DoubleToString(eta),2)+".csv"
mit dem folgenden Inhalt :
| 0.1 1 0.006391065067727753 0.30606698779533065 0.009849141883310947 |
| 0.1 2 0.01416031275898674 0.320172057079727 0.009671500063084178 |
| 0.1 1 0.021322935369592233 0.4824709164481285 0.009510368103745911 |
| 0.1 2 0.03047882579179044 0.4736268224037817 0.009336035129387396 |
| 0.1 1 0.04096262961921367 0.4747386346906194 0.009164897823757697 |
| 0.1 2 0.04745129346676422 0.9935630387598718 0.1983981648307233 |
und so weiter...
Beim Neustart wird derselbe Fehler angezeigt und die .csv-Datei wird überschrieben .
Das heißt, der Experte ist immer im Training, weil er die Datei nicht findet.
Und die zweite Frage, bitte schlagen Sie den Code vor (um Daten aus dem Ausgangsneuron zu lesen), um Kauf- und Verkaufsaufträge zu öffnen, wenn das Netzwerk trainiert wird.
Vielen Dank für den Artikel und für die Antwort.
Hallo.
Ich werde Ihnen mehr darüber erzählen.
wenn Sie den Expert Advisor zum ersten Mal starten. Mit diesen Änderungen im Code:
Im Log wird dies geschrieben:
KO 0 18:49:15.205 Core 1 NZDUSD: Laden von 27 Byte Historiendaten zur Synchronisierung um 0:00:00.001
FI 0 18:49:15.205 Core 1 NZDUSD: Historie synchronisiert von 2016.01.04 bis 2022.06.28
FF 0 18:49:15.205 Core 1 2019.01.01 00:00:00 OnInit - 202 -> Fehler beim Lesen AUDNZD_PERIOD_D1_ 20Fractal_OCL_Adam 1.nnw prev Net 0
CH 0 18:49:15.205 Core 1 2019.01.01 00:00:00 OpenCL: GPU-Gerät 'gfx902' ausgewählt
KN 0 18:49:15.205 Kern 1 2019.01.01 00:00:00 Era 1 -> Fehler 0.01 % Prognose 0.01
QK 0 18:49:15.205 Core 1 2019.01.01 00:00:00 Zu erstellende Datei ChartScreenShot
HH 0 18:49:15.205 Core 1 2019.01.01 00:00:00 Era 2 -> Fehler 0,01 % Prognose 0,01
CP 0 18:49:15.205 Core 1 2019.01.01 00:00:00 Es muss eine Datei erstellt werden ChartScreenShot
PS 2 18:49:19.829 Kern 1 nicht verbunden
OL 0 18:49:19.829 Kern 1 Verbindung geschlossen
NF 3 18:49:19.829 Tester von Benutzer gestoppt
И в директории "C:\Users\Borys\AppData\Roaming\MetaQuotes\Tester\BA9DEC643240F2BF3709AAEF5784CBBC\Agent-127.0.0.1-3000\MQL5\Files"
Diese Datei wird erstellt:
Fractal_10000000.csv
mit diesem Inhalt :
| 0.1 1 0.006391065067727753 0.30606698779533065 0.009849141883310947 |
| 0.1 2 0.01416031275898674 0.320172057079727 0.009671500063084178 |
| 0.1 1 0.021322935369592233 0.4824709164481285 0.009510368103745911 |
| 0.1 2 0.03047882579179044 0.4736268224037817 0.009336035129387396 |
| 0.1 1 0.04096262961921367 0.4747386346906194 0.009164897823757697 |
| 0.1 2 0.04745129346676422 0.9935630387598718 0.1983981648307233 |
Etc...
Wenn Sie es erneut ausführen, wird derselbe Fehler angezeigt und die .csv-Datei wird überschrieben .
Das heißt, der Expert Advisor ist immer im Lernprozess, weil er die Datei nicht findet.
Und die zweite Frage. Bitte schlagen Sie den Code (für das Lesen von Daten aus dem Ausgangsneuron), um Kauf-Verkauf-Aufträge zu öffnen, wenn das Netzwerk trainiert wird.
Vielen Dank für den Artikel und für die Antwort.
Guten Abend, Boris.
Sie versuchen, ein neuronales Netz im Strategie-Tester zu trainieren. Ich empfehle Ihnen nicht, das zu tun. Ich weiß natürlich nicht, welche Änderungen Sie an der Trainingslogik vorgenommen haben. In dem Artikel war das Training des Modells in einer Schleife organisiert. Und die Iterationen des Zyklus wurden so lange wiederholt, bis das Modell vollständig trainiert war oder der EA gestoppt wurde. Und die historischen Daten wurden sofort vollständig in die dynamischen Arrays geladen. Ich verwendete diesen Ansatz, um den Expert Advisor in Echtzeit laufen zu lassen. Der Trainingszeitraum wurde durch einen externen Parameter festgelegt.
Wenn der Expert Advisor im Strategietester gestartet wird, wird die in den Parametern angegebene Lernperiode auf die Tiefe der Historie vom Beginn der Testperiode verschoben. Außerdem arbeitet jeder Agent im MT5-Strategietester in seiner eigenen "Sandbox" und speichert darin Dateien. Wenn Sie also den Expert Advisor im Strategietester erneut ausführen, findet er die Datei des zuvor trainierten Modells nicht.
Versuchen Sie, den Expert Advisor im Echtzeitmodus auszuführen, und überprüfen Sie, ob eine Datei mit der Erweiterung nnw erstellt wurde, nachdem der EA nicht mehr funktioniert. Dies ist die Datei, in der Ihr trainiertes Modell gespeichert ist.
Um das Modell im realen Handel zu verwenden, müssen Sie die aktuelle Marktsituation in die Parameter der Net.FeedForward-Methode eingeben. Und dann die Ergebnisse des Modells mit der Methode Net.GetResult abrufen. Als Ergebnis der letztgenannten Methode enthält der Puffer die Ergebnisse der Arbeit des Modells.
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Neuronale Netze leicht gemacht (Teil 7): Adaptive Optimierungsverfahren :
In früheren Artikeln haben wir den stochastischen Gradientenabstieg verwendet, um ein neuronales Netzwerk mit der gleichen Lernrate für alle Neuronen innerhalb des Netzwerks zu trainieren. In diesem Artikel schlage ich vor, sich mit adaptiven Lernmethoden zu beschäftigen, die eine Änderung der Lernrate für jedes Neuron ermöglichen. Wir werden auch die Vor- und Nachteile dieses Ansatzes betrachten.
Das Testen der Optimierung durch das Adam-Verfahren wurde unter den gleichen Bedingungen durchgeführt, die in früheren Tests verwendet wurden: Symbol EURUSD, Zeitrahmen H1, Daten von 20 aufeinanderfolgenden Kerzen werden in das Netzwerk eingespeist, und das Training wird mit der Historie der letzten zwei Jahre durchgeführt. Zum Testen wurde der Expert Advisor Fractal_OCL_Adam erstellt. Dieser Expert Advisor wurde auf Basis des Fractal_OCL EA erstellt, indem das Optimierungsverfahren Adam bei der Beschreibung des neuronalen Netzwerks in der OnInit-Funktion des Hauptprogramms angegeben wurde.
Die Anzahl der Schichten und Neuronen hat sich nicht geändert.
Der Expert Advisor wurde mit Zufallsgewichten im Bereich von -1 bis 1 initialisiert, wobei Nullwerte ausgeschlossen wurden. Während des Testens, bereits nach der 2. Trainingsepoche, stabilisierte sich der Fehler des neuronalen Netzes um 30 %. Wie Sie sich vielleicht erinnern, wenn Sie mit der Methode des stochastischen Gradientenabstiegs lernen, stabilisierte sich der Fehler nach der 5. Testepoche
Die Grafik der verpassten Fraktale zeigt einen allmählichen Anstieg des Wertes während des gesamten Trainings. Nach 12 Trainingsepochen ist jedoch eine allmähliche Abnahme der Wertzuwachsrate zu erkennen. Der Wert war nach der 14. Epoche gleich 72,5 %. Beim Training eines ähnlichen neuronalen Netzes mit der stochastischen Gradientenabstiegsmethode lag der Prozentsatz der fehlenden Fraktale nach 10 Epochen bei 97-100 % mit unterschiedlichen Lernraten.
Autor: Dmitriy Gizlyk