Eine schnelle und kostenlose Bibliothek für MT4, sehr zur Freude der Neuralnetworker - Seite 13

 
Figar0 >> :

Das Ergebnis ist nur ein vernünftiges, es wird verwendet, aber ich kann nicht sagen, dass dies der Verdienst von ZZ ist).

Ausgestellt gibt es nicht verpflichten, und nur ein paar (kol'ton Satz) Netze durch minimale Fehler ausgewählt, aber dass Statistisu sollte nicht füttern unvorbereitet Daten ist eine Illusion. Sicherlich kann man auf der Suche nach Entscheidungen verschiedene Dinge ausprobieren, aber alles in ein Gitter zu werfen und es kochen zu lassen, geht nicht, das wird Ihnen jeder hier bestätigen.

Und in welche Richtung lohnt es sich zu arbeiten, sagen Sie mir bitte, wenn die Ergebnisse Ihrer Arbeit nicht vor der Öffentlichkeit geheim gehalten werden?

 
Kharin >> :

Seid ihr sicher, dass die Bibliothek nicht "krumm" ist?

Die Situation ist folgende: Die Fehlermeldung wird regelmäßig angezeigt und das Terminal wird geschlossen.

Lesen Sie das Thema. Sie ist auf Russisch verfasst:

static bool Parallel = true;

Если параллельный режим не поддерживается процессором, то это может привести к тому, что терминал выгрузится с сообщением об ошибке
 
lasso >> :

Scheiß auf den Stadtrat. Es gibt keinen Grund, sie umzuschreiben und sich damit zu befassen.

Es besteht der Verdacht, dass die Bibliothek selbst nicht richtig funktioniert, und es ist notwendig herauszufinden, ob dies der Fall ist oder nicht. Andernfalls hat es keinen Sinn, weiterzumachen.

Ich habe Ihre Situation modelliert. Bei der Verwendung von ann_train sind die Antworten sogar nach dem Training des Netzes mit ~10.000 Signalen gleich. Die Reaktionen des Netzes bei Verwendung von ann_train_fast sind manchmal unterschiedlich und manchmal nicht.

Ich glaube, es gibt wirklich ein Problem, zumindest was die Zufallsverteilung der Gewichte angeht.

 

Versuchen Sie, f2M_randomize_weights auszukommentieren. Wenn die Antworten der Netze unterschiedlich sind, dann liegt ein Fehler in FANN2MQL vor. Wenn sie immer noch gleich sind, liegt ein Fehler in der FANN vor.

Die Standardeinstellung ist Randomisierung (-0.1 ... 0.1)


UPD: Ich habe es selbst überprüft. In beiden Fällen findet eine Randomisierung statt. Nur eine Merkwürdigkeit - 2 bis 5 Netze in einer Reihe reagieren gleich, dann eine Gruppe von anderen identischen Netzen. Es gibt also 5 verschiedene Antworten pro 16 Netze. Wenn der Fehler nicht korrigiert wird, benötigt ein Ausschuss mit N Mitgliedern 3*N Netze, der Rest ist Ballast.

 
Henry_White >> :

Lesen Sie das Thema. Es ist auf Russisch geschrieben:

Wer hat Ihnen gesagt, dass ich den Parallelmodus benutze?!

Warum müssen Sie auf eine belehrende Art und Weise "mit Kacke werfen"? Wenn Sie nicht sagen können, was auf dem Stapel steht und was genau der Fehler ist,

Sagen Sie nichts. Ja, jetzt fangen wir an, über Telepathen und so weiter zu reden, ich warne vor diesem Schrei: Es wurde eine Fehlermeldung ausgegeben,

Der vollständige Text, die verwendeten Funktionen sind die gleichen wie in Yury Reshetovs, der Parallelmodus wird nicht verwendet.

Was könnte der Grund für DIESE Nachricht sein?

 
Kharin >> :

Und wer hat Ihnen gesagt, dass ich den Parallelmodus benutze?!

Ich bitte um Verzeihung ))

 
Kharin писал(а) >>

Deshalb halte ich Ihren letzten Satz für unsinnig.

Sie denken so, weil Sie es persönlich genommen haben, während ich nur versucht habe zu sagen, dass die Bibliothek keine leistungsfähige Fehlerbehandlung hat und keine falsche Behandlung von Objekten und Zeigern auf sie verzeiht. Also, lasst uns Freunde sein! )))

Haben Sie Reshetovs Expert Advisor ausprobiert? Prallt das Terminal auch ab?

 
Dali писал(а) >>

UPD: Ich habe es selbst überprüft. In beiden Fällen findet eine Randomisierung statt. Nur gibt es eine Besonderheit - 2 bis 5 Netze in einer Reihe antworten gleich, dann eine Gruppe von anderen identischen. Es gibt also 5 verschiedene Antworten pro 16 Netze. Wenn der Fehler nicht korrigiert wird, benötigt der Ausschuss aus N Mitgliedern 3*N Netze, der Rest ist Ballast.

Zur Kenntnis genommen. Die Randomisierung geht von -1 bis 1, und im Netzprofil liegen die Gewichte zwischen -10,0e--003 und 10,0e-003

Beispiel: (12, -7,35577636217311400000e-003) (13, 7,63970005423449810000e-002)

Ist dies richtig?

.....

Ja, es ist dasselbe passiert: Die Ausgangswerte der ersten zwei oder vier Netze unterscheiden sich von den nachfolgenden.

Ich habe versucht, die Eingaben mit verschiedenen Koeffizienten zu multiplizieren. Damit ist das Problem nicht gelöst.

 
lasso >> :

Sie denken das, weil Sie es persönlich genommen haben, und ich habe nur versucht zu sagen, dass die Bibliothek keine leistungsfähige Fehlerbehandlung hat und keine falsche Behandlung von Objekten und Zeigern auf sie verzeiht. Also, lasst uns Freunde sein! )))

Haben Sie Reshetovs Expert Advisor ausprobiert? Prallt auch das Terminal ab?

Ich mag Freundschaft lieber)))

Reshetovs Expert Advisor schaltete das Terminal aus, bevor ich das parallele Rechnen abgeschafft hatte.

Jetzt probiere ich meinen Expert Advisor in alle Richtungen aus und prüfe den Erfolg der Operationen mit Print.

Mir ist folgende Besonderheit aufgefallen: Die Erstellung eines Gitters kann fehlschlagen((

a = f2M_create_standard (nn_layer,nn_input,nn_hidden1,nn_hidden2,nn_output);

diese Zeile gibt sehr oft -1 zurück.

Um genauer zu sein, einige Male wird nicht -1 zurückgegeben, und dann nur -1.

Die einzige Möglichkeit, ihn loszuwerden, ist ein Neustart des Computers. Ich dachte mir, der Grund dafür ist, dass die vorherige Masche nicht gelöscht wird und die neue nirgendwo hinkommt.

und der neue kann nirgendwo hin, also habe ich dieses Stück Code erstellt:

for (int i=0;i<1024;i++)
{ann_destroy (ann[i]);}
int a=-1;
while(a<0)
{
a = f2M_create_standard (nn_layer,nn_input,nn_hidden1,nn_hidden2,nn_output);
Print(a);
}


Jetzt sollten die ersten 1024 Maschen unbedingt gelöscht werden! (Ich kann mich irren).

Aber auch hier wird -1 in das Protokoll geschrieben. Vor dem Neustart...

 

Nun, ich denke, ich werde auch die Merkwürdigkeiten von FANN hinzufügen...

Als Experiment beschloss ich, den Ausschuss von 46 Netzen der Dimension 30/N/N/1 (d.h. auf jedem Balken: ~300k) mit Bruteforce zu trainieren. Ein NS pro Datenkanal. Dem Eingang wird ein Zeitmuster zugeführt. Ich habe mit der Dimensionalität herumgespielt, deshalb habe ich N/N angegeben (ich habe verschiedene ausprobiert). Ich habe auch ein bisschen mit Ebenen gearbeitet.
Aktivator - FANN_SIGMOID_SYMMETRIC_STEPWISE. Ich habe andere ausprobiert, aber das Netz konvergiert nicht so schnell wie bei diesem.
Ich unterrichte nur 1 oder -1. Lernen bei jeder Iteration.
Die Anzahl der positiven und negativen Iterationen des Lernens ist fast gleich. Um genau zu sein, ist es 132522/-112221.
Die Daten sind auf einen Bereich von 1:-1 normalisiert.
Fast alle Maschen konvergieren bis zum Ende des Trainings auf einen RMS-Wert von 0,09. Das ist natürlich viel, aber das ist nicht der Hauptpunkt.

Aber das Merkwürdige ist, dass der gesamte Ausschuss im Testteil Werte nahe bei -1 erzielte. Imho ist dies ein ungesundes Verhalten für NS. Vielleicht liegt auch ein algorithmischer Fehler in der Bibliothek vor...

Eine weitere Beobachtung... Bei normalem Training (nur die Signalabschnitte) neigt der Ausschuss immer noch dazu, sich bei den negativen Werten anzuhäufen, wenn auch nicht so deutlich wie bei Bruteforce.

Hat jemand ähnliche Phänomene bei sich selbst beobachtet? Haben Sie vielleicht ein paar Ideen?


Beispiel für visualisierte Eingabedaten (unten):



Grund der Beschwerde: