Marktknigge oder gute Manieren im Minenfeld - Seite 42

 
Neutron >> :

Mit Matcad können Sie den Zählvorgang in jedem Schritt visualisieren. Experiment.

Darf ich dazu etwas sagen? Ich habe nur Diagramme, wenn alle Berechnungen abgeschlossen sind.

 

Ich auch :-(

Was ich meinte, war, dass Sie jede Information, die Sie interessiert, anzeigen und in einer geeigneten Form für eine spätere Analyse darstellen können.

 
Sie haben irgendwo geschrieben, dass das Netz im Laufe des Trainingsvektors lernt, nur die n+1te Referenz zu erkennen. Ist dies so zu verstehen, dass sich die Position des Trainingsdatums für N Epochen nicht verändert? Tatsächlich habe ich das getan (in der Auflistung, in der es eine Reihe von verschiedenen Funktionen gab), d.h. der gesamte Vektorfehler wurde als TEST-OUT berechnet, wobei TEST die n+1te Stichprobe war. In dieser Implementierung ist TEST der Zähler, der auf die letzte (größte) Eingabe folgt. D.h. sie wird über den gesamten Sektor vom d+1. zum n+1. verschoben. Könnte hier ein Fehler vorliegen?
 

Warten Sie einen Moment.

Wir liefern einen Datenvektor der Länge d an den Eingang des NS, wobei d die Anzahl der Informationseingänge des Gitters ist (den Offset nicht mitgerechnet). Am AUSGANG des Gitters werden d+1 Zählungen eingegeben, um es zu trainieren. Die Gewichte sind bei diesem Schritt zufällig. In diesem Schritt haben wir ein Delta für die Korrektur jedes Vektors erhalten. Merken Sie sich das (korrigieren Sie nichts). Gehen Sie um einen Takt weiter und wiederholen Sie den Vorgang. Fügen Sie die Korrektur und ihre Quadrate separat hinzu. Wiederholen Sie den Vorgang dreimal (ohne Korrektur der Gewichte). Schließlich ist das erste Mal, wenn wir alle Gewichte korrigieren, die ERSTE Epoche des Lernens. Beginnen Sie nun erneut mit denselben Daten, aber mit den bereits gefundenen Gewichten. Am Ende korrekte Gewichte, dies ist die ZWEITE Epoche des Lernens. Führen Sie dies (zum Beispiel) 100 Mal durch, was 100 Epochen des Trainings ergibt. Das ist alles. Das Netz ist bereit, eine Vorhersage zu treffen. Der gesamte Datenvektor mit der letzten Zählung wird eingespeist und wir erhalten die Prognose. Nachdem die tatsächliche (nicht vorhergesagte) Zählung erfolgt ist, trainieren Sie das Netz erneut, wobei die Gewichte zufällig gewählt werden.

 
Dann liegt kein Fehler vor.
 

Interessante Diskussion:) Neutron, übrigens, Sie haben meine Frage nach den Startgewichten immer noch nicht beantwortet? Sie haben nur darüber gesprochen, wie Sie das Netz neu trainieren. Aber auch ohne dies wird das Netz, wenn Sie es mindestens einmal neu trainieren, einen Fehler aufweisen, und zwar einen erheblichen Fehler. Ich spreche über meine Erfahrungen mit Backprop:). Eigentlich interessiert mich nur diese Frage, alles andere in der Gittertechnik ist nicht wichtig. Komitees von Netzen, wie sehen Sie das, und ist es überhaupt notwendig, vielleicht ist es möglich, die Gewichte zu Beginn anzupassen, so dass das Gitter zu Beginn des Trainings nahe dem globalen Minimum war, so dass die Komitees einfach nicht benötigt wurden?

 
paralocus писал(а) >>
Dann liegt kein Fehler vor.

Während ich mich von Epoche zu Epoche bewege, drücke ich jedes Gewicht mit einem "Liegestütz" nach oben:

Dadurch wird verhindert, dass die Gewichte in den Sättigungsbereich gelangen, und sie bleiben während des Trainings im Bereich von +/-5.

Registred schrieb >>

Neutron, Sie haben übrigens meine Frage nach den Anfangsgewichten immer noch nicht beantwortet. Sie haben nur darüber gesprochen, wie Sie das Netz neu trainieren. Aber auch ohne dies wird das Netz, wenn Sie es mindestens einmal neu trainieren, einen Fehler aufweisen, und zwar einen erheblichen Fehler. Ich spreche über meine Erfahrungen mit Backprop:). Eigentlich interessiert mich nur diese Frage, alles andere in der Gittertechnik ist nicht wichtig. Ausschüsse von Netzen, wie sehen Sie das, und ist es überhaupt notwendig, vielleicht können Sie irgendwie zwicken Gewichte zunächst, so dass das Netz in der Nähe von globalen Minimum zu Beginn der Ausbildung, so dass Ausschüsse einfach nicht benötigt werden würde?

Die anfänglichen Gewichte werden nach dem Zufallsprinzip mit einem Zufallswert in einem Bereich von +/-1 verteilt. Ich tue dies bei jeder Zählung. Durch die Umschulung des Gitters bei jedem Schritt wird im Durchschnitt genau das globale Minimum gefunden, und dies ist ein Vorteil der Umschulung bei jedem Schritt im Vergleich zu einem einmalig trainierten Gitter. Es könnte dort versehentlich ein lokales Loch treffen und alle Vorhersagen wären unzureichend. In diesem Fall ist es wirklich wichtig, nach Möglichkeiten zu suchen, die Ausgangssituation für die Waage zu optimieren. Ich habe dieses Problem nicht gelöst.

Was die Netze angeht, so sind sie zwar nützlich, aber ressourcenintensiv. Wir können zeigen, dass eine einfache Erhöhung der Anzahl der Neuronen in einer versteckten Schicht im Wesentlichen eine Übergabe ist, die jedoch ressourcenintensiver ist als die klassische Version, aber aufgrund der integrierten Nichtlinearität der Übergabeglieder leistungsfähiger. An dieser Stelle sollten Sie experimentieren.

 
Neutron >> :

Während ich mich von Epoche zu Epoche bewege, drücke ich jedes Gewicht mit einem "Liegestütz" nach oben:

Dadurch wird verhindert, dass die Gewichte in den Sättigungsbereich ausufern, und sie bleiben beim Lernen im Bereich von +/-5.

Ich komprimiere einfach das Intervall, wenn ich nicht von [-1;1], sondern von [-0.9;0.9] normalisiere, der Effekt ist der gleiche, keine Sättigung. Ich meine etwas anders, dass die anfänglichen Gewichtungskoeffizienten bei der Anpassung der Gewichte aufgrund der so genannten Leichtgläubigkeit der Funktion einfach nicht die optimalen Werte erreichen können. Um ehrlich zu sein, habe ich damit meine Schwierigkeiten. Und wahrscheinlich haben Sie dieses Problem auch nicht gelöst, so dass es schwer ist, mit einem Backprop etwas Sinnvolles auf dem Markt zu erreichen, selbst wenn die Evidenzbasis für die Modellierung gut ist.

 
Neutron >> :

Die anfänglichen Gewichte werden nach dem Zufallsprinzip mit einem Zufallswert in einem Bereich von +/-1 verteilt. Ich mache das bei jedem Countdown. Das Gitter, das bei jedem Schritt neu trainiert wird, findet im Durchschnitt genau das globale Minimum, und dies ist ein Vorteil des Trainings bei jedem Schritt im Vergleich zu einem einmalig trainierten Gitter. Es könnte dort versehentlich ein lokales Loch treffen und alle Vorhersagen wären unzureichend. In diesem Fall ist es wirklich wichtig, nach Möglichkeiten zu suchen, die Ausgangssituation für die Waage zu optimieren. Ich habe dieses Problem nicht gelöst.

Was die Netze angeht, so sind sie zwar nützlich, aber ressourcenintensiv. Wir können zeigen, dass eine einfache Erhöhung der Anzahl der Neuronen in einer versteckten Schicht im Wesentlichen eine Übergabe ist, die jedoch ressourcenintensiver ist als die klassische Version, aber aufgrund der integrierten Nichtlinearität der Übergabeglieder leistungsfähiger. Sie müssen hier experimentieren.

Das ist der Punkt, der die ganze Sache verdirbt:). Meine Beobachtungen haben übrigens ergeben, dass die beste Randomisierung der Gewichte, die das Netz schnell lernt, im Intervall [-0,07; +0,07] liegt. Ich weiß nicht, warum das der Fall ist:)

 
registred писал(а) >>

Ich komprimiere einfach das Intervall, wenn ich nicht von [-1;1], sondern von [-0.9;0.9] normalisiere, der Effekt ist der gleiche, es gibt keine Sättigung. Ich meine etwas anders, dass die anfänglichen Gewichtungskoeffizienten bei der Anpassung der Gewichte aufgrund der so genannten Leichtgläubigkeit der Funktion einfach nicht die optimalen Werte erreichen können. Um ehrlich zu sein, habe ich damit meine Schwierigkeiten. Und wahrscheinlich haben Sie dieses Problem auch nicht gelöst, weshalb es schwierig ist, mit Backprop etwas Sinnvolles auf den Markt zu bringen, auch wenn die Beweisgrundlage für die Modellierung gut ist.

Gott wird sich um den richtigen Mann kümmern! Das Backproping-Verfahren ist nicht kompliziert, und das NS-Lernen leidet nicht darunter - es ist eine effektive Methode.

Die Behauptung, dass keine optimalen Werte erreicht werden, ist für unsere BPs ein reiner Bluff. Ich verstehe, wenn Sie eine Sinuskurve vorhersagen wollen! - Ja, es gibt optimale Werte. Aber was sind das für Marktturbulenzen? Jetzt ist das Optimum da, und im nächsten Schritt (den Sie vorhersagen) ist es da... und Sie haben mit aller Kraft "hier" danach gesucht. Kurz gesagt, es gibt kein präzises Lokalisierungsproblem, und es wird zufriedenstellend gelöst, indem bei jedem Schritt neu trainiert wird.