Zitat von
cheatzs:
Das klingt schon sehr interessant und wird wahrscheinlich auch stimmen - mich hat nur verwundert das dies nicht in einer art Parabelkurve ansteigt, sonder extrem Sprunghaft, ich musste zum Beispiel bei einem Einzigen Entscheidungspunkt ca. 10 min warten bei einem 500 Mhz Prozessor bis er das ergebnis berechnet hatte, danach gings wieder ca. 100 Entscheidungen ohne Probleme in ca. 1 bis 2 Sekunden.
Das hat andere Ursachen. Das vom mir programmierte Netzwerk benutzt verschiedene Techniken um enorm schnell zu lernen (im Idealfall wohlgemerkt). Dies wären Backtracking, Kandidateselektion und Genetisches Kreuzen von Kandidaten Units. Nun, was heist das ?
Ein RCC Netzwerk erzeugt während der Lenrphase x neue Neuronen. Es fügt diese Neuronen aber nur virtuell in's Netzwerk ein. D.h. diese Kandidaten werden durch Zufall initialisiert, zB. 10 Kandidaten. Nun wird jeder Kandidate virtuell ins Netzwerk eingefügt und trainiert. Nach einer kurzen Zeitspanne des Trainings sterben schlechte Kandidaten aus, und gute Kandiaten kreuzen sich mit weniger guten Kandidaten, man sagt dazu auch Evolution. Solange beim Training das gesammte Netzwerk immer wieder bessere Resultate erzielt wird weitertrainiert. Also solange bis das Training stagniert. Nun wird das beste Kandidaten-Neuron ausgewählt und tatsächlich als neues Neuron in das bestehende Netzwerk eingefügt, fertig. Es beginnt nunalles von vorne. Dieses ständige hinzufügen und trainieren virtueller Neuronen wird so lange durchgeführt bis das Gesammtnetzwerk ebenfalls anfängt zu stagnieren. Nun, der Trainings-Algorithmus hat aber den vorhig besten Zwischenstand des Netzwerkes gespeichert. Sollte das derzeitige Resultat des Netzwerkes unzureichend sein so beginnt das Backtracking zu wirken. D.h. der Trainingsalgo. verwirft das bestehende Netzwerk und springt zurück zum gespeicherten und besseren Netzwerk. Nun beginnt alles von neuem. Diesem Backtraking wird maximal 3 mal durchgeführt.
So, es kann nun vorkommen das ein dezeitiges Netz ein Problem nicht erlernen kann. Dies führt dann dazu das es sehr häufig das backtracking durchführt und demzufolge viel länger an Zeit benötigt. Oder aber das Netz kann sehr schnell adaptieren und erreicht in sehr kurzer Zeit die eingestellte Fehlertoleranzen. Der Effekt der eintritt ist eben die Sprunghafte Lernkurve. Solche Sprünge sind ein gutes Zeichen da sie auf eine "Reorganisation" des Netzes hindeuten, allerdings sind sie wenig erwünscht.
Gruß Hagen