Verständnisfragen:
Was meinst du mit "Struktur"? (Die Anzahl der versteckten Ebenen? Die Anzahl der Neuronen?)
Also mein Vorgehen ist ja so, dass ich zwei Netze vergleiche, das stärkere (mehr gelöste Aufgaben) nehme und dann mit einer gewissen Zufälligkeit, die vom Verhältnis der Stärken abhängt, einzelne Werte mutiere.
Das heißt, dass irgendwann natürlich alle Netze die gleiche Anzahl Ebenen und Neuronen hat. Das meinte ich mit Struktur. Denn es wundert mich, dass das testen der Netze immer schneller geht, je weniger unterschiedliche Strukturen (anzahl Ebenen und Neuronen) ich habe. Obwohl die Anzahl an Operationen die für jede Generation durchgeführt werden müssen immer gleich ist! (Logisch da: Gleich viele Netze pro Generation, für jedes Netz stumpfer Algorithmus, der das Ausgangssignal ausgibt).
Verständnisfragen:
Was meinst du mit "gleich viele Aufgaben [lösen]"?
Ich habe 40 Bilder: 20 X-Bilder und 20 O-Bilder. Jedes Netzt bekommt diese Bilder gegeben und soll mir sagen ob es ein X oder ein O ist. Heißt also 40 "Aufgaben". Gelöst ist die Aufgabe natürlich, wenn das Bild richtig interpretiert wurde. Die Fitness ergibt sich dann also durch: #(richtig erkannt)/#(gesamt).
Es wäre mE sinnvoller, die Konvergenzrate fixer Strukturen zu testen und dann die am schnellsten konvergierende Struktur auszuwählen.
Das Problem ist, dass bei mir nicht mal fixe Strukturen konvergieren. Durch die zufällige Permutation wird das Ergebnis jedesmal wieder beliebig schlecht oder gut (obwohl ich nur gaaaaanz wenig zufällig permutiere).
Und die Idee war natürlich auch, dass sich die bessere Struktur bei den ersten paar Generationen durchsetzt und ich dann automatisch mit einer halbwegs brauchbaren arbeite. Es setzt sich zwar eine Struktur durch, jedesmal wenn ich das Programm starte (siehe vorigen Post von mir). Das Problem ist nur, dass danach eben nichts mehr konvergiert und sich alles äußerst für mich unerklärlich verhält (siehe vorigen Post).
Ich gebe zu ohne Code ist hier wohl nur raten möglich, aber ich muss mal gucken ob ich den Code soweit zusammenschneiden kann, dass jemand überhaupt Lust hat da reinzuschauen ^^.