Dieses Mal möchte ich das Labyrinth mithilfe von Verstärkungslernen, insbesondere Q-Lernen, erkunden.
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.
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.
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-ε.
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.
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.
Die experimentellen Ergebnisse werden auf youtube veröffentlicht. Sie können sehen, dass der Q-Wert weitergegeben wird, wenn der Agent das Ziel erreicht.
Ich möchte Q Learning + Neuronales Netz ausprobieren
Recommended Posts