1 / 19

Learning an individual skill

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

Download Presentation

Learning an individual skill

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Learning an individual skill Pass interception

  2. 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.

  3. 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.

  4. 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

  5. Lösung CMUnitedAufnahme der Trainingsdaten • Der Passer kickt den Ball genau in Richtung des Empfängers durch Rauschen verursachte, kleine Abweichung des Schußwinkels (ball_rand > 0) • dist(Receiver, Ball) > 14 Der Empfänger dreht sich in Richtung des Balls • dist(Receiver, Ball) < 14 randAngle: randomisierter Winkel zwische –45° und 45° Trainingsdaten dist(t), angle(t), dist(t-1), randAngle werden aufgenommen Anmerkung: 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 klassifiziert erfolgreiche Versuche werden den Trainingsdaten hinzugefügt

  6. Eigener Ansatz • Verwendung der libMRB der Mainz Rolling Brains (C++) • Perception und Action synchronisiert send_step = 100 msec (default: 150) • Einsatz des Offline - Coach

  7. Perception – Action Synchronisation

  8. 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

  9. 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) > 15 Der Empfänger dreht sich in Richtung des Balls • dist(Receiver, Ball) < 15 randAngle: 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 klassifiziert erfolgreiche Versuche werden den Trainingsdaten hinzugefügt

  10. 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!)

  11. Synchronisation example

  12. Trainieren des NN • Netzwerk: 4 input units 8 sigmoid hidden units 1 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

  13. 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) Offene Fragen

  14. 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.

  15. 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).

  16. Stoppen des Balls (3/3) example

  17. 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.

  18. Ergebnis (2/3)

  19. Ergebnis (3/3)

More Related