180 likes | 257 Views
Learning a Multiagent Behavior. Pass Evaluation. Problemstellung. Ziel: Möchte ein Spieler den Ball zu einem Mitspieler passen, so soll er aus einer Reihe von Merkmalen, die seine Umgebung beschreiben, jenen bestimmen, zu dem ein Pass am wahrscheinlichsten erfolgreich ist.
E N D
Learning a Multiagent Behavior Pass Evaluation
Problemstellung Ziel: Möchte ein Spieler den Ball zu einem Mitspieler passen, so soll er aus einer Reihe von Merkmalen, die seine Umgebung beschreiben, jenen bestimmen, zu dem ein Pass am wahrscheinlichsten erfolgreich ist.
Play Tennis or not ? Wie funktioniert ein DT ? • Ein Beispiel (bestehend aus Merkmalen) wird einer Klasse zugeordnet. • Blätter sind Klassen • In Knoten wird über ein Merkmal entschieden und je Nach Ausgang im Baum verzweigt.
Voraussetzungen für DT learning • Attribute - value description diskret oder numerisch, aber für alle Beispiele gleich • Vordefinierte Klassen supervised learning, z.B. {good, bad} • Diskrete Klassen 1 Beispiel gehört genau 1 Klasse an • Genügend Trainingsdaten Unter den Trainingsbeispielen muß sich ein Muster abzeichnen • Logisches Modell
Decision Tree algorithmus C4.5 • Nachfolger des ID3 • Literatur Quinlan, J. Ross (1993). C4.5: Programs for Machine Learning C4.5 / Beschreibung der Software (incl. Source) und dessen Anwendung Mitchell, Tom M. (1997). Machine Learning u.a. Decision Tree Learning (Grundlagen, ID3) • WWW www.cse.unsw.edu.ac/~quinlan (C4.5)
Merkmale des C4.5 • Algorithmus wählt die Merkmale, nach denen sich der Baum verzweigt. • Kontinuierliche Merkmale sind möglich, wobei der Algorithmus den optimalen Schwellwert auswählt. • Neben der Klassifizierung kann zu jeder Klasse ein Erwartungswert für ungesehene Beispiele berechnet werden.
Trainingssituation CMU • Der Passer ist in Ballbesitz und steht in der Mitte des Spielfeldes. • Darunter werden in einem vorgegebenen Bereich 3 Mitspieler und 4 Gegenspieler zufällig plaziert. • Der Passer gibt bekannt, daß er abspielen möchte. • Alle Mitspieler übermitteln dem Passer eine Reihe von Merkmalen, der sie zusammen mit von ihm wahrgenommenen Merkmalen speichert. • Der Passer wählt einen Mitspieler aus und teilt ihm mit, daß er den Ball empfangen soll. • Der Ballabgabe wird durchgeführt, wobei die Gegner und der Empfänger versuchen den Ball abzufangen. • Der Passer klassifiziert das Ergebnis und legt die gesammelten Merkmale als gutes oder schlechtes Beispiel ab.
Erweiterung Es werden 2 zusätzliche Gegner mit einem Abstand zwischen 2 und 10 vom Passer plaziert. Dadurch soll simuliert werden, daß der Abspieler von Gegnern bedrängt oder blockiert wird. Anmerkung: Alle Spieler sind mit dem „pass interception“- skill des 1. Layers ausgestattet.
Input Merkmale (1/2)jeweils von Passer und Empfänger Beobachtung des eigenen Umfeldes: • Distanz und Winkel zum Empfänger • Distanz und Winkel zu Mitspielern • Distanz und Winkel zu Gegnern • Spielerverteilung für {2,4,6,8,10,12} ... relativer Sichtwinkel
Input Merkmale (2/2)jeweils von Passer und Empfänger Beobachtung des Umfeldes des jeweils anderen Beteiligten • Spielerverteilung (Mitspieler/Gegner/Gesamt) für , d {4,8,12} ... relativer Sichtwinkel d... relativer Abstand
Klassifikation Wurde ein Ball erfolgreich gestoppt, wird er in Richtung gegnerisches Tor gekickt, woraus der Passer den Ausgang des Beispiels erkennt. Problem: Der Ball kann mit einem anderen Spieler kollidieren. Lösung: Der Spieler sucht nach dem maximalen Winkel zwischen 2 Spielern. Anmerkung: Aufgrund fehlender visueller Information kann dieser Fall trotzdem eintreten.
Synchronisation (Passer) • (PLAY_MODE_PLAY_ON) and (ball_kickable) t0 = time • (time > t0 + 5) SAY(I_WANT_TO_PASS) / t1 = time • (time > t1 + 20) and (receiver found) randomize receiver • (time > t1 + 20) and (no receiver answered) • HEAR(READY_TO_RECEIVE) process data / kick SHOOTER_WAITING while(time < t1+20) receive data from teammates SHOOTER_SHOOTING SAY(PASSING_TO_YOU) + wait for (READY_TO_RECEIVE) SHOOTER_FINISHED face ball and classify result {success, failure, miss} tell coach to start again / reset
Synchronisation (Receiver) • Is member of „Team1“ • HEAR(I_WANT_TO_PASS) t1 = time • (Player faces ball) and (data sent) • HEAR(I_WANT_TO_PASS) t1 = time • HEAR(PASSING_TO_YOU) delay 1 step SAY(READY) / t2 = time • no ball movement for 15 steps • Ball interception failed • Ball interception successful • Ball shot towards opposite goal RECEIVER_ANSWERING try to face ball in 8 steps + send data at time (t1 + 8 + 2*myNumber) example
DT training Das Trainingsset, bestehend aus 5128 Beispielen (2973 good, 2155 bad), setzt sich wie folgt zusammen: 3248 Beispiele: 3 Mitspieler, 4 Gegner, 2 Gegner im Umkreis des Passers 900 Beispiele: 3 Mitspieler, 4 Gegner 980 Beispiele: 3 Mitspieler, 4 Gegner, Merkmale des Empfängers fehlen Offene Frage: Wie wirkt sich eine Veränderung der Zusammensetzung der Trainingsdaten auf den Entscheidungsbaum aus? example
Ergebnis (1/2) • Original Tree 1281 nodes Error on training set 10,2 % • Pruned Tree 77 nodes Error on training set: 15,3 % • Pruned Tree CMU: 87 nodes Error on training set: 26 %
Fehlerquellen • Kommunikationsfehler • Ballverlust nach erfolgreicher Annahme • Schlechte Passannahme (NN) • Falsche Entscheidung des DT example