9.4.5 xNN - Im Kreis fahren lernen


Unser Gehirn lernt

Als Säugling und Kleinkind können wir noch sehr wenig. Indem wir unsere Umgebung beobachten und das nachmachen, was uns vorgemacht wird, lernen wir. Lernen bedeutet, dass sich die Neuronen und Verbindungen zwischen den Neuronen in unserem Gehirn verändern.

Auch einem elektronischen Gehirn kann man beibringen, dass es das Zusammenspiel seiner Neuronen selbst verändert. In diesem Kapitel soll sich der Roboter selbst beibringen, dass er in einem Kreis fahren kann.


Simulationsumgebung vorbereiten

  • Baue folgendes neuronales Netz:

  • Baue folgendes Programm (Expertenmodus aktivieren):

  • Baue folgende Simulationsumgebung:


Den Roboter lernen lassen

Zu Beginn des Lernens fährt der Roboter geradeaus auf der grünen Fläche.

Das Eingabe-Neuron im elektronisches Gehirn hat ein Eingabe-Neuron mit dem Wert 100. Beide Gewichte im neuronalen Netz haben einen Wert von 1, so dass sich beide Motoren gleich schnell drehen und der Roboter deswegen geradeaus fährt.

Damit der Roboter im Kreis fährt, muss der Roboter lernen, dass sich der linke Motor langsamer drehen muss als der rechte Motor.

Also muss das Gewicht G1 zwischen EN und AN1 einen Wert haben, der kleiner ist als 1.

Nur welcher Wert ist der richtige?

Man könnte solange viele unterschiedliche Werte zwischen 0 und 1 als Gewicht G1 ausprobieren, bis der Roboter so auf einem Kreis fährt, dass er die gründe Fläche nicht verlässt.

Das Computerprogramm soll jetzt selbstständig ein geeignetes Gewicht finden.

Dazu baut man eine Situation in das Programm ein, mit welcher feststellt werden kann, dass das Programm nicht so abläuft, wie die NutzerInnen des Programms es wünschen:

  • Wenn die Farbe, welche der Farbsensor misst, nicht "grün" ist, dann merkt das Programm, dass der Roboter die grüne Fläche verlassen hat.

  • Sobald der Farbsensor feststellt, dass der Roboter die grüne Fläche verlassen hat, wird das Gewicht zwischen dem Eingabe-Neuron und dem linken Motor (AN1) verringert und das Programm wird gestoppt.

  • Das neuronale Netz merkt sich das neue Gewicht, man setzt den Roboter wieder an die Startposition und startet das Programm mit dem angepassten Gewicht neu.

Sobald dem Programm beigebracht wurde, wie es selbst das Gewicht G1 zwischen EN und AN1 ändern kann, beginnt der Lernprozess.

Jedesmal wenn der Roboter die grüne Fläche verlässt, setzt man den Roboter wieder an die Startposition und startet das Programm neu. Das wird so oft wiederholt, bis der Roboter die grüne Fläche nicht mehr verlässt:

Am Ende des Lernprozesses hat das elektronische Gehirn ein Gewicht zwischen dem Eingabe-Neuron und dem mot1-Ausgabe_Neuron mit einem Wert von 0.64 gefunden.

Ergebnis des Lernprozesses: Wenn sich der rechte Motor mit 100% dreht und der linke Motor mit 64%, dann fährt der Roboter auf der grünen Fläche in einem Kreis.


Aufgabe
  • Verändere das Programm so, dass der Roboter lernt eine Rechtskurve zu fahren ohne die grüne Fläche zu verlassen.

Lösungsvorschlag

Hier kannst du einen Lösungsvorschlag für das Projekt öffnen.

Den Lösungvorschlag solltest du aber nur dann öffnen, wenn du bereits selbst eine eigene Lösung entwickelt hast.