Hallo zusammen. Ich arbeite derzeit an einem Netzsimulator in C++.
Mein Ziel ist es ein Programm zu entwerfen das einfach und autonom Netze für komplexe Anwendungen "züchtet"
Wie schon im Titel erwähnt beschreite ich dabei hinsichtlich der Lernfunktion ungewöhnliche Wege. Ich verzichte nämlich völlig darauf.
Zu Grunde liegt bei mir ein Neuronales Netz das Vollverbunden ist sowohl in vorwärts als auch in entgegengesetzter Richtung. Dadurch lässt sich ein zeitliches "Gedächtnis" realisieren
Wie lernt nun das Netz?
Ganz einfach: durch Mutation und Selektion. Eine Population von Standartnetzen wird auf eine Simulationswelt losgelassen. Die Gewichte sind rnd initialisiert.
Eine Fitnessfunktion ermittelt wie erfolgreich ein Netz ist.
Ist genügend Zeit vergangen werden schlechte Netze gelöscht, Erfolgreiche in mutierter Form vervielfältigt. Dabei werden sowohl Gewichte bzw. die Größe des Netzes geringfügig geändert.
Der ganze Prozess ist sehr zeitaufwändig, allerdings sollte sich ein sehr effizientes Netz herauskristallisieren, welches dann eventuell auf Hardware übertragen lässt.
Der eigentliche Sinn dahinter ist dass der Anwender nur Eingänge und Ausgänge, sowie die Fitnessfunktion anpassen muss, und automatisch gute Netze erhält
Was haltet ihr davon?
Bei Interesse gehe ich gerne auch auf Details ein
Lesezeichen