Training

Das neuronale Netz bzw. der Bot kann im Spiel nur dann erfolgreich sein, wenn das Netz zuvor trainiert wurde.

Es müssen also sämtliche Gewichte und Schwellwerte des neuronalen Netzes derart eingestellt werden, sodass in Abhängigkeit der Werte der fünf Eingangsneuronen eine sinnvolle Entscheidung darüber getroffen wird, ob der Vogel (im jeweiligen Simulationsschritt) flattern soll oder nicht.

Wenn du mit genetischen Algorithmen vertraut bist, werden wir im Folgen skizzieren, wie genetische Verfahren zum Trainieren eingesetzt werden können.

Das oben dargestellte neuronale Netz besitzt 56 Gewichte und 10 Schwellwerte, sodass insgesamt 66 Variablen zu optimieren sind. Entsprechend bestehen die Individuen eines genetischen Verfahrens zum Trainieren des Netzes aus jeweils 66 Werten (bzw. reellen Zahlen).

Zu klären ist, wie die Fitness eines jeden Individuums bestimmt werden kann. Aber da jedes Individuum die Gewichte und Schwellwerte eines neuronalen Netzes beschreibt, können wir hier folgendermaßen vorgehen:

Die Fitness eines Individuums ist die Länge der Strecke, die der Vogel bzw. Bot des zugehörigen neuronalen Netzes flattern kann, ohne gegen ein Hindernis zu stoßen.

Je größer die Fitness eines Individuums, desto besser. Es sei jedoch bemerkt:

Die Fitness eines Individuums ist nicht deterministisch (kann also bei unterschiedlichen Spieldurchläufen variieren), da die Hindernisse zufällig generiert werden.

Dennoch kann ein genetischer Algorithmus eingesetzt werden, um die Individuen zu optimieren und damit das neuronale Netz zu trainieren. Übliche Parameter sind die Populationsgröße, die Anzahl der Elternpaare pro Generation sowie die Anzahl der Generationen.

Das Ergebnis des genetischen Verfahrens ist ein Individuum und damit ein (trainiertes) neuronales Netz, das in der Lage ist, das Spiel zu spielen.

Zusammenfassung
Das Ergebnis der Trainingsphase: Ein Bot steuert den Vogel.
Quiz
Exkurs Quellcode