Eine Einführung in Q-Learning: Bestärkendes Lernen

Dieser Artikel ist der zweite Teil meiner Reihe „Deep Reinforcement Learning“. Die komplette Serie soll sowohl auf Medium als auch in Videos auf meinem YouTube-Kanal verfügbar sein.

Im ersten Teil der Serie haben wir die Grundlagen des verstärkenden Lernens gelernt .

Q-Learning ist ein wertebasierter Lernalgorithmus für das verstärkte Lernen. In diesem Artikel erfahren Sie mehr über Q-Learning und seine Details:

  • Was ist Q-Learning?
  • Mathematik hinter Q-Learning
  • Implementierung mit Python

Q-Learning - eine vereinfachte Übersicht

Angenommen, ein Roboter muss ein Labyrinth überqueren und den Endpunkt erreichen. Es gibt Minen , und der Roboter kann jeweils nur ein Plättchen bewegen. Wenn der Roboter eine Mine betritt, ist der Roboter tot. Der Roboter muss den Endpunkt in kürzester Zeit erreichen.

Das Bewertungs- / Belohnungssystem ist wie folgt:

  1. Der Roboter verliert bei jedem Schritt 1 Punkt. Dies geschieht, damit der Roboter den kürzesten Weg nimmt und das Ziel so schnell wie möglich erreicht.
  2. Wenn der Roboter auf eine Mine tritt, beträgt der Punktverlust 100 und das Spiel endet.
  3. Wenn der Roboter Leistung ⚡️ erhält, erhält er 1 Punkt.
  4. Wenn der Roboter das Endziel erreicht, erhält der Roboter 100 Punkte.

Die offensichtliche Frage ist nun: Wie trainieren wir einen Roboter, um das Endziel auf dem kürzesten Weg zu erreichen, ohne auf eine Mine zu treten?

Wie lösen wir das?

Einführung in die Q-Tabelle

Q-Table ist nur ein ausgefallener Name für eine einfache Nachschlagetabelle, in der wir die maximal erwarteten zukünftigen Belohnungen für Aktionen in jedem Bundesstaat berechnen. Grundsätzlich führt uns diese Tabelle zu den besten Maßnahmen in jedem Bundesstaat.

Auf jeder Nichtkantenkachel gibt es vier Aktionen. Wenn sich ein Roboter in einem Zustand befindet, kann er sich entweder nach oben oder unten oder nach rechts oder links bewegen.

Lassen Sie uns diese Umgebung in unserer Q-Tabelle modellieren.

In der Q-Tabelle sind die Spalten die Aktionen und die Zeilen die Zustände.

Jede Q-Table-Punktzahl ist die maximal erwartete zukünftige Belohnung, die der Roboter erhält, wenn er diese Aktion in diesem Zustand ausführt. Dies ist ein iterativer Prozess, da wir die Q-Tabelle bei jeder Iteration verbessern müssen.

Aber die Fragen sind:

  • Wie berechnen wir die Werte der Q-Tabelle?
  • Sind die Werte verfügbar oder vordefiniert?

Um jeden Wert der Q-Tabelle zu lernen, verwenden wir den Q-Learning-Algorithmus.

Mathematik: der Q-Learning-Algorithmus

Q-Funktion

Die Q-Funktion verwendet die Bellman-Gleichung und nimmt zwei Eingaben vor: Zustand ( e ) und Aktion ( a ).

Mit der obigen Funktion erhalten wir die Werte von Q für die Zellen in der Tabelle.

Wenn wir beginnen, sind alle Werte in der Q-Tabelle Nullen.

Es gibt einen iterativen Prozess zum Aktualisieren der Werte. Wenn wir beginnen, die Umgebung zu erkunden , liefert uns die Q-Funktion immer bessere Annäherungen, indem die Q-Werte in der Tabelle kontinuierlich aktualisiert werden.

Lassen Sie uns nun verstehen, wie die Aktualisierung erfolgt.

Einführung in den Q-Learning-Algorithmus

Jedes der farbigen Kästchen ist ein Schritt. Lassen Sie uns jeden dieser Schritte im Detail verstehen.

Schritt 1: Initialisieren Sie die Q-Tabelle

Wir werden zuerst eine Q-Tabelle erstellen. Es gibt n Spalten, wobei n = Anzahl der Aktionen ist. Es gibt m Zeilen, wobei m = Anzahl der Zustände. Wir werden die Werte bei 0 initialisieren.

In unserem Roboterbeispiel haben wir vier Aktionen (a = 4) und fünf Zustände (s = 5). Also werden wir eine Tabelle mit vier Spalten und fünf Zeilen erstellen.

Schritte 2 und 3: Wählen Sie eine Aktion aus und führen Sie sie aus

Diese Kombination von Schritten wird für eine undefinierte Zeitspanne durchgeführt. Dies bedeutet, dass dieser Schritt ausgeführt wird, bis das Training beendet wird oder die Trainingsschleife wie im Code definiert stoppt.

Wir werden eine Aktion (a) in den Zuständen basierend auf der Q-Tabelle auswählen. Wie bereits erwähnt, ist zu Beginn der Episode jeder Q-Wert 0.

Nun kommt das Konzept des Kompromisses zwischen Exploration und Ausbeutung ins Spiel. Dieser Artikel enthält weitere Details.

Wir werden etwas verwenden, das als epsilon gierige Strategie bezeichnet wird .

Zu Beginn werden die Epsilon-Raten höher sein. Der Roboter erkundet die Umgebung und wählt nach dem Zufallsprinzip Aktionen aus. Die Logik dahinter ist, dass der Roboter nichts über die Umgebung weiß.

Wenn der Roboter die Umgebung erkundet, nimmt die Epsilon-Rate ab und der Roboter beginnt, die Umgebung auszunutzen.

Während des Erkundungsprozesses wird der Roboter zunehmend sicherer bei der Schätzung der Q-Werte.

Für das Roboterbeispiel stehen vier Aktionen zur Auswahl : Auf, Ab, Links und Rechts.Wir beginnen jetzt mit dem Training - unser Roboter weiß nichts über die Umgebung. Der Roboter wählt also eine zufällige Aktion, sagen wir richtig.

Wir können jetzt die Q-Werte aktualisieren, um am Anfang zu sein und uns nach rechts zu bewegen, indem wir die Bellman-Gleichung verwenden.

Schritte 4 und 5: bewerten

Jetzt haben wir eine Aktion durchgeführt und ein Ergebnis und eine Belohnung beobachtet. Wir müssen die Funktion Q (s, a) aktualisieren.

Im Fall des Roboterspiels ist die Wiederholung der Punkte- / Belohnungsstruktur:

  • Potenz = +1
  • meins = -100
  • Ende = +100

Wir werden dies immer wieder wiederholen, bis das Lernen gestoppt ist. Auf diese Weise wird die Q-Tabelle aktualisiert.

Python-Implementierung von Q-Learning

Das Konzept und die Code-Implementierung werden in meinem Video erklärt.

Abonniere meinen YouTube-Kanal Für weitere AI-Videos: ADL .

Endlich ... lassen Sie uns noch einmal zusammenfassen

  • Q-Learning ist ein wertebasierter Verstärkungslernalgorithmus, mit dem mithilfe einer Q-Funktion die optimale Aktionsauswahlrichtlinie ermittelt wird.
  • Unser Ziel ist es, die Wertfunktion Q zu maximieren.
  • Die Q-Tabelle hilft uns, die beste Aktion für jeden Zustand zu finden.
  • Es hilft, die erwartete Belohnung zu maximieren, indem die beste aller möglichen Aktionen ausgewählt wird.
  • Q (Zustand, Aktion) gibt die erwartete zukünftige Belohnung dieser Aktion in diesem Zustand zurück.
  • Diese Funktion kann mithilfe von Q-Learning geschätzt werden, bei dem Q (s, a) mithilfe der Bellman-Gleichung iterativ aktualisiert wird.
  • Zunächst erkunden wir die Umgebung und aktualisieren die Q-Tabelle. Wenn die Q-Tabelle fertig ist, beginnt der Agent, die Umgebung auszunutzen und bessere Maßnahmen zu ergreifen.

Das nächste Mal werden wir an einem tiefen Q-Learning-Beispiel arbeiten .

Bis dahin viel Spaß mit AI ?.

Wichtig : Wie bereits erwähnt, ist dieser Artikel der zweite Teil meiner Reihe „Deep Reinforcement Learning“. Die komplette Serie soll sowohl in Artikeln auf Medium als auch in Videos auf meinem YouTube-Kanal verfügbar sein.

Wenn Ihnen mein Artikel gefallen hat, klicken Sie bitte auf? t o Hilfe mich bleiben zu schreiben Artikel motiviert. Bitte folgen Sie mir auf Medium und anderen sozialen Medien:

Wenn Sie Fragen haben, lassen Sie es mich bitte in einem Kommentar unten oder auf Twitter wissen .

Abonniere meinen YouTube-Kanal für weitere technische Videos.