Diskussion zum Artikel "Neuronale Netze leicht gemacht (Teil 34): Vollständig parametrisierte Quantilfunktion"
Ich danke Ihnen.
versucht dies, und ich war in der Lage, erfolgreich zu kompilieren alles ohne Fehler.
Testen auf eurusd und erhalten den Fehler unten.
irgendeine Idee?
2022.11.30 11:51:46.689 Core 08 genetic pass (0, 286) getestet mit Fehler "OnInit returned non-zero code 1" at 0:00:00.000
danke
Ich danke Ihnen.
versuchte dies, und ich war in der Lage, erfolgreich zu kompilieren alles ohne Fehler.
Testen auf eurusd und erhalten den Fehler unten.
irgendeine Idee?
2022.11.30 11:51:46.689 Core 08 genetic pass (0, 286) getestet mit Fehler "OnInit returned non-zero code 1" at 0:00:00.000
danke
Hallo, um EA im Tester auszuführen, müssen Sie die nnw-Datei in das Verzeichnis "MetaQuotes\Terminal\Common\Files" kopieren.
Ich danke Ihnen!
Ihre "Produktivität" ist verblüffend. Bleiben Sie nicht stehen!
Es sind Leute wie Sie, die alles am Laufen halten!
P.S..
Ich habe die NeuroNet-News gelesen....
"Нейросети тоже нуждаются в состояниях, напоминающих сны.
Dies ist die Schlussfolgerung von Forschern des Los Alamos National Laboratory..."
Guten Tag!
Mit Ihrem Code habe ich einen ähnlichen "Schlaf" von NeuroNetwork gemacht.
Der Prozentsatz der "vorhergesagten" hat sich um 3% erhöht. Für meinen "Supercomp" ist das ein Flug ins All!
//+------------------------------------------------------------------+ //| Traum| //+------------------------------------------------------------------+ int Dream(int dream = 0) { Comment("!!! Dream !!! "); int sleep = (dream==0 ? 7 : dream); for(int j=0;j<sleep;j++) { TempData.Clear(); for(int b=0; b<(int)HistoryBars; b++) { if( !TempData.Add(0.0) || !TempData.Add(0.0) || !TempData.Add(0.0) || !TempData.Add(0) || !TempData.Add(0) || !TempData.Add(0) || !TempData.Add(0.0) || !TempData.Add(0.0) || !TempData.Add(0.0) || !TempData.Add(0.0) || !TempData.Add(0.0) || !TempData.Add(0.0) ) break; } if(TempData.Total()<(int)HistoryBars*12) return(0); Net.feedForward(TempData); Net.getResults(TempData); //-- Sie können sich die "Träume" von NeuroNet ansehen. switch(TempData.Maximum(0,3)) { case 0: dPrevSignal=TempData[0]; break; case 1: dPrevSignal=-TempData[1]; break; default: dPrevSignal=0; break; } //-- ... aber das ist nicht unbedingt notwendig. //--??? TempData.Clear(); TempData.Add(0.0); TempData.Add(0.0); TempData.Add(0.0); Net.backProp(TempData); //--??? } return(0); }
Ich habe diese Funktion am Ende jeder Trainingsepoche angewendet:
if(add_loop) count++; if(!stop) { dError=Net.getRecentAverageError(); if(add_loop) { Net.Save(FileName+".nnw",dError,dUndefine,dForecast,dtStudied,true); printf("Era %d -> error %.2f %% forecast %.2f",count,dError,dForecast); } ChartScreenShot(0,(string)FileName+(string)IntegerToString(count)+".png",750,400); } Dream(SleepPeriod); //-- Schlafen. printf("Traumzeit = %.2f !",SleepPeriod); }
Könnten Sie es testen und dann kommentieren, wie Sie es machen? Plötzlich könnten "Träume" der KI helfen?
P.S..
SchlafPerriod=1;
Ich fügte hinzu
SleepPeriod
SleepPeriod + (Delta++)
wo Delta=0. Aber mein Computer ist sehr, sehr schwach.... :-(

- 2022.11.29
- www.mql5.com

- 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 34): Vollständig parametrisierte Quantilfunktion :
Wir untersuchen weiterhin verteilte Q-Learning-Algorithmen. In früheren Artikeln haben wir verteilte und Quantil-Q-Learning-Algorithmen besprochen. Im ersten Algorithmus haben wir die Wahrscheinlichkeiten für bestimmte Wertebereiche trainiert. Im zweiten Algorithmus haben wir Bereiche mit einer bestimmten Wahrscheinlichkeit trainiert. In beiden Fällen haben wir a priori Wissen über eine Verteilung verwendet und eine andere trainiert. In diesem Artikel wenden wir uns einem Algorithmus zu, der es dem Modell ermöglicht, für beide Verteilungen trainiert zu werden.
Dieser Ansatz ermöglicht die Ausbildung eines Modells, das weniger empfindlich auf den Hyperparameter „Anzahl der Quantile“ reagiert. Ihre Zufallsverteilung ermöglicht die Erweiterung des Bereichs der angenäherten Funktionen auf ungleichmäßig verteilte Funktionen.
Bevor die Daten in das Modell eingegeben werden, wird eine Einbettung von zufällig generierten Quantilen nach der folgenden Formel erstellt.
Es gibt verschiedene Möglichkeiten, die resultierende Einbettung mit dem Tensor der Originaldaten zu kombinieren. Dies kann entweder eine einfache Verkettung von zwei Tensoren oder eine Hadamard-Multiplikation (Element-für-Element) von zwei Matrizen sein.
Nachstehend finden Sie einen Vergleich der in Frage kommenden Architekturen, der von den Autoren des Artikels vorgestellt wurde.
Die Wirksamkeit des Modells wird durch Tests bestätigt, die mit 57 Atari-Spielen durchgeführt wurden. Nachstehend finden Sie eine Vergleichstabelle aus dem Originalartikel [8]
Hypothetisch gesehen erlaubt dieser Ansatz, angesichts der unbegrenzten Größe des Modells, das Lernen einer beliebigen Verteilung der vorhergesagten Belohnung.
Autor: Dmitriy Gizlyk