19
Learning an individual skill Pass interception

Learning an individual skill

Embed Size (px)

DESCRIPTION

Learning an individual skill. Pass interception. Problemstellung. Ziel: Ein Spieler soll sich in die Flugbahn des sich nähernden Balls stellen können. Er soll den Ball stoppen können, wenn er nahe genug ist. Ansatz mittels NN. Aktion des Empfängers: Erkennen der Flugbahn des Balls - PowerPoint PPT Presentation

Citation preview

Page 1: Learning an individual skill

Learning an individual skill

Pass interception

Page 2: Learning an individual skill

Problemstellung

Ziel:

• Ein Spieler soll sich in die Flugbahn des sich nähernden Balls stellen können.

• Er soll den Ball stoppen können, wenn er nahe genug ist.

Page 3: Learning an individual skill

Ansatz mittels NN

Aktion des Empfängers:

• Erkennen der Flugbahn des Balls

• Um einen Winkel drehen

• Dash forward

Die Möglichkeiten des Spielers die

Bahn des Balls zu schneiden werden

dadurch eingeschränkt.

Page 4: Learning an individual skill

Input - Vektor

Welche Merkmale bestimmen die Flugbahn des Balls eindeutig?

• Geschwindikeitesvektor bei einem bestimmten Abstand dist(Receiver,Ball)

• dist(Receiver,Ball) zur Zeit t-1

angle(Receiver, Ball) zur Zeit t-1

dist(Receiver, Ball) zur Zeit t

angle(Receiver, Ball) zur Zeit t

)1(

)1(

)(

)(

ta ng le

td ist

tan gle

td ist

tu rnA n g le

Page 5: Learning an individual skill

Lösung CMUnitedAufnahme der Trainingsdaten

• Der Passer kickt den Ball genau in Richtung des Empfängersdurch Rauschen verursachte, kleine Abweichung des Schußwinkels (ball_rand > 0)

• dist(Receiver, Ball) > 14Der Empfänger dreht sich in Richtung des Balls

• dist(Receiver, Ball) < 14randAngle: randomisierter Winkel zwische –45° und 45°Trainingsdaten dist(t), angle(t), dist(t-1), randAngle werden aufgenommenAnmerkung: angle(t-1) = 0

• Empfänger dreht sich um (randAngle + angle(t))• Empfänger führt 1 „Dash forward“ aus

es werden nur Bälle mit einem geringen Abstand vom Empfänger erreicht

• Der Versuch wird klassifizierterfolgreiche Versuche werden den Trainingsdaten hinzugefügt

Page 6: Learning an individual skill

Eigener Ansatz

• Verwendung der libMRB der Mainz Rolling Brains (C++)

• Perception und Action synchronisiertsend_step = 100 msec (default: 150)

• Einsatz des Offline - Coach

Page 7: Learning an individual skill

Perception – Action Synchronisation

Page 8: Learning an individual skill

Aufnahme der Trainingsdaten

• 1. Ansatz: Aufnahme der Trainingsdaten durch den Empfänger / rand_ball = 0.05

Die Trainingsdaten waren nicht geeignet, da die zum einen durch die Wahrnehmung des Empfängers und zum anderen durch ball_rand verfälscht wurden.

• 2. Ansatz: Aufnahme der Trainingdaten durch den Empfänger / rand_ball = 0

Die Daten waren noch immer verrauscht, da die DirChng- Infomation unverläßlich ist.

• 3. Ansatz: Aufnahme der Trainingsdaten durch den Offline-Coach

Wichtige Merkmale der Server- Nachicht „see“

(ObjName Distance Direction DistChng DirChng BodyDir HeadDir)

•Auflösung Distance wird durch „quantize step“ festgelegt

•Auflösung Direction: 1°

•DistChng, DirChng: bruchstückhafte Information

Page 9: Learning an individual skill

Trainingssituation

• Der Passer kickt den Ball in Richtung des Empfängers 5°Die Abweichung des Schußwinkels von angle(Passer, Receiver) wird randomisiert.

• dist(Receiver, Ball) > 15Der Empfänger dreht sich in Richtung des Balls

• dist(Receiver, Ball) < 15randAngle: randomisierter Winkel zwische –45° und 45°Trainingsdaten dist(t), angle(t), dist(t+2), angle(t+2) und randAngle werden aufgenommen

• Empfänger dreht sich um „randAngle“• Empfänger führt 2 „Dash forward“ aus

es werden auch weiter entfernte Bälle erreicht

• Der Versuch wird com Coach klassifizierterfolgreiche Versuche werden den Trainingsdaten hinzugefügt

Page 10: Learning an individual skill

Anmerkungen zur Trainingssituation

• Der Ball wird dem Empfänger mit tlw. großen Abweichungen zugespielt.

• Der Coach nimmt dist(t), angle(t), dist(t+2), angle(t+2) sowie den randomisierten Drehwinkel des Empfängers auf.

• Der Empfänger führt 2 Dashes aus, wodurch auch Bälle mit „größerer Abweichung“ erreicht werden können.

• Der Empfänger versucht nur durch „Erraten“ des richtigen Drehwinkels eine Kollision mit dem Ball herbeizuführen. (kein Kick!)

Page 11: Learning an individual skill

Synchronisation

example

Page 12: Learning an individual skill

Trainieren des NN

• Netzwerk:4 input units8 sigmoid hidden units1 linear output unit

• fully- connected• learning Rate: 10-5

• kein „weight decay“• Training über 3000 Durchgänge

Verwendete Software: SNNS Release 4.1(Teil der SuSE 7.0 Distribution)

example

Page 13: Learning an individual skill

Offene Fragen

Wie viele Trainingsbeispiele sind

notwendig um das NN hinreichend

gut trainieren zu können?

Lösung: Training von mehreren

NNs mit verschieden großen

Mengen an Traininssets und

anschließender Auswertung durch

Simulation hinreigend vieler Pass-

Annahmen. (zeitaufwendig)

Wie intensiv kann das NN trainiert

werden, ohne an Aussagekraft über

„ungesehene“ Beispiele zu

verlieren?

Lösung: Auswertung verschieden

trainierter NNs durch Simulation

hinreichend vieler Pass-

Annahmen. (zeitaufwendig)

Page 14: Learning an individual skill

Stoppen des Balls (1/3)

• Der Geschwindigkeitsvektor des Balls kann aus den Distanz- und winkelinformationen berechnet werden.

• Objektgeschwindigkeit(vx,vy)t+1 = (vx,vy)t + (ax,ay)

• Ballbeschleunigung durch kick(kick_power, kick_angle)(ax,ay) = kick_power * kick_power_rate * (1 – (0.25*dir_diff / 180) – 0.25*(dist_ball – player_size – ball_size) / kickable_area)

dir_diff... Betrag des Winkels zum Ball relativ zus Position des Spielers

dist_ball... Abstand des Balls vom Mittelpunkt des Spielers.

Page 15: Learning an individual skill

Stoppen des Balls (2/3)

• Hat der Empfänger die Flugbahn des Balls erreicht, wird zu jedem Zyklus die Position des Balls vorherberechnet.

• Wird sich der Ball im nächsten Zyklus in der kickable_area befinden, dreht sich der Spieler zu dessen berechneter Position

• Es wird ein Beschleunigungsvektor und daraus kick_power und kick_angle berechnet, so daß der Ball im nächsten Zyklus unmittelbar vor dem Spieler liegt.

Anmerkung: Da die Berechnung des Geschwindigkeitsvektors nicht

immer verläßlich ist, sind in den meisten Fällen mehrere kicks nötig um

den Ball zu stoppen (Bedingung |v| < 0.05).

Page 16: Learning an individual skill

Stoppen des Balls (3/3)

kickab le a rea

b all (t)

b all_ v (t)

b erech n et

gew ün sch t

a n g lekic k

p o w e rkic k

_

_

b all (t+ 1)

example

Page 17: Learning an individual skill

Ergebnis (1/3)

• Die Auswertung erfolgte über eine größere Menge an Versuchen unter Einsatz des NN bei Schußwinkeln von –10 bis +10 Grad.

• Die Auswertung ohne Rauschen (ball_rand = 0) wurde mit je 1000 Versuchen durchgeführt.

• Die Auswertung mit Rauschen mit jeweils 200 Versuchen.

Page 18: Learning an individual skill

Ergebnis (2/3)NN Testauswertung

0

10

20

30

40

50

60

70

80

90

100

-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10

Schußwinkel

% e

rfo

lgre

ich

0

0,02

0,04

0,06

0,08

0,1

Page 19: Learning an individual skill

Ergebnis (3/3)

Schußwinkel = 0°

0

20

40

60

80

100

0 0,02 0,04 0,06 0,08 0,1

noise (ball_rand)

% e

rfo

lgre

ich