Learning an individual skill
This presentation is the property of its rightful owner.
Sponsored Links
1 / 19

Learning an individual skill PowerPoint PPT Presentation


  • 32 Views
  • Uploaded on
  • Presentation posted in: General

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Learning an individual skill

Learning an individual skill

Pass interception


Problemstellung

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

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

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


L sung cmunited aufnahme der trainingsdaten

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


Eigener ansatz

Eigener Ansatz

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

  • Perception und Action synchronisiert

    send_step = 100 msec (default: 150)

  • Einsatz des Offline - Coach


Perception action synchronisation

Perception – Action Synchronisation


Aufnahme der trainingsdaten

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

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


Anmerkungen zur trainingssituation

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

Synchronisation

example


Trainieren des nn

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


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)

Offene Fragen


Stoppen des balls 1 3

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

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

Stoppen des Balls (3/3)

example


Ergebnis 1 3

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

Ergebnis (2/3)


Ergebnis 3 3

Ergebnis (3/3)


  • Login