-         
Ergebnis 1 bis 3 von 3

Thema: QLearning PingPong

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    05.03.2018
    Beiträge
    41

    QLearning PingPong

    Anzeige

    Hallo Zusammen,
    ich habe momentan die Aufgabe bekommen ein selbstlernendes PingPong Spiel zu programmieren mithilfe von Reinforcement Learning. Leider bin ich mir nicht sicher, ob ich diesen Algorithmus zu 100% verstanden habe. Momentan habe ich ein Array implementiert, das zufällig 1 und 0 speichert. Je nach dem ob es eine 1 oder eine null ist wird der Schläger nach links oder rechts bewegt. Wenn der Ball nicht den Schläger berührt gibt es einen negativen "reward" und der letzte Punkt der Liste wird geändert. Nach 10 Minuten Laufzeit, zeigt das Programm keine guten Resultate. Kann mir jemand von euch sagen, ob ich das Prinzip richtig verstanden habe oder nicht? Und wenn ich es falsch verstanden habe eine Art Pseudocode geben um es richtig zu machen. Keine Angst, ich will hier keine fertige Lösung nur einen Denkanstoß damit ich in die richtige Spur komme und es richtig lerne.
    Mit freundlichen Grüßen,
    Thomas

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.06.2009
    Beiträge
    1.382
    Hallo,
    ich habe die letzten Monate recht viel mit maschinellem Lernen gemacht. Meine Feststellung war, dass häufig Bugs in anderen Teilen vom Programm (z.B. nur dass man eine Liste anders herum sortiert hat als man denkt) den Lernerfolg verhindern. Mein Tipp wäre schau dir noch mal in Ruhe deinen Code an auf Bugs.

    Machst du ganz klassiches Q-Learning mit der Bellmann Funktion, oder hast du ein tieferes Netz? Machst du das von Hand oder mithilfe einer Library? Wenn du das ganze von Hand implementiert hast, würde ich dir dringend zu einer Library wie Tensorflow oder Pytorch raten (zumindest wenn du mehr als nur ganz einfaches QLearning machst). Es gibt sehr viele Dinge wo man was falsch machen kann.

    Zum Prinzip von Reinforcementlearning: Du hast eine Diskrete Menge an Rewards (zB. Wenn der Ball links ist und du bist rechts, dann ist die Aktion bewege dich Links gut, die Aktion bewege dich recht ist schlecht). Dein Agent soll nun eine Tabelle lernen die sagt: Ok ich bin in dem State, wenn ich die Aktion mache komme ich in einen anderen State und das ist gut. In deinem Beispiel: Ich bin rechts, ich gehe nach link und bin jetzt im State eins weiter links, das ist gut, weil der Ball links ist.

    Code findet sich im Internet ja mehr als genug: https://towardsdatascience.com/getti...g-77499b1766b6

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    818
    Blog-Einträge
    7
    Alleine nur den Schläger links oder rechts zu positionieren, nutzt auch nicht viel. Der Anflugwinkel des Balls muss mindestens grob geschätzt werden, damit das Verhalten aufgrund dieses Winkels erlernt werden kann. Wenn man zur Vereinfachung mal davon ausgeht, dass alle Geschwindigkeiten immer konstant sind.

    MfG

Ähnliche Themen

  1. LEDschaltung im PingPong
    Von oberallgeier im Forum Elektronik
    Antworten: 27
    Letzter Beitrag: 02.09.2018, 10:41
  2. Nette Mini-Projekte - PingPong und "Laservideo"
    Von Andree-HB im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 4
    Letzter Beitrag: 03.08.2006, 21:53

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •