learning an individual skill
Download
Skip this Video
Download Presentation
Learning an individual skill

Loading in 2 Seconds...

play fullscreen
1 / 19

Learning an individual skill - PowerPoint PPT Presentation


  • 52 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Learning an individual skill' - harriet-raymond


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

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