[PYTHON] DQNs Hintergrund + Deep Q-Network in Chainer geschrieben

Einführung

Ich wollte DQN überhaupt nicht machen, aber ich wollte Chainer für andere Zwecke verwenden, also schrieb ich DQN für die Praxis, aber ich dachte, ich würde es öffentlich machen ~~ ** Ich habe es öffentlich gemacht **. Wenn ich es trotzdem veröffentliche, werde ich diese Gelegenheit nutzen, um mein diesbezügliches Wissen zu organisieren (Q-Lernen + Funktionsnäherung).

Wenn Sie nur Nachrichtenartikel, Nature- und NIPS-Artikel lesen, ist Deepmind / Google von DQN erstaunlich! !! !! Es scheint ein Gefühl zu sein, aber angesichts des historischen Hintergrunds des verstärkenden Lernens kann man sehen, dass es sich um eine Technologie handelt, die auf ganz natürliche Weise geboren wurde und zu verstärkendem Lernen + tiefem Lernen wird. (Es war visuell leicht zu verstehen, dass ATARI-Spiele mit einer besseren Leistung als Menschen gespielt werden. $ \ Leftrightarrow $ Die Problemeinstellung war auch gut.)

In diesem Artikel die folgenden zwei Artikel von NIPS und Nature

・ V. Mnih * et al. *, "Atari spielen mit tiefem Verstärkungslernen"   http://arxiv.org/pdf/1312.5602.pdf ・ V. Mnih * et al. *, "Kontrolle auf menschlicher Ebene durch tiefes Lernen zur Stärkung"   http://www.nature.com/nature/journal/v518/n7540/abs/nature14236.html

Ich werde den Prozess der Stärkung des Lernens bis zu diesem Punkt erläutern und mich so weit wie möglich nur auf die relevanten Teile konzentrieren.

Obwohl es sich um nerdige Informationen handelt, war der Erstautor Mnih eine Person, die bei Dr. Szepesvári studierte, der für seine probabilistische Planung einschließlich UCT bekannt ist, und bei Dr. Hinton, einem bekannten Paten des neuronalen Netzwerks, und es ist natürlich, dass DQN geboren wurde. Man kann sagen, dass es ein Fluss ist.

Ich meine, was ist Verstärkungslernen?

Einige Leute sind möglicherweise nicht mit dem Verstärkungslernen selbst vertraut. Bishops "PRML" und in jüngerer Zeit Murphys "Maschinelles Lernen" werden wie "Dieses Buch behandelt viele Bereiche des maschinellen Lernens, mit Ausnahme des verstärkten Lernens" behandelt.

Ich denke, das liegt an den besonderen Bedingungen für ein verbessertes Lernen. Dies liegt daran, dass die Theorie des erweiterten Lernens eine Mischung aus Steuerungstheorie (optimale Steuerungstheorie / dynamische Planungsmethode) und maschinellem Lernen in einem Schüttler ist. Ohne auf eine solche Theorie einzugehen, werde ich hier so einfach wie möglich erklären (ich werde): "Was ist Verstärkungslernen?"

Verbessertes Lernen: Umwelt und Agenten

Intensiviertes Lernen ist eine Methode des maschinellen Lernens, bei der ein "Agent", der sich in einer "Umgebung" befindet, durch Interaktion mit der Umgebung die optimale Richtlinie (Regeln zur Bestimmung des Verhaltens) erhält.

Laut Wikipedia ist "Reinforcement Learning eine Art maschinelles Lernen, das sich mit dem Problem von Agenten in einer Umgebung befasst, die ihren aktuellen Zustand beobachten und entscheiden, welche Maßnahmen zu ergreifen sind." [^ 1 ] Korrekt.

Ein Bild sagt mehr als tausend Worte und sieht aus wie die folgende Abbildung in einem schematischen Diagramm. RL.png

Das intensivierte Lernen schreitet voran, indem die folgenden einfachen Schritte wiederholt werden.

  1. Der Agent empfängt die von der Umgebung empfangene Beobachtung $ o $ (oder direkt den Zustand der Umgebung $ s $) und gibt die Aktion $ a $ basierend auf der Strategie $ \ pi $ an die Umgebung zurück.
  2. Die Umgebung wechselt zum nächsten Status $ s '$ basierend auf der vom Agenten empfangenen Aktion $ a $ und dem aktuellen Status $ s $ und basierend auf diesem Übergang die nächste Beobachtung $ o' $ und die Belohnung. Gibt dem Agenten eine einzelne Zahl (skalare Menge) mit dem Namen $ r $ zurück, die die Qualität der letzten Aktion angibt.
  3. Zeitfortschritt: $ t \ leftarrow t + 1 $

Wobei $ \ leftarrow $ eine Zuweisungsoperation darstellt. Belohnungen werden normalerweise in Abhängigkeit von Zustand und Aktion vergeben, und der nächste Zustand $ r = r (s, a, s ') $. Wir können die Umgebung aufgrund der Bedingungen intensiven Lernens nicht direkt manipulieren. Nur Agenten können frei operieren. Diese Art der Interaktion und der Einschränkungen zwischen Umwelt und Agenten repräsentieren die Besonderheiten eines verbesserten Lernens.

Der Einfachheit halber beschreiben die Beobachtungen hier nur Situationen, in denen der Zustand der Umgebung direkt an den Agenten übergeben wird ($ o = s $) [^ 2]. Im Rahmen des intensiven Lernens ist die optimale Richtlinie für Agenten die Summe der Belohnungen, die von der Gegenwart bis in die unendliche Zukunft erzielt werden können, indem Maßnahmen gemäß dieser Richtlinie festgelegt werden.

R_t = \sum_{k=0}^{\infty} \gamma^k r_{t+k+1} = r_{t+1} + \gamma\ r_{t+2} + \gamma^2\ r_{t+3} + \cdots

Ich denke, dass es eine Maßnahme ist, die maximiert. Das heißt, dies ist die Zielfunktion beim verstärkten Lernen. $ t $ repräsentiert die aktuelle Zeit und $ r_i $ repräsentiert die Belohnung, die der Agent zum Zeitpunkt $ i $ erhalten hat. $ \ Gamma $ ist ein erweiterter Lernparameter, der als Abzinsungssatz bezeichnet wird. Dieser Wert wird normalerweise als kontinuierlicher Wert zwischen $ 0 $ und weniger als $ 1 $ angegeben und ist eine Konstante, die eingeführt wird, sodass $ R_t $ ein endlicher Wert für jede Belohnungseinstellung ist, die keine Unendlichkeit oder Unendlichkeit enthält. ist. Normalerweise auf einen Wert nahe $ 1 $ gesetzt, z. B. $ \ gamma = 0.99 $.

Immer wenn der Zustand der Umgebung direkt als Beobachtung eines Agenten übergeben wird ($ o = s $), wie er jetzt ist ***, gibt es eine deterministische Funktion, die die Aktion *** $ \ pi ^ * (s) ausgibt. Es ist theoretisch bekannt, dass es mindestens eine optimale Strategie gibt, die durch) $ *** [^ 3] dargestellt werden kann. Ich werde die Details weglassen, aber alle in den folgenden Abschnitten vorgestellten Lernmethoden sind insofern gleich, als sie nach einem deterministischen Maß suchen, das die obige Zielfunktion maximiert.

Wenn DQN das ATARI-Spiel lernt, wird angenommen, dass der Status mit dem Spielbildschirm (Beobachtung) zwischen 4 Schritten konfiguriert ist.

Deep Q-Network vor der Geburt

Hier stellen wir den Hintergrund der Geburt von Deep Q-Network vor. Erfahren Sie mehr über Q-Lernen, Funktionsnäherung, Erfahrungswiedergabe und neuronale Q-Iteration, die das Deep Q-Network ausmachen.

Q Lernen

Q-Learning ist ein klassischer Algorithmus für verbessertes Lernen und möglicherweise der bekannteste Algorithmus für erweitertes Lernen. Alle auf Q-Learning basierenden Methoden lernen optimale Strategien, indem sie eine Funktion approximieren, die als ** optimale Verhaltenswertfunktion ** bezeichnet wird.

Es gibt einen optimalen Aktionswert für jeden Status und jedes Aktionspaar $ (s, a) $ und die Belohnung, die Sie erhalten, wenn Sie im Status $ s $ $ a $ ausführen und die optimale Strategie verfolgen. Es ist ein Wert, der die Summe von (dh der Zielfunktion) $ R $ darstellt. Dies wird als optimale Aktionswertfunktion bezeichnet, die für alle Zustände und Aktionsmengen $ (s, a) $ berechnet und durch $ Q ^ * (s, a) $ ausgedrückt wird.

Es ist eine verwirrende Definition, aber grob gesagt repräsentiert dieser Wert den ** Verdienst **, mit dem Agenten in $ s $ $ a $ zu handeln. Der wichtige Punkt bei dieser ** optimalen Aktionswertfunktion ist, dass zwischen dieser Funktion und der optimalen deterministischen Richtlinie (eine davon) ein ** $ \ pi ^ * (s) $ besteht.

\pi^*(s) = \rm{argmax}_a Q^* (s,a)  

Dies bedeutet, dass eine ** Beziehung besteht. ** Mit anderen Worten, beim Q-Lernen haben das Erhalten der [^ 4] optimalen Aktionswertfunktion und das Erhalten der optimalen Richtlinie fast dieselbe Bedeutung.

Beim tatsächlichen Q-Lernen wird jedes Mal nach dem Erstellen einer Tabellenfunktion $ Q (s, a) $ für alle Zustände $ s $ und das Aktionspaar $ a $ und alle Elemente mit beliebigen Werten initialisiert Aktualisieren Sie die Daten ($ s $, $ a $, $ r $, $ s '$) mit der folgenden Formel:

Q(s,a) \leftarrow (1-\alpha) Q(s,a) + \alpha \Bigl(r + \gamma \ \max_{a'} Q(s',a')\Bigr)

Wo $ r $ die Belohnung ist, die von der Umgebung nach Auswahl der Aktion $ a $ im Bundesstaat $ s $ erhalten wird, ist $ s '$ auch die Aktion $ a $ im Bundesstaat $ s $ und dann beim nächsten Mal Repräsentiert den empfangenen Status. $ \ Alpha $ repräsentiert die Lernrate. Verwenden Sie normalerweise kleinere Werte wie $ 0.1 $ oder $ 0.01 $, die kleiner als $ 1 $ sind. Dieser Algorithmus bringt $ Q (s, a) $ näher an $ r + \ gamma \ \ max_ {a '} Q (s', a ') $ heran, das jedes Mal die Funktion selbst enthält. Es ist [^ 5].

Die obige Update-Notation ist beim erweiterten Lernen möglicherweise nicht sehr beliebt (insbesondere für diejenigen, die mit dem erweiterten Lernen im Sutton & Barto-Buch vertraut sind), aber diese Notation ist eine Wertefunktion $ Q (s, a) $ Es hat ein Format, das explizit ausdrückt, was Sie anwenden möchten. Natürlich ist dieses Update eine populärere Notation.

Q(s,a) \leftarrow Q(s,a) + \alpha \Bigl(r + \gamma\ \max_{a'} Q(s',a') - Q(s,a)\Bigr)

Ist äquivalent zu

Das größte Merkmal des Q-Lernens ist, dass Stichproben ($ s $, $ a $, $ r $, $ s ') unbegrenzt aus allen Paaren von ** ( s $, $ a $) erhalten werden können. Dann gibt der obige Algorithmus unabhängig von der angegebenen Reihenfolge immer die optimale Wertfunktion $ Q ^ * (s, a) $ ** [^ 6]. Diese Funktion wird in Experience Replay, das später vorgestellt wird, vollständig genutzt.

Ich sagte, dass ich eine Tabellenfunktion $ Q (s, a) $ für alle Zustände und Aktionen erstellen würde, aber wenn ich eine wahnsinnig hochdimensionale Sache wie eine Bildzeichenfolge als Zustand wie DQN gebe, ist es natürlich, dass die Tabellenfunktion Es passt also nicht in den Speicher und ich kann nicht alle Proben nehmen. Sogar ein Binärbild von $ 10 \ mal 10 $ hat eine sehr unkontrollierbare Anzahl von Zuständen wie $ 2 ^ {100} \ ca. 10 ^ {30} $. Wenn wir uns also mit einem solch sehr hochdimensionalen Zustand befassen, verwenden wir eine Funktionsnäherung für $ Q (s, a) $.

Nicht tiefes Q-Netzwerk: Q-Lernen + Funktionsnäherung

Betrachten wir also eine Funktionsnäherung für die Funktion $ Q (s, a) $. $ Q (s, a) $ wird also durch einen Parameter $ \ theta $ dargestellt, und die angenäherte Funktion wird durch $ Q_ \ theta (s, a) $ dargestellt.

Um diese Funktion zu verwenden, um die dem Q-Lernen äquivalente Funktion zu approximieren, wird klassisch der folgende Gradientenmethodenalgorithmus verwendet.

\theta \leftarrow \theta - \alpha \nabla_\theta L_\theta

Wobei $ L_ \ theta $ durch die folgende Fehlerfunktion dargestellt wird. Dies entspricht der allgemeinen Aktualisierung der Gradientenmethode.

L_\theta = \frac{1}{2}\Bigl( \rm{target} - Q_\theta(s,a)\Bigr)^2

Übrigens, wenn Sie den wahren Aktionswert $ Q ^ * (s, a) $ kennen, können Sie $ \ rm {target} = Q ^ * (s, a) $ als reines überwachtes Lernen festlegen. $ Q ^ * (s, a) $, das das Lehrersignal ist, wird beim erweiterten Lernen nicht angegeben. Daher wie beim Q-Lernen mit Tabellenfunktionen

 \rm{target} = r + \gamma \max_{a'} Q_\theta (s',a')

Wird zu diesem Zeitpunkt als Lehrersignal verwendet. Und die Differenzierung der Fehlerfunktion besteht nicht darin, gegen das Lehrersignal zu differenzieren, sondern nur $ Q_ \ theta (s, a) $ näher an das Lehrersignal heranzuführen. Mit anderen Worten

\begin{align}
\nabla_\theta L_\theta &=-\Bigl(\rm{target} - Q_\theta(s,a)\Bigr) \nabla_\theta Q_\theta(s,a)\\
&=-\Bigl(r + \gamma \max_{a'} Q_\theta (s',a') - Q_\theta(s,a)\Bigr) \nabla_\theta Q_\theta(s,a)
\end{align}

Es wird sein.

Infolgedessen ist das Q-Lernen bei Verwendung der Approximationsfunktion wie folgt.

\theta \leftarrow \theta + \alpha \Bigl(r + \gamma \max_{a'} Q_\theta (s',a') - Q_\theta(s,a)\Bigr) \nabla_\theta Q_\theta(s,a)

Ein Ausdruck, der dem zweiten Aktualisierungsausdruck für das Q-Lernen unter Verwendung von Tabellenfunktionen sehr ähnlich ist, ist erschienen.

Was Sie beim Q-Lernen mit Funktionsnäherung beachten müssen, ist ** $ \ max_ {a '} Q_ \ theta (s', a ') $, das im Lehrersignal bei der Berechnung der Differenzierung der Fehlerfunktion enthalten ist. Dies bedeutet, dass es nicht differenziert werden darf **. Es ist unwahrscheinlich, dass diese Art von Fehler auftritt, wenn Sie sich differenzieren und in den Code einfügen. Wenn Sie jedoch die heutzutage weit verbreitete automatische Differenzierung verwenden, bedeutet dies, dass Sie sogar das Lehrersignal differenziert haben, ohne es zu wissen. (Und es ist schwer zu bemerken, weil sich beide zu Beginn des Lernens auf die gleiche Weise bewegen). (Ich habe es auch einmal gemacht)

Wenn das Training einschließlich des Lehrersignals differenziert wird, hat der Algorithmus andere Eigenschaften als das Q-Lernen unter Verwendung der hier beschriebenen Funktionsnäherungsvorrichtung.

Verwenden Sie ein neuronales Netzwerk zur Funktionsnäherung

Q-Learning unter Verwendung nichtlinearer Funktionsnäherungsmethoden wie mehrschichtiger neuronaler Netze ist Long-Ji im Zeitalter sekundärer neuronaler Netze, in denen die Fehler-Backpropagation entwickelt wurde, als das Verstärkungslernen theoretisch zu reifen begann. Herr Lin tat es energisch. Experience Replay ist die Methode, die von dieser Person in dem Artikel "Selbstverbessernde reaktive Wirkstoffe basierend auf verstärktem Lernen, Planen und Lehren" veröffentlicht wurde.

Abgesehen davon ist dieses Papier ein sehr interessantes Papier, das Agenten schult, die versuchen, in einer komplexen und dynamischen Simulationsumgebung zu überleben.

In einem mehrschichtigen neuronalen Netzwerk (obwohl es sich um 3 oder 4 Schichten eines vollständig verbundenen neuronalen Netzwerks handelt) ist das Lernen unvermeidlich langsam, und selbst wenn die Lernrate erhöht wird, wird das Lernen divergieren. Um dies zu beschleunigen, werden wir die oben genannten Merkmale des Q-Lernens verwenden.

Experience Replay ist eine Funktion, die alle (oder eine begrenzte Anzahl von Stunden) der vom Agenten erlebten Samples ($ s $, $ a $, $ r $, $ s '$) aufzeichnet und das Sample einmal verwendet. Es ist eine Methode, die beim Q-Lernen unter Verwendung von Approximation oft verwendet wird. Dies basiert auf der Idee, dass beim Q-Lernen unter Verwendung einer Tabellenfunktion das Lernen unabhängig von der Reihenfolge der Stichproben fortgesetzt wird, sodass beim Q-Lernen unter Verwendung einer Funktionsnäherungsvorrichtung dieselbe Eigenschaft erwartet wird.

Ein Algorithmus, der über einige Extreme der Erfahrungswiederholung nachdenkt, ist Dr. Riedmillers Neural Fitted Q Iteration [^ 7]. Dies unterscheidet sich vom bisherigen Online-Verstärkungslernen wie "Sammeln und Lernen von Daten selbst" und zunächst einer ausreichenden Anzahl von Stichproben ($ s $, $ a $, $ r $, $ s '$). Es handelt sich um einen Algorithmus, der berücksichtigt, "die optimale Richtlinie aus den angegebenen Daten zu lernen, ohne weitere Stichproben hinzuzufügen", dh das Lernen zur Stapelverstärkung durchzuführen, vorausgesetzt, es gibt Daten von.

Der Pseudocode für den Neural Fitted Q Iteration-Algorithmus lautet wie folgt.

Eingabe: Daten $ D $ bestehend aus vielen Stichproben ($ s $, $ a $, $ r $, $ s '$) Ausgabe: Q-Funktion nach dem Training von $ Q_ {\ theta_N} (s, a) $

  1. k=0
  2. Initialisieren Sie den neuronalen Netzwerkparameter $ \ theta_0 $
  3. Wiederholen: Wiederholen Sie $ N-1 $ mal
  4. Extrahieren Sie $ M $ Samples aus den Daten $ D $
  5. Basierend auf $ M $ Samples Lehrersignal $ {\ rm {Ziel}} ^ t = r_t + \ gamma \ max_ {a '} Q_ {\ theta_k} (s_t', a ') $ und Erstellen Sie die Eingabe $ (s_t, a_t) $ ($ t = 1,2, ..., M $)
  6. Basierend auf dem erstellten Lehrersignal $ {\ rm {target}} ^ t $ und geben Sie $ (s_t, a_t) $ ein Minimieren Sie den Fehler $ L_ \ theta $ zwischen $ Q_ \ theta (s, a) $ und dem Lehrersignal durch eine Gradientenmethode Machen. Wenn das Lernen konvergiert und bestimmte Bedingungen erfüllt sind, ist das Ergebnis $ \ theta_ {k + 1} $
  7. $ k \ leftarrow k + 1 $
  8. Gibt $ Q_ {\ theta_N} (s, a) $ zurück

Der wichtige Punkt bei der neuronalen angepassten Q-Iteration ist, dass bei der Optimierung unter Verwendung der Gradientenmethode, die jedes Mal während der Iteration durchgeführt wird, das Lehrersignal immer auf demselben Parameter $ \ theta_k $ $ r + \ max_ {a '} Q_ {\ theta_k basiert } (s_t ', a') Es wird aus $ generiert, daher wird es im Gegensatz zur Online-Methode bei jeder Optimierung ** vollständig überwacht und gelernt **. Daher wird erwartet, dass das Lernen in Bezug auf die Einstellungen sehr stabil sein wird.

Neuronale angepasste Q-Iteration ist ein Algorithmus, der Informationen aus einer konstanten Anzahl von Daten extrahiert. Bei einer fortgeschritteneren Methode wird der Agent jedoch nach einem gewissen Grad in die Umgebung verschoben und später werden Batch-Daten hinzugefügt. Die Idee der wachsenden Charge wurde vorgeschlagen [^ 8]. Zu diesem Zeitpunkt ist die Methode fast dieselbe wie die des Nature-Papiers.

Das Team von Riedmiller verwendet dieses Batch-Stärkungslernen als Hauptmethode und wendet es auf das Lernen des Roboterverhaltens an. Es scheint, dass der Lehrer auch in Deepmind eingeschrieben ist, und es ist ersichtlich, dass sich in Deepmind eine überraschend große Anzahl von Forschern befindet, die das Lernen stärken.

Und Deep Q-Network: Q-Lernen + Deep Learning

Die Frage "Was ist die neue Technologie von DQN?" Ist einfach "Ich habe die Deep-Learning-Technologie auf die obige funktionale Annäherung des verstärkenden Lernens angewendet."

Insbesondere wurde das Faltungs-Neuronale Netzwerk sowohl in NIPS- als auch in Nature-Veröffentlichungen verwendet, und diese Struktur wurde verwendet. Darüber hinaus haben wir Optimierungsmethoden angewendet, die nicht in lokale Lösungen passen, wie z. B. den kürzlich entwickelten RMS Drop. Dies sind im Wesentlichen neue Punkte in DQN. (Ergänzung: Ich denke, dass die Struktur von DQN, die nur den Status in das Netzwerk eingibt und alle geschätzten Werte des Aktionswerts in diesem Status mit einer Vorwärtsausbreitung ausdrückt, neu ist, aber es tut mir leid ~~ Ich kann es nicht haben ~~) (Ergänzung: Die Struktur von DQN wurde durch die Hinzufügung von $ \ uparrow $ eingeführt, aber es gab einen Präzedenzfall. Spätestens 2009 verwendete Shibata \ & Kono ein 5-lagiges, vollständig verbundenes neuronales Netzwerk mit einer ähnlichen Struktur. Q-Lernen wird konfiguriert und erweitertes Lernen mithilfe von Bildeingaben wird auf die Verhaltenslernaufgabe von AIBO angewendet [^ 9].)

Das NIPS-Papier "Atari mit tiefem Verstärkungslernen spielen", in dem DQN zum ersten Mal erschien, verwendet Experience Replay in großem Maßstab in Kombination mit der Mini-Batch-Methode. Der erweiterte Online-Lernalgorithmus ist jedoch immer noch instabil.

Andererseits wird in der Arbeit "Kontrolle auf menschlicher Ebene durch tiefes Verstärkungslernen" in der Natur durch Anwendung von Q-Iteration mit neuronaler Anpassung + wachsender Charge die Stabilisierung durch Online-Lernen der Verstärkung "fast chargenweise" erreicht.

Dies ist der Ursprung von DQN, den ich kenne.

Ich habe DQN in Python + Chainer geschrieben (Code veröffentlicht)

Deshalb habe ich DQN in Chainers Praxis implementiert. Es wird auf github ~~ veröffentlicht. ~~ $ \ rightarrow $ ** Veröffentlicht. ** **. https://github.com/ugo-nama-kun/DQN-chainer

** Nachtrag 1 **: Beide Nature / Nips-Versionen des veröffentlichten Codes wurden veröffentlicht. Der Test erfordert RLglue und RLglue Python-Codec, die häufig für das Benchmarking in der intensiven Lernforschung verwendet werden, die Arcade-Lernumgebung, die den ATARI-Emulator und RLglue verbindet, sowie das Python-Paket Numpy, Scipy und Mochiron Chainer. Da es auf der GPU berechnet werden soll, ist eine NVIDIA-GPU erforderlich. Wir haben den Vorgang nur unter Ubuntu 14.04 LTS bestätigt.

** Nachtrag 2 **: Die Anzahl der für DQNs Experience Replay gespeicherten Historien ist auf 1/10 des Originals festgelegt ($ 10 ^ 6 \ rightarrow 10 ^ 5 $). Das lag einfach daran, dass ich es verkleinern wollte, um an meiner kleinen Maschine zu arbeiten. Ich denke, dass die Implementierung der Geschichte dieses Mal ineffizient ist, da es sich um eine einfache Implementierung des im Nature-Magazin beschriebenen Algorithmus handelt. Zumindest in Pong haben wir bestätigt, dass Lernen ohne Probleme möglich ist.

** Ergänzung 3 **: Alle Betriebsüberprüfungen werden mit Pong durchgeführt, einem der ATARI-Spiele. In readme.txt erfahren Sie, wie Sie in anderen Spielen trainieren. Aufgrund der Verkleinerung kann die erwartete Leistung möglicherweise nicht gelernt werden.

Ich habe sowohl die NIPS-Version als auch die Nature-Version erstellt, aber die NIPS-Version enthält viele unbekannte Parameter im Papier, und die Konvergenzatmosphäre ist mit der Nature-Version besser. Stellen Sie sich die NIPS-Version als Bonus vor.

Die Lernergebnisse in der Nature-Version werden auf youtube $ \ downarrow $ veröffentlicht https://www.youtube.com/watch?v=N813o-Xb6S8

Nachtrag: Ich habe die NIPS-Version veröffentlicht, weil sie gut funktioniert hat (obwohl das Verhalten des Ergebnisses fast das gleiche ist). $ \ Downarrow $ https://www.youtube.com/watch?v=ez_JEHMUpng

Es ist ein Eindruck mit Chainer [^ 10], aber aus der Erfahrung, DQN einmal in Theano zu implementieren und das Video auf Youtube zu veröffentlichen, wo tritt der Fehler in Chainer im Vergleich zu dem auf Theano basierenden auf? Es ist wirklich leicht zu verstehen. Es gibt viel Freiheit, daher empfehle ich es auf jeden Fall, wenn Sie eine Kombination von Standardkomponenten eines neuronalen Netzwerks verwenden möchten (z. B. ein Faltungs-Neuronales Netzwerk oder Stapelschichten).

Auf der anderen Seite ist Theano immer noch attraktiv, da Sie, wenn Sie einen neuen Algorithmus ausprobieren möchten, die GPU unabhängig davon mit fast demselben Vorgang beschleunigen können. Zum Beispiel: "Ich werde eine neue, bessere wie die LSTM-Zelle entwickeln! Ich werde sie optimieren!" Manchmal habe ich das Gefühl, ich muss eine allgemeine wie Theano verwenden. Ich werde. In diesem Fall scheint es in den fortgeschrittensten Forschungs- und akademischen (und spezielleren) Situationen eingesetzt zu werden. Das war mein Eindruck.

Tipps: Warum ist der Name DQN entstanden?

Diese Geschichte ist völlig lächerlich.

Ich denke, es ist ein seltenes Phänomen, eine ruckelige Person als DQN zu bezeichnen, aber es ist ziemlich wunderbar, dass dieser Algorithmus trotzdem mit Deep Q-Network = DQN übereinstimmt. Ich fühle es.

Wenn Sie die Komponenten jedes D-Q-N ausgraben, wird D zu Deep Learning, Q zu Q Learning und N zu Neural Network.

Erstens soll Deep heutzutage ein Trend sein (es wird angenommen, dass der Name Deep Nantoka seit Dr. Hintons Artikel "Ein schneller Lernalgorithmus für Deep-Believe-Netze" wahrscheinlich explosionsartig zugenommen hat). F Was ist das Q des Lernens? Nach einem Kommentar von Dr. Barto, einem der Schöpfer des verstärkenden Lernens, ist dieses "Q" das Q der "Qualität" (glaube ich) [^ 11].

Als nächstes scheint der Name Q-Network beim intensiven Lernen ungewöhnlich zu sein. Sogar in der Arbeit habe ich das Gefühl, dass der Ausdruck "Ich habe ein neuronales Netzwerk als Funktionsnäherungsgerät beim Q-Lernen verwendet" im Allgemeinen verwendet wird. Ein enger Ausdruck ist, dass Lin bereits 1993 in seiner Arbeit Q-net erwähnt hat, und ich denke, dies ist wahrscheinlich der Ursprung dessen, was dieses Mal Q-Network genannt wurde.

Hinweis:

[^ 1]: Verbessertes Lernen in Wikipedia
https://ja.wikipedia.org/wiki/%E5%BC%B7%E5%8C%96%E5%AD%A6%E7%BF%92

[^ 2]: Eine solche Situation (obwohl es tatsächlich einige weitere Annahmen gibt) wird als "vorausgesetzt, dass die Umgebung durch den Markov-Entscheidungsprozess (MDP) beschrieben werden kann" bezeichnet. Wenn der Status nicht direkt an den Agenten übergeben wird, wird er als partiell beobachtbarer Markov-Entscheidungsprozess (POMDP) bezeichnet, und in den letzten Jahren wird das Lernen der Verstärkung in einer solchen Umgebung als partiell beobachtbares Verstärkungslernen (PORL) bezeichnet. Ich werde. Die Einstellung zum Lernen von ATARI-Spielen ist natürlich in PORL enthalten, da nur der Spielbildschirm vom Agenten eingegeben wird. Das Lernen wird jedoch unter der Annahme durchgeführt, dass der Status mit dem Spielbildschirm zwischen 4 Schritten konfiguriert ist.

[^ 3]: Weitere Informationen zu diesem Punkt finden Sie in M. Putermans "Markov-Entscheidungsprozessen" und O. Sigaud, O. Buffets "Markov-Entscheidungsprozesse in künstlicher Intelligenz".

[^ 4]: Genauer gesagt "in einer Umgebung, die im Markov-Entscheidungsprozess beschrieben werden kann"

[^ 5]: Die vollständige Form des Algorithmus finden Sie auf der folgenden Website:
http://webdocs.cs.ualberta.ca/~sutton/book/ebook/node65.html

[^ 6]: Theoretisch sollte die Lernrate $ \ alpha $ mit jedem Update allmählich sinken. Es ist jedoch nicht sehr realistisch, wenn Sie den erweiterten Lernalgorithmus über einen längeren Zeitraum ausführen möchten oder wenn Sie ihn immer bis zu einem gewissen Grad an eine dynamische Umgebung anpassen möchten. Weitere Informationen zu Konvergenzbedingungen finden Sie in Dr. Melos "Konvergenz von Q-Learning: ein einfacher Beweis": <br: http://users.isr.ist.utl.pt/~mtjspaan/readingGroup/ProofQlearning.pdf

[^ 10]: Chainer wurde seit seiner Veröffentlichung häufig aktualisiert und es wurden neue Funktionen hinzugefügt. Dies ist also nur der aktuelle Eindruck (Juli 2015).

[^ 11]: Die Informationsquelle ist Mayutsuba:
http://www.quora.com/How-was-the-term-Q-learning-coined

Recommended Posts

DQNs Hintergrund + Deep Q-Network in Chainer geschrieben
CPickle.UnpicklingError in Chainer