i

Kurzsichtiges Lernen

Wir betrachten nochmal die Wahrnehmungs-Aktions-Schleife aus dem ersten Abschnitt des Kapitels.

Wahrnehmungs-Handlungs-Schleife[1]
Wir betrachten eine bestimmte Situation $s$, die der Agent wahrnimmt. Anhand einer gierigen oder $\varepsilon$- gierigen Entscheidung wählt der Agent eine Aktion $a$ aus. Diese führt direkt zu einer Belohnung (reward) $r$. Außerdem nimmt der Agent nun wahr, dass er sich in einer neuen Situation $s'$ befindet. Anhand dieser Informationen soll nun unser Agent selbstständig seine Q-Werte anpassen. Dies geschieht in der Funktion lerne_dazu, die zunächst wie folgt aussieht:

def lerne_dazu(situation,aktion,belohnung,naechste_situation,naechste_moegliche_aktionen):
    '''
    Ein Lernschritt wird durchgeführt.
    Eingaben sind dabei:
    + die Situation, für die gelernt werden soll.
    + die Aktion, die neu bewertet werden soll.
    + die Belohnung, die beim Durchführen dieser Aktion erfolgt war.
    + die Situation, in der sich der Agent nach der Aktion befindet
    + eine Liste von Aktionen, die in der neuen Situation möglich sind.
    '''
    pass   
Der Befehl pass bedeutet nur, dass die Funktion gar nichts tun soll.

Aufgabe 1: Lernen nach unmittelbarer Belohnung

Wir wollen nun einen ersten einfachen Ansatz zum selbstständigen Lernen der Q-Tabelle machen. Natürlich ist Lernen gar nicht mehr notwendig, wenn schon eine mit natürlicher Intelligenz erstellte Q-Tabelle vorhanden ist. Deshalb besteht die erste Änderung darin, alle Einträge der Q-Tabelle auf 0 zu setzen, so dass unser Agent im wahrsten Sinne des Wortes ganz "von Null anfängt".

Passe die Funktion lerne_dazu nun so an, dass dem Q-Wert von situation und aktion einfach die Belohnung zugewiesen wird. Teste die Funktion, indem Du das Programm spiel_ki.py startest, die Taste "Lernen" drückst und ein paar Minuten wartest. Wenn dir das Lernen zu langsam geht, kannst du in spiel_ki.py die Konstante DELAY_LERNEN auf einen kleineren Wert (etwa 100) setzen.

Aufgabe 2: Überprüfung des Lerneffekts

Lasse das Spiel solange lernen, bis mehrfach das Geld im Safe gefunden wurde und man eigentlich erwarten müsste, dass das System jetzt gelernt hat, welche Aktionen die besten sind. Drücke nun den Knopf "Stop". Der Lernvorgang wird unterbrochen. Man könnte hoffen, dass nun die Q-Tabelle die richtigen Werte enthält. Teste dies, indem du "Optimal spielen" anklickst und den Spielverlauf beobachtest.

Quellen

Suche

v
5.1.3.5.4.1
inf-schule.de/ki/menueansicht/maschinelles_lernen_mit_python/verstaerkendes_q_learning/anpassung-von-q/kurzsichtiges-lernen
inf-schule.de/5.1.3.5.4.1
inf-schule.de/@/page/pPvgp5z2KPIY5g6j

Rückmeldung geben