Machine Learning - flappy bird

  • Je kan een neuraal netwerk gebruiken om de computer flappy bird te laten spelen 
lgg
1 / 10
next
Slide 1: Slide
InformaticaMiddelbare schoolvwoLeerjaar 6

This lesson contains 10 slides, with interactive quiz and text slides.

time-iconLesson duration is: 45 min

Items in this lesson

  • Je kan een neuraal netwerk gebruiken om de computer flappy bird te laten spelen 
lgg

Slide 1 - Slide

This item has no instructions

Dit gaan we maken
Met een neuraal netwerk

Slide 2 - Slide

This item has no instructions

Welke base komt er wel in DNA voor en niet in RNA
A
G
B
U
C
T
D
A

Slide 3 - Quiz

Vakoverstijgende les :'D
Van Flappy Lerenstein
Wat gebeurt hier?
We beginnen met 500 vogels. Elke  vogel krijgt een brain. Dat brain is eigenlijk een neuraal netwerk. Dat neurale netwerk bedenkt op basis van wat input variabelen en wat randomheid wanneer de vogel moet springen.

De meeste vogels zijn heel dom en sommige wat minder. Er blijft er altijd eentje over. Op basis van deze vogel maken we weer 500 nieuwe vogels. Maar we willen wel dat ook deze weer slimmer worden dus wordt bij elke vogel de brain weer wat aangepast. 

En dan kopieren we de slimste weer enz.. enz..

Slide 4 - Slide

S
Van Flappy Lerenstein
Neuraal netwerk met flappy bird
Alle vogels dood? Nieuwe maken o.b.v. laatste

In de draw loop kijken we naar hoeveel vogels we nog over hebben en als we er nog ééntje over hebben is dat dus de slimste. De smartestBird

De reset functie doet vervolgens een aantal dingen zoals de pipes resetten maar ook wordt daar een nieuwe lijst met vogeltjes gemaakt.
 
Elke vogeltje krijgt als argument het brain van de smartestBird

Slide 5 - Slide

S
Brain kopiëren
Neuraal netwerk met flappy bird
Brain kopieren en aanpassen

De Bird class krijgt in z'n constructor een brain (of niet). Als er een brain is gaan we deze muteren (r. 25).

Het muteren is eigenlijk de magie die in de hidden layers gebeurt. Je hoeft de code niet helemaal te begrijpen zolang je maar begrijpt dat er iets randoms gebeurt (r.2 en r.3)



Slide 6 - Slide

S
Neuraal netwerk
Hoe zat het ookalweer
Input en output
De afbeelding hiernaast is een schematische weergave van een neuraal netwerk. Het belangrijkste voor nu is dat we de essentie van een neuraal netwerk weten:

Input (1) -> magie (2) -> output (3)

Input
De input zijn alle mogelijke variabelen

Magie
De magie zijn de hidden layers. Deze zorgen voor de output

Output
De mogelijk uitkomsten die je wil hebben. Deze bepaal je dus zelf!
1
2
3

Slide 7 - Slide

S
Flappy brain
Neuraal netwerk met flappy bird
Het brain werkt door vaste variabelen te combineren met randomness. De vaste variabelen zijn de input(s).  De input bij Flappy bird zijn de volgende:
 
  1. Positie van het gat
  2. De positie van de vogel
  3. Snelheid van de vogel


Op basis van die inputs willen dat het brain een keuze maakt uit een van de twee opties:

  1. Spring
  2. Niet spring

Slide 8 - Slide

S
Flappy brain
Neuraal netwerk met flappy bird (code)
In code ziet dat er zo uit
 
  1. positie van het gat (r.79)
  2. positie van het gat (r.81)
  3. positie van het gat (r.83)
  4. de positie van de vogel (r.85)
  5. snelheid van de vogel (r.87)

Output

  1. Spring
  2. Niet spring

Slide 9 - Slide

S
Stappenplan
Bekijk en zet in Trello
  1. Voeg een brain toe aan de bird class
  2. Laat de bird m.b.v het brain springen
  3. 500 birds in een lijstje stoppen en tekenen
  4. Bij elke pilaar elke bird checken op botsing
  5. Bij elke botsing de bird verwijderen uit lijst
  6. Bij nog één bird in lijst deze "onthouden"
  7. Gebruik de brain van de slimste bird om de nieuwe birds te maken


Slide 10 - Slide

S