Marktknigge oder gute Manieren im Minenfeld - Seite 28

 
YDzh писал(а) >>

Neuronales Netz, 13 Eingänge, keine versteckte Schicht. Training mit dem genetischen Algorithmus

Fantastisch, YDzh!

Meine Ergebnisse sind viel bescheidener. Sie müssen es auf eine Demo stellen und sehen, wo das Netz unterbrochen wird.

paralocus schrieb >>

Neutron, es sieht so aus, als hättest du Recht gehabt mit der Zahl von 25 Bereitschaften... -:)

Irgendetwas an meinem Netz ist nicht lernfähig. Nach 100 Epochen sind die Gewichte praktisch dieselben, mit denen das Netz initialisiert wurde.

In diesem Zusammenhang eine weitere dumme Frage:

Ist der Lernvektor in jeder Epoche derselbe oder nicht?

Wie auch immer, es zeigt sich, dass das Verhältnis von kumulierter Korrektur zu kumulierter quadrierter Korrektur sehr schnell gegen Null tendiert. Deshalb hört das Lernen schon nach der 10. Iteration praktisch auf.

Wahrscheinlich liegt ein Fehler im Code vor. Ich muss danach suchen. Aus diesem Grund habe ich das Raster zunächst in Matcadet erstellt. Es ist bequem, die gesamte Lerndynamik auf jeder Detailstufe zu verfolgen, und es ist viel einfacher, Statistiken zu erstellen. Um die Lernergebnisse zu vergleichen, ermittle ich unabhängige Statistiken aus 100 Experimenten (zur Lehrbarkeit und zur Vorhersage) und vergleiche nur die Status-Durchschnitte.

Was den Trainingsvektor betrifft, so ist dieser natürlich für jede Epoche unterschiedlich. Aber sie ist auf besondere Weise anders - dieselbe, aber jedes Mal um einen Schritt nach links verschoben, und das Nullelement nimmt den Platz eines neuen Bezugspunkts ein usw.

P.S. Ich untersuche die BP-Aufteilung jetzt mit einem einheitlichen Schritt, so dass sich herausstellt, dass es von Epoche zu Epoche besser ist, alle Gewichte neu zu randomisieren und das Netz komplett neu zu trainieren, als das erworbene Wissen beizubehalten. Vielleicht ist dies eine Besonderheit der verwendeten Eingangsdaten. Ich möchte betonen, paralocus, wie wichtig es ist, alles im Kampf selbst zu überprüfen - wachsen die Gewichte langsam? - Setzen Sie einfach einen konstanten Koeffizienten = 10 vor die berechnete Summe und stellen Sie sicher, dass es nicht schief geht!

 
Neutron >> :

Es muss ein Fehler im Code vorliegen. Wir müssen nach ihr suchen. Für dieses Raster verwende ich zunächst Matcadet, da es bequem ist, die gesamte Lerndynamik mit allen Details zu verfolgen, und es ist viel einfacher, Statistiken zu erstellen. Um die Lernergebnisse zu vergleichen, ermittle ich unabhängige Statistiken aus 100 Experimenten (zur Lehrbarkeit und zur Vorhersage) und vergleiche nur die Status-Durchschnitte.

Was den Trainingsvektor betrifft, so ist dieser natürlich für jede Epoche unterschiedlich. Er unterscheidet sich jedoch auf besondere Weise - es handelt sich um denselben Vektor, der jedoch um einen Schritt nach links verschoben ist, und das Nullelement wird durch einen neuen Bezugspunkt ersetzt, usw.

Ich habe mich seit gestern mit dem Code beschäftigt. Ich habe anscheinend alles gesäubert, doppelt geprüft und einen Teil umgeschrieben, um ihn zu vereinfachen. Jetzt schreibt und liest alles genau so, wie es soll.

Aber muss ich den Korrekturvektor nach jeder Epoche auf Null setzen? Ich denke, das ist der Grund. Ich verstehe, dass man den Vektor um einen Schritt nach vorne verschieben muss - das tue ich auch.

 

Natürlich wollen Sie das!

Alle Zähler werden zu Beginn des neuen Trainings (Epoche) auf Null gesetzt.

 

Ist Mathcad schwer zu erlernen?

Auch wenn ich Angst davor habe, denke ich, dass ich mich damit auseinandersetzen muss...

 
Neutron >> :

Ich möchte betonen, paralocus, wie wichtig es ist, alles selbst im Kampf zu überprüfen - wachsen die Gewichte langsam? - Setzen Sie also einen konstanten Koeffizienten = 10 vor die Summe, die Sie erhalten, und achten Sie nur darauf, dass sie nicht brechen!

Die Notwendigkeit einer Selbstkontrolle ist für mich selbstverständlich, auch wenn die Zunahme der Gewichte bei dieser Umsetzung noch nicht beobachtet wurde. Wohin mit den 10 - habe ich noch nicht verstanden.

Übrigens, wenn Sie die Gewichte zu Beginn jeder Epoche ändern würden, würde das auf eine einzige Epoche hinauslaufen. Dies ist der Wahrheit sehr ähnlich, da der inkrementelle Fehlervektor während N Epochen vernachlässigbar klein wird und wir keine zusätzlichen Ressourcen auf unserem PC haben.

 
Neutron писал(а) >>

Cool, YDzh!

Meine Ergebnisse sind viel bescheidener. Sie müssen es auf eine Demo stellen und sehen, wo das Netz unterbrochen wird.

Ich habe ein kleines Problem damit - ich habe keinen Computer, der immer eingeschaltet ist... Ich sollte versuchen, kürzere Zeiträume zu verwenden, sonst dauert die Fehleranalyse ein halbes Jahr :)

 
paralocus писал(а) >>

Ist Mathcad schwer zu erlernen?

...

die einfachste Programmiersprache, manche Leute betrachten sie nicht einmal als Sprache. Meistens sieht man eine Formel in einem Buch und schreibt sie in Matcad.

Das Einzige, was Sie bedenken müssen, ist, dass Matcad eine Matrixsprache ist. Auch eine Primzahl ist in Matcad eine Matrix. Das Einzige, was man sich merken muss, ist, dass auch eine Primzahl eine Matrix ist.

 
Prival >> :

die einfachste Programmiersprache ist, betrachten manche Leute sie nicht einmal als eine Sprache. Meistens sieht man eine Formel in einem Buch und schreibt sie in Matcad.

Das Einzige, was Sie beachten müssen, ist, dass Matcad eine Matrixsprache ist. Auch eine Primzahl ist in Matcad eine Matrix. Ich halte es (Matcad) für den Höhepunkt der Entwicklung von Programmiersprachen.

Danke Prival!

>>: Schön, Sie zu sehen! -:)

 
paralocus писал(а) >>

Ist der Lernvektor in jeder Epoche derselbe oder nicht?

Ich habe mich bei der Beantwortung Ihrer Frage im vorherigen Beitrag geirrt - ich bezog mich auf die Vorhersage einer neuen Epoche, nicht auf eine neue Epoche. Beim Training auf einen neuen Bounce haben wir nur einen Trainingsvektor und hundert Trainingsepochen mit Korrektur der NS-Gewichte in jeder Epoche!

Ein neuer Countdown wird empfangen - der Trainingsvektor ändert sich, und wir lassen erneut hundert Trainingsepochen darauf laufen, und so weiter.

Entschuldigung. Ich bin selbst schon ganz verwirrt.

paralocus schrieb >>

Ist Matcad schwer zu beherrschen?

Auch wenn ich mich davor fürchte, aber ich denke, ich werde es herausfinden müssen...

Nein, es ist ganz einfach. Holen Sie sich einen 2001i Pro.

 
paralocus писал(а) >>

Danke Prival!

Schön, Sie zu sehen! -:)

Ja, ich lese diesen Thread die ganze Zeit über sehr aufmerksam. Aber ich verstehe vieles davon nicht, weil ich die Begriffe nicht verstehe. Synapsen, Epochen ...usw.

Es braucht Zeit, um es zu verstehen, und es ist besser, es mit einem Lehrer zu machen (dann geht es schneller). Aber bisher bin ich nicht in der Lage, das zu tun. Ich bereite Daten für die Überprüfung der Idee vor, ich denke, ihre Idee durch die Nationalversammlung zu überprüfen. Dann wird es Zeit, zu verstehen, was und wie man damit programmiert. Im Moment weiß ich nur (ich glaube, ich weiß), mit welchen Daten es gefüttert werden soll und worauf es trainiert werden soll.

Ich arbeite mit Matkad 14 und es hat einige praktischere Funktionen als 2001i.