Also wo wir schon dabei sind, können wir auch etwas exakter definieren: Genetische Algorithmen sind stochastische Optimierungs- bzw. Suchmethoden. Zum gen. Alg. gehören a) eine geeignete Codierung des Optimierungsproblems b) ein Mutationsoperator c) Informationsaustauschoperator (Crossover) d) eine FitnessfunktionZitat von Anonymous
Beispiel:
Wir betrachten 4-stellige Binärzahlen. Optimierungsproblem: Erzeuge die größte 4-Stellige Zahl. Fitnessfunktion: fehler(x)=15-x (offensichtlich ist 15 die größte 4-stellige Binärzahl und damit unser Ziel).
Wir starten mit einer Menge von, sagen wir, 3 zufällig gewählten Zahlen, 0000, 0010, 1001.
Jede Zahl darf sich jetzt vermehren. Bei der Vermehrung treten, wie bei der Zellteilung, durch Mutation Fehler auf. So können einzelne Bits umkippen (aus 0 wird 1). Ob ein Bit mutiert oder nicht, wird zufällig ausgewählt. Für die Mutation wird vorher eine bestimmte Wahrscheinlichkeit festgelegt, zum Beispiel 20%. Wenn wir die erste unserer drei Zahlen, die 0000, vermehren, wird also jedes Bit mit einer Wahrsceinlichkeit von 20% umkippen. Wir erhalten also als "Kopie" von 0000 zum Beispiel 0010.
Jetzt noch zum Crossover: Wie bei der Zellteilung können Teile der Bitketten zwischen zwei Zahlen ausgetauscht werden. Zum Beispiel nehmen wir die ersten beiden Bits der Zahl 1001 und die letzten beiden Bits von 0010 und fügen sie zusammen. Wir erhalten also als neues Element die Zahl 1010.
Haben wir jetzt alle Zahlen vermehrt, berechnen wir für jede die Fitnessfunktion (fehler(x)). Nur die drei Zahlen mit dem kleinsten Fehler (also der geringsten Abweichung von 15) bleiben am Leben und dürfen sich weiter vermehren, die anderen "sterben", werden also gelöscht. Auf diese Weise findet man nach endlicher Schrittzahl also auf die gesuchte Bitkette von 1111.
Ok, das Beispiel war vielleicht etwas trivial, verdeutlicht aber in etwa die Arbeitsweise von genetischen Algorithmen. Vielleicht kommt die Diskussion wieder etwas in Gange ...
Richtig, deshalb verringert man ja oftmals nach jedem Lernschritt auch die Lernkonstante immer weiter, bis auf einen kleinen Wert nahe Null.Ein Neuronales Netz kann sich auch überlernen, wenn die Lernfähigleit zu hoch justiert wird. Wenn diese Fähigkeit wie bei uns beim Altern aber kontinuierlich nachlassen würde, könnte man dadurch auch das Überlernen verhindern.
Lesezeichen