Flappy Bird & Artificial Intelligence

Artificial Neuronal Networks Crossover Evalutation Generic Algorithm Maschinelles Lernen Mutation NEAT Selection

Das Ziel dieses Projektes bestand darin, ein selbstlernendes System zu implementieren, das eine Nachbildung des Spiels Flappy Bird bestmöglich meistert. Das ursprüngliche Spiel wurde im Mai 2013 von der Firma .Gears Studios als App für Android & iOS veröffentlicht. Dabei handelt es sich um ein „Jump ‘n Run Spiel“, bei dem der Spieler das sogenannte Flappy Bird über den Touchscreen des Smartphones steuert und den Hindernissen ausweicht. Für jedes überwundene Paar an Hindernissen wird der Punktescore um einen Punkt hochgezählt. Ziel des Spiels ist es einen höchstmöglichen Score zu erreichen.

Im Gegensatz zur App soll aber nun kein menschlicher User das Spielgeschehen steuern, sondern eine Künstliche Intelligenz. Das Projekt wurde als abschlossen gesehen, als die KI einen High-Score von 10.000 Punkten erreicht hat.

Dies wurde mit dem NEAT-Algorithmus (Neuroevolution Of Augmenting Topologies) realisiert, einem Evolutionären Algorithmus, der auf Evaluation, Selektion, Crossover sowie Mutation basiert. Die Grundidee ist es, mit einer Grundpopulation an Flappy Birds zu beginnen, der sogenannten nullten Generation G0. Jedes dieser Flappy Birds wird dabei durch ein Künstliches Neuronales Netz (KNN) repräsentiert.

Durch iteratives evaluieren, selektieren, crossover, sowie mutieren, erhält man aus einer Popultaion Gn die Population der nächsten Generation Gn+1.

Im Klartext bedeutet das, dass sich die Flappy Birds Schrittweise von Generation zu Generation verbessern, wobei sich die Vögel der Generation Gn+1 an denjenigen Vögeln „orientieren“, die zu den besten der Generation Gn gehörten.

Die einzelnen Details zu den jeweiligen Schritten im Algorithmus kann man dem ursprünglichen NEAT-Paper1 entnehmen.

Im oberen Smartphone ist die erste Generation der Flappy Birds zusehen, welche von der KI gesteuert werden. Hierbei steht der Score noch auf 0.
Im unteren Smartphone und links als Screenshot, sieht man nur noch einen Flappy Bird der zweiten Generation, welcher bereits einen Score von 143 erzielt hat.