Q-learning - Machine Learning mit Reinforcement Learning (2024)

Zurück zu den Artikeln
  • 21. Dezember 2022

-

4

Minuten Lesezeit

-

Q-learning - Machine Learning mit Reinforcement Learning (1)

Reinforcement Learning ist eine Methode des Machine Learning, mit der komplexe Aufgaben selbstständig gelöst werden können.

Erst kürzlich machte diese Algorithmusfamilie im E-Sport von sich reden, als AlphaStar veröffentlicht wurde, ein Algorithmus, der entwickelt wurde, um die besten Spieler der Welt in StarCarft herauszufordern. Diese Algorithmen haben ein großes Potenzial, erweisen sich aber manchmal als sehr zeitaufwendig in der Erstellung und Parametrisierung. Dieser Artikel soll dir helfen, zu verstehen, was Q-Learning ist und wie du Zeit bei der Implementierung dieser Art von Lösung sparen kannst.

Lernen Sie Machine Learning

Definitionen

Was genau ist Reinforcement Learning?

Reinforcement Learning ist eine Methode des maschinellen Lernens, die es einem Agenten (virtuelle Entität: Roboter, Programm usw.), der in eine interaktive Umgebung gesetzt wird (seine Aktionen verändern den Zustand der Umgebung), ermöglichen soll, Aktionen zu wählen, die quantitative Belohnungen maximieren. Der Agent probiert aus und verbessert seine Handlungsstrategie auf der Grundlage der von der Umgebung gelieferten Belohnungen.

Was ist Q-Learning?

Es gibt viele verschiedene Reinforcement-Learning-Algorithmen, die in mehrere Unterfamilien kategorisiert werden. Q-Learning ist sowohl relativ einfach und ermöglicht gleichzeitig das Verständnis von Lernmechanismen, die vielen anderen Modellen gemeinsam sind.

Zur einleitenden Veranschaulichung: Ein Q-Learning-Algorithmus arbeitet, um ein grundlegendes Problem zu lösen. Beim Labyrinth-Spiel z. B. besteht das Ziel des Spiels darin, dem Roboter beizubringen, das Labyrinth so schnell wie möglich zu verlassen, während er zufällig auf einem der weißen Felder platziert wird. Um dies zu erreichen, gibt es drei zentrale Schritte im Lernprozess:

  • Kenntnis: Definition einer Aktien-Wert-Funktion Q ;
  • Wissen erweitern: Q-Funktion aktualisieren ;
  • Handeln: eine Strategie für PI-Aktionen beschließen

Q-Learning ist also ein verstärkender Lernalgorithmus, der versucht, die beste Handlung unter Berücksichtigung des aktuellen Zustands zu finden. Es wird als nicht-politisch betrachtet, weil die Q-Learning-Funktion Aktionen lernt, die außerhalb der aktuellen Politik liegen, wie z. B. zufällige Aktionen zu ergreifen, und daher keine Politik erforderlich ist. Genauer gesagt versucht Q-Learning, eine Politik zu erlernen, die die Gesamtbelohnung maximiert.

Das „Q“ in Q-Learning steht für Qualität. In diesem Fall steht Qualität für den Nutzen einer bestimmten Handlung, um eine zukünftige Belohnung zu erhalten.

Q-Learning beherrschen lernen

Q-Learning: Konkrete Umsetzung

Erstellen einer Q-Tabelle

Wenn der Lernprozess abgeschlossen ist, erstellen wir eine sogenannte q-Tabelle oder -Matrix, die der Form [Zustand, Aktion] folgt, und initialisieren unsere Werte auf null. Wir aktualisieren und speichern unsere q-Werte dann nach jeder Episode. Diese Wertetabelle wird zu einer Referenztabelle für unseren Agenten, der anhand der Werte in dieser Matrix die beste Aktion auswählt.

import numpy as np# Initialize q-table values to 0Q = np.zeros((state_size, action_size))

Q-Learning und Updates

Der nächste Schritt besteht einfach darin, dass der Agent mit der Umgebung interagiert und Aktualisierungen der Zustand-Aktion-Paare in unserem Array Q[state, action] durchführt.

- Handeln: Untersuchen oder verwerten

Ein Agent interagiert mit der Umgebung auf zwei Arten. Die erste besteht darin, die Q-Tabelle als Referenz zu verwenden und alle möglichen Aktionen für einen bestimmten Zustand zu visualisieren. Der Agent wählt dann die Aktion aus, die auf dem maximalen Wert dieser Aktionen basiert. Dies wird als Exploitation bezeichnet, da wir die uns zur Verfügung stehenden Informationen nutzen, um eine Entscheidung zu treffen.

Der zweite Weg besteht darin, nach dem Zufallsprinzip zu handeln. Dies wird als Exploration bezeichnet. Anstatt Handlungen nach der maximalen zukünftigen Belohnung auszuwählen, wählen wir eine Handlung zufällig aus. Zufällig zu handeln ist wichtig, weil es dem Agenten erlaubt, zu erforschen und neue Zustände zu entdecken, die sonst während des Exploitationsprozesses möglicherweise nicht ausgewählt werden.

Du kannst das Erkunden / Abbauen ausbalancieren, indem du epsilon (ε) verwendest und den Wert für die Häufigkeit, mit der du erkunden oder abbauen möchtest, festlegst. Hier ist ein ungefährer Code, der davon abhängt, wie der Status und der Aktionsraum eingestellt sind.

import random# Set the percent you want to exploreepsilon = 0.2if random.uniform(0, 1) < epsilon: """ Explore: select a random action """else: """ Exploit: select the action with max value (future reward) """

- Aktualisierung der q-Tabelle

Aktualisierungen finden nach jedem Schritt oder jeder Aktion statt und enden, wenn eine Episode abgeschlossen ist. In diesem Fall bedeutet „beendet“, dass der Agent einen Endzustand erreicht hat. Ein Endzustand kann z. B. auf einer Bezahlseite landen oder ein gewünschtes Ziel erreichen. Mit genügend Exploration (Schritte und Episoden) wird der Agent in der Lage sein, zu konvergieren und die optimalen Werte von q oder q-Star (Q∗) zu lernen.

Hier sind die drei grundlegenden Schritte:

  1. Der Agent beginnt in einem Zustand (s1), nimmt eine Aktion (a1) vor und erhält eine Belohnung (r1).
  2. Der Agent wählt die Aktion, indem er sich auf die Q-Tabelle mit dem höchsten Wert (max) ODER zufällig (epsilon, ε) bezieht.
  3. Aktualisierung der Q-Werte

Hier ist die grundlegende Update-Regel für Q-Learning :

# Update q valuesQ[state, action] = Q[state, action] + lr * (reward + gamma * np.max(Q[new_state, :]) — Q[state, action])

In der obigen Aktualisierung gibt es einige Variablen, die wir noch nicht erwähnt haben. Was hier passiert, ist, dass wir unsere q-Werte entsprechend der Differenz zwischen den neuen aktualisierten und den alten Werten anpassen. Wir aktualisieren die neuen Werte mithilfe des Gamma und passen unsere Schrittgröße mithilfe der Lernrate (lr) an.

Einige Referenzen

  • Lernrate: lr, oft auch als Alpha bezeichnet, kann als der Grad der Akzeptanz des neuen Wertes im Vergleich zum alten Wert definiert werden. Oben nehmen wir die Differenz zwischen dem neuen und dem alten Wert und multiplizieren diesen Wert mit der Lernrate. Dieser Wert wird dann zu unserem vorherigen q-Wert addiert, wodurch er sich in die Richtung unserer letzten Aktualisierung bewegt.
  • Gamma: Gamma oder γ ist ein Aktualisierungsfaktor. Er wird verwendet, um die sofortige und die zukünftige Belohnung ins Gleichgewicht zu bringen. In unserer obigen Aktualisierungsregel kannst du sehen, dass wir den Abschlag auf die zukünftige Belohnung anwenden. Im Allgemeinen kann dieser Wert zwischen 0,8 und 0,99 variieren.
  • Belohnung: Eine Belohnung (reward) ist der Wert, den du erhältst, nachdem du eine bestimmte Aktion in einem bestimmten Zustand ausgeführt hast. Eine Belohnung kann zu jedem gegebenen Zeitschritt oder nur zum Terminalzeitschritt auftreten.
  • Max: np.max() verwendet die numpy-Bibliothek und nimmt das Maximum der zukünftigen Belohnung und wendet es auf die Belohnung des aktuellen Zustands an. Dies bewirkt, dass die aktuelle Handlung durch die mögliche zukünftige Belohnung beeinflusst wird. Tatsächlich sind wir durch Q-Learning in der Lage, die zukünftige Belohnung den aktuellen Handlungen zuzuordnen, um dem Agenten zu helfen, die rentabelste Handlung in jedem gegebenen Zustand auszuwählen.

Q-learning - Machine Learning mit Reinforcement Learning (2)

DataScientest News

Melde Dich jetzt für unseren Newsletter an, um unsere Guides, Tutorials und die neuesten Entwicklungen im Bereich Data Science direkt per E-Mail zu erhalten.

Weiterlesen

Smart Cities: Definition, Funktionsweise und Vorteile im Überblick

DanielJuni 21, 2024

Intelligente Sensoren: Was ist das und wie funktionieren sie?

DanielJuni 20, 2024

ISO 2700: Alles, was Du über diese Norm wissen musst

DanielJuni 19, 2024

Spracherkennung: Definition, Ursprünge und moderne technologische Anwendungen

DanielJuni 18, 2024

Möchtest Du informiert bleiben?

Schreib uns Deine E-Mail-Adresse, damit wir Dir die neuesten Artikel zum Zeitpunkt der Veröffentlichung zusenden können!

Q-learning - Machine Learning mit Reinforcement Learning (7)

Q-learning - Machine Learning mit Reinforcement Learning (2024)

References

Top Articles
Latest Posts
Article information

Author: Nathanial Hackett

Last Updated:

Views: 5973

Rating: 4.1 / 5 (52 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Nathanial Hackett

Birthday: 1997-10-09

Address: Apt. 935 264 Abshire Canyon, South Nerissachester, NM 01800

Phone: +9752624861224

Job: Forward Technology Assistant

Hobby: Listening to music, Shopping, Vacation, Baton twirling, Flower arranging, Blacksmithing, Do it yourself

Introduction: My name is Nathanial Hackett, I am a lovely, curious, smiling, lively, thoughtful, courageous, lively person who loves writing and wants to share my knowledge and understanding with you.