Thema: Delphi Neuronale Netze ???

Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#37

Re: Neuronale Netze ???

  Alt 15. Jan 2004, 11:44
Zitat:
Es ist mir zwar mega- peinlich, das zu sagen, aber ich habe echt vergessen, wie man units als Komponenten registriert. Könnte mir das vielleicht noch einmal auffrischen?
IDE\Menu\Komponente installieren...

Zitat:
Hagen: Dein NN- Test Programm zeigt irgedwie... intervalle. Ich weiss nich genau, wie ich das nennen soll, aber die Zeiten, in dem Programm meine Eingaben zu mehr als 50% vorhersagt und die, bei denen es nur "rät" wechseln sich, in zwar ungleichmäßigen, aber doch Intervallen ab.
Woran kann das liegen? Habe ich da vielleicht nur meine Click- Strategie unterbewusst geändert, so dass das Netz eine neue Erlernen mussste, welche ich dann wiederum ändere, oder liegt das an etwas anderem?
Das Netz lernt nach jedem Tipp alle vorherigen Tipps neu, eg. es wird immer mit allen getätigten Tipps trainiert. Dadurch steigt die Komplexität des Netzes exponentiell, was wiederum die Trainingsphase erheblich zeitlich verlängert. Da mein RCC Netz aber ganz spezielle Trainings-Algorithmen enthält ist die Adaptionsgeschwindigkeit des Netzes NICHT vorhersehbar. Ein Schubweises lernen von Neuronalen Netzen, genetischen Algorithmen und Evolutions Strategien ist durchaus bekannt und logisch. Wie in der Evolution selber gibt es Trainings/Lernphasen die einen Quantitatives Wachstum und ein Qualitatives Wachstum beschreiben. Quantitive Verlaufe sind stetig linear und Qualitative Verläufe sind immer sprunghafte Anstiege.

Gute Netze/Gen. Algo. setzen sich immer aus solchen abwechselnden quantitativen und qualitativen lernphasen zusammen. Normalerweise sind diese sich abwechelenden Phasen eher zufällig, zB. bei genetischen Algortihmen. Neuronale Netze tendieren aber dazu diese abwechselnden Phasen sehr ausgeglichen durchzuführen. Als Resultat erleben wir eine Intervallhafte Lernkurve. Diese Lernkurve bestimmt ist die Geschwindigkeit der Lernfähigkeit des Netzes sowie demzufolge auch ein Maß für die antrainierte "Intelligenz" des Netzes. Es besteht also zwischen der Lernkurve des Netze ein indirekter Zusammehang zur Qualität des erzeugten Netzes. Um so mehr es trainiert wird um so spezialisierter wird das Netz sich ausbilden, man übertrainiert es also. Dadurch sinkt aber die Adaptionsfähigkeit des Netzes für neue Probleme. In diesem Moment muß sich das Netzwerk umorganisieren. Da aber in meiner Demo jeder neue Tipp + alle vorherigen Tipps in inkrementeller Weise trainiert werden wird das Netz bei sehr langen Spielen eben ineffizient. Normalerweise müsste man ein "Vergessen" der ältesten Tipps einbauen und das Netz herunter-stuzen. Das ist aber einfacher gesagt als getan

Mein Demo-Beispiel ist eben NUR eine Demonstration der unwahrscheinlichen Fähigkeiten Neuronaler Netze. Es ist schwierig solche Beispiele exakt zu konstruieren so daß sie auch noch in beweisbarer Form die Wirksamkeit der NN's aufzeigen. Normalerweise kann man sagen das der Programmtechnische Aufwand um die Netze herum größer sein muß als der eigentliche Netzwerkcode. D.h. der Code des NN's ist nur 50% der gesammten Arbeit. Wenn du dir aber mein Beispiel anschaust so sieht man das ich diesen Aufand so gering wie nur möglich gehalten habe, d.h. mein Demo-Beispiel kann nicht optimal an das Netzwerk angepasst sein. Nur in einigen Ausnahmen, wie reine Mustererkennungen, ist dieser zusätzliche Aufwand geringer. Allerings demonstrieren solche Aufgaben nicht die "Intelligenz" der Netzwerke, und waren somit keine Alternative für meine Demo.

Gruß Hagen
  Mit Zitat antworten Zitat