[PYTHON] Entdecken Sie das Labyrinth mit erweitertem Lernen

Einführung

Dieses Mal möchte ich das Labyrinth mithilfe von Verstärkungslernen, insbesondere Q-Lernen, erkunden.

Q Lernen

Überblick

Einfach ausgedrückt wird ein Wert, der als Q-Wert bezeichnet wird, für jedes Paar von "Zustand" und "Verhalten" beibehalten, und der Q-Wert wird unter Verwendung von "Belohnung" oder dergleichen aktualisiert. Aktionen, die mit größerer Wahrscheinlichkeit eine positive Belohnung erhalten, konvergieren zu einem höheren Q-Wert. Im Labyrinth entspricht die Masse des Durchgangs dem Zustand, und die Bewegung nach oben, unten, links und rechts entspricht der Aktion. Mit anderen Worten, es ist notwendig, den Q-Wert für die Anzahl der Zellen im Durchgang * die Anzahl der Aktionsmuster (4 für oben, unten, links und rechts) im Speicher zu halten. Daher kann es nicht einfach angepasst werden, wenn es viele Paare von "Zustand" und "Aktion" gibt, dh wenn der Zustand und der Aktionsraum explodieren.

Dieses Mal werden wir uns mit dem Problem befassen, dass die Anzahl der Quadrate in der Passage 60 beträgt und die Anzahl der Aktionen, die ausgeführt werden können, vier 240 Q-Werte beträgt, nach oben, unten, links und rechts.

Algorithmus

Q-Wert aktualisieren

Zu Beginn werden alle Q-Werte auf 0 initialisiert. Der Q-Wert wird jedes Mal aktualisiert, wenn die Aktion $ a $ im Status $ s_t $ ausgeführt wird.

Q(s_t, a) \leftarrow Q(s_t, a) + \alpha(r_{t+1} + \gamma \max_{p}{Q(s_{t+1}, p)} -Q(s_t, a))

Aktionsauswahl

Dieses Mal werden wir ε-gierig verwenden. Wählen Sie eine zufällige Aktion mit einer kleinen Wahrscheinlichkeit von ε und eine Aktion mit dem maximalen Q-Wert mit einer Wahrscheinlichkeit von 1-ε.

Quellcode

Der Code wurde auf [Github] hochgeladen (https://github.com/hogefugabar/RL/tree/master/qlearnpy). Mach es als python map.py. Ich habe es vor ungefähr zwei Jahren geschrieben, aber es ist ziemlich schrecklich.

Experiment

Umgebung

Die experimentelle Umgebung ist wie in der Abbildung unten dargestellt. Das hellblaue Quadrat unten rechts ist das Ziel, das obere linke Quadrat ist der Anfang und die blauen vier Ecken sind die Lernmittel. Wenn Sie das Ziel erreichen, erhalten Sie eine positive Belohnung. Außerdem ist der schwarze Teil die Wand und der Agent kann nicht eintreten. Der Agent hat also keine andere Wahl, als durch den weißen Durchgang zu gehen. Der Q-Wert jeder Zelle wird auf 0 initialisiert. Wenn der Q-Wert jedoch größer als 0 wird, ist der größte Q-Wert der vier Q-Werte in dieser Zelle der Farbton, und die Aktion wird durch einen Pfeil angezeigt. Es ist ein Mechanismus.

Ergebnis

Die experimentellen Ergebnisse werden auf youtube veröffentlicht. Sie können sehen, dass der Q-Wert weitergegeben wird, wenn der Agent das Ziel erreicht. IMAGE ALT TEXT HERE

abschließend

Ich möchte Q Learning + Neuronales Netz ausprobieren

Recommended Posts

Entdecken Sie das Labyrinth mit erweitertem Lernen
Verbessertes Lernen ab Python
Lernen stärken 13 Probieren Sie Mountain_car mit ChainerRL aus.
Verstärkungslernen in kürzester Zeit mit Keras mit OpenAI Gym
Validieren Sie das Trainingsmodell mit Pylearn2
[Stärkung des Lernens] DQN mit Ihrer eigenen Bibliothek
[Python] Probieren Sie mit Keras-RL ganz einfach erweitertes Lernen (DQN) aus
[Lernen stärken] Suche nach der besten Route
Stärkung des Lernens 11 Probieren Sie OpenAI Acrobot mit ChainerRL aus.
[Einführung] Stärkung des Lernens
Zukünftiges Verstärkungslernen_2
Zukünftiges Verstärkungslernen_1
Die Geschichte des tiefen Lernens mit TPU
Herausforderung Blockbruch mit Actor-Critic-Modell zur Stärkung des Lernens
[Mac] Ich habe versucht, das Lernen mit Open AI Baselines zu stärken
Python lernen mit ChemTHEATER 03
"Objektorientiert" mit Python gelernt
Erweitertes Lernen 1 Python-Installation
Python lernen mit ChemTHEATER 05-1
Stärkung des Lernens 3 OpenAI-Installation
Stärkung des Lernens der dritten Zeile
Python lernen mit ChemTHEATER 02
Verstärkungslernen 37 Starten Sie automatisch mit Ataris Wrapper
Prognostizieren Sie das Geschlecht von Twitter-Nutzern durch maschinelles Lernen
[Lernen stärken] Banditenaufgabe
Python lernen mit ChemTHEATER 01
Zusammenfassung des grundlegenden Ablaufs des maschinellen Lernens mit Python
Aufzeichnung der ersten Herausforderung des maschinellen Lernens mit Keras
Python + Unity Enhanced Learning (Lernen)
Ich untersuchte den stärkenden Lernalgorithmus des Algorithmushandels
Stärkung des Lernens 1 Einführungsausgabe
Ich lernte die Grundlagen des intensiven Lernens und spielte mit Cart Pole (Implementierung von einfachem Q-Lernen).
Erkennen Sie Ihren Chef mit Deep Learning und verbergen Sie den Bildschirm
Ich habe das Toho-Projekt mit Deep Learning aufgenommen ... ich wollte.
[Einführung in die Stärkung des Lernens] Stärkung des Lernens, um sich vorerst zu bewegen
Reinforcement Learning 23 Erstellen und verwenden Sie Ihr eigenes Modul mit Colaboratory
Lassen Sie uns word2vec mit Chainer verschieben und den Lernfortschritt sehen
Stärkung des Lernens 18 Colaboratory + Acrobat + ChainerRL
Versuchen Sie es mit TensorFlow
Verbessertes Lernen 7 Protokollieren Sie die Ausgabe von Lerndaten
Setzen Sie den Debugger mit der Nase ein
Stärkung des Lernens 17 Colaboratory + CartPole + ChainerRL
Stärkung des Lernens 28 colaboratory + OpenAI + chainerRL
Töte den Prozess mit sudo kill -9
Stärkung des Lernens 2 Installation von Chainerrl
[Lernen stärken] Tracking durch Multi-Agent
Stärkung des Lernens 20 Colaboratory + Pendulum + ChainerRL
Über das Lernen mit Google Colab
Maschinelles Lernen mit Python! Vorbereitung
Versuchen Sie Deep Learning mit FPGA
Verstärkungslernen 5 Versuchen Sie, CartPole zu programmieren?
Verstärkungslernen 9 ChainerRL Magic Remodeling
Lernen stärken Lernen Sie von heute
Errate das Passwort mit klee
Linux am schnellsten mit AWS lernen
gethostbyaddr () kommuniziert mit der Außenwelt
Maschinelles Lernen Minesweeper mit PyTorch
Schaben Nikkei Durchschnitt mit Dramatiker-Python
Überprüfen Sie den Code mit flake8