Date post: | 01-Jan-2016 |
Category: |
Documents |
Upload: | harriet-raymond |
View: | 21 times |
Download: | 0 times |
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
• Um einen Winkel drehen
• Dash forward
Die Möglichkeiten des Spielers die
Bahn des Balls zu schneiden werden
dadurch eingeschränkt.
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
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
Eigener Ansatz
• Verwendung der libMRB der Mainz Rolling Brains (C++)
• Perception und Action synchronisiertsend_step = 100 msec (default: 150)
• Einsatz des Offline - Coach
Perception – Action Synchronisation
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
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
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!)
Synchronisation
example
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
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)
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.
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).
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
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.
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
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