Q-Learning ist ein Off-Ansatz, der die Lernberechnung unterstützt und darauf abzielt, den besten Schritt zu finden, den man angesichts des gegenwärtigen Zustands machen kann. Es wird als Off-Strategie betrachtet mit der Begründung, dass das Q-Lernen bei der Arbeit von Aktivitäten profitiert, die außerhalb des gegenwärtigen Arrangements liegen, wie z.B. die Aufnahme willkürlicher Aktivitäten, und auf diese Weise ist ein Ansatz nicht erforderlich. Umso expliziter versucht q-learning, sich mit einem Ansatz vertraut zu machen, der die absolute Kompensation verstärkt.
Was bedeutet ‘Q’?
Das “q” in q-learning steht für Qualität. Qualität für diese Situation spricht dafür, wie hilfreich eine bestimmte Aktivität bei der Erhöhung einer zukünftigen Belohnung ist.
Erstellen einer q-Tabelle
An dem Punkt, an dem das q-Learning durchgeführt wird, erstellen wir eine so genannte q-Tabelle oder einen Rahmen, der den Zustand [Zustand, Aktion] verfolgt, und wir setzen unsere Qualitäten auf Null. An diesem Punkt aktualisieren und speichern wir unsere q-Werte nach einer Szene. Diese q-Tabelle verwandelt sich in eine Referenztabelle, aus der unser Spezialist die beste Aktivität in Abhängigkeit von der q-Wertschätzung auswählen kann.
numpy als np importieren
# q-Tabellen-Qualitäten auf 0 einführen
Q = np.Nullen((Zustandsgröße, Aktionsgröße))
Q-Lernen und Auffrischen
In der darauf folgenden Phase muss der Spezialist lediglich eine Verbindung mit der Erde herstellen und in unserer q-Tabelle Q[state, action] Aktualisierungen zu den Übereinstimmungen der Zustandsaktivitäten vornehmen.
Eine Bewegung machen: Untersuchen oder Abenteuer
Ein Operator, der auf 1 von 2 verschiedenen Arten mit der Erde verbunden ist. Die erste besteht darin, die q-Tabelle als eine Quelle der Perspektive zu nutzen und jede einzelne vorstellbare Aktivität für einen bestimmten Zustand zu betrachten. Der Operator wählt an diesem Punkt die Aktivität abhängig von der maximalen Schätzung dieser Aktivitäten aus. Dies wird als Missbrauch bezeichnet, da wir die uns zur Verfügung stehenden Daten nutzen, um eine Wahl zu treffen.
Die anschließende Methode, einen Schritt zu tun, besteht darin, planlos zu handeln. Dies nennt man Ermitteln. Anstatt Aktivitäten abhängig von der maximalen zukünftigen Belohnung zu wählen, wählen wir eine Aktivität willkürlich aus. Zufälliges Handeln ist deshalb von Bedeutung, weil es dem Spezialisten ermöglicht, zu untersuchen und neue Ausdrucksformen zu finden, die im Allgemeinen während des Missbrauchsverfahrens nicht gewählt werden dürfen. Sie können die Untersuchung/den Missbrauch mit Hilfe von Epsilon (ε) und der Einschätzung, wie regelmäßig Sie untersuchen müssen, gegenüber dem Missbrauch anpassen. Hier ist ein unangenehmer Code, der davon abhängt, wie der Zustand und der Aktivitätsraum arrangiert sind.
Import willkürlich
# Legen Sie den Prozentsatz fest, den Sie untersuchen müssen
Epsilon = 0,2
für den Fall, dass random.uniform(0, 1) < epsilon:
“””
Untersuchen: Wählen Sie eine willkürliche Aktivität
“””
sonst:
“””
Bestreben: Wählen Sie die Aktivität mit maximaler Wertschätzung (zukünftige Belohnung)
“””
Auffrischen der q-Tabelle
Die Aktualisierungen erfolgen nach jeder Progression oder Aktivität und schließen, wenn eine Szene beendet ist. Für diese Situation ist es erforderlich, dass der Operator an einem Endpunkt ankommt. Ein Terminal-Zustand kann z.B. in irgendeiner Weise der Ankunft auf einer Kassenseite, der Ankunft am Ende eines Spiels, dem Erreichen eines Idealtores usw. ähneln. Der Spezialist wird sich nach einer einsamen Szene nicht viel anpassen, aber mit genügend Nachforschungen (Schritte und Szenen) wird er sich unweigerlich mit den idealen q-Qualitäten oder q-Star (Q∗) verbinden und vertraut machen.
Hier sind die 3 grundlegenden Fortschritte:
Spezialist beginnt in einem Zustand (s1), macht einen Zug (a1) und erhält eine Belohnung (r1)
Der Operator wählt die Aktivität durch Verweis auf die Q-Tabelle mit dem höchsten Wert (max.) ODER willkürlich aus (epsilon, ε)
q-Werte aktualisieren
Hier ist die wesentliche Aktualisierungsregel für q-learning:
# q Wertschätzungen aktualisieren
Q[Zustand, Aktion] = Q[Zustand, Aktion] + lr * (Kompensation + Gamma * np.max(Q[neuer_Zustand, :]) – Q[Zustand, Aktion])
In der obigen Aktualisierung gibt es zwei oder drei Faktoren, die wir an dieser Stelle noch nicht erwähnt haben. Was hier geschieht, ist, dass wir unsere q-Werte in Abhängigkeit von der Unterscheidung zwischen den begrenzten neuen Qualitäten und den alten Qualitäten ändern. Wir korrigieren die neuen Qualitäten unter Verwendung von Gamma und wir modifizieren unsere Progressionsgröße unter Verwendung der Lernrate (lr). Im Folgenden sind einige Hinweise aufgeführt.
Lernrate: lr oder Lernrate, regelmäßig angedeutet als Alpha oder α, kann grundsätzlich als der Betrag charakterisiert werden, den Sie den neuen Wert gegenüber dem alten Wert anerkennen. Oben nehmen wir die Unterscheidung zwischen neu und alt und danach die Erhöhung dieses Anreizes durch die Lernrate. Dieser Wert wird an diesem Punkt zu unserem früheren Q-Wert hinzugefügt, was ihn im Grunde zu unserer jüngsten Aktualisierung hin bewegt.
Gamma: Gamma oder γ ist ein Abschlagfaktor. Er wird verwendet, um schnelle und zukünftige Belohnungen anzupassen. Aus unserer Aktualisierungsregel oben können Sie ersehen, dass wir den Rabatt auf die zukünftige Belohnung anwenden. Normalerweise kann dieser Wert irgendwo im Bereich von 0,8 bis 0,99 liegen.
Belohnung: Belohnung ist der Wert, den man nach Abschluss einer bestimmten Tätigkeit in einem bestimmten Zustand erhält. Eine Belohnung kann in irgendeinem zufälligen Zeitschritt oder gerade im letzten Zeitschritt erfolgen.
Max: np.max() verwendet die numpy-Bibliothek und geht an die Grenze der Belohnung und wendet sie auf die Belohnung für den gegenwärtigen Zustand an. Was dies bewirkt, ist die Beeinflussung der gegenwärtigen Tätigkeit durch die denkbare zukünftige Belohnung. Dies ist die Großartigkeit von q-