[PYTHON] Othello ~ Aus der dritten Zeile von "Implementation Deep Learning" (4) [Ende]

Dies ist eine Fortsetzung dieses Artikels. Diesmal ist Othello vorbei.

Othello-Aus der dritten Zeile von "Implementation Deep Learning" (1) http://qiita.com/Kumapapa2012/items/cb89d73782ddda618c99 Othello-Aus der dritten Zeile von "Implementation Deep Learning" (2) http://qiita.com/Kumapapa2012/items/f6c654d7c789a074c69b Othello-Aus der dritten Zeile von "Implementation Deep Learning" (3) http://qiita.com/Kumapapa2012/items/3cc20a75c745dc91e826

Im vorherigen Artikel, als Leaky ReLU verwendet wurde, war die Gewinnrate für das 6x6-Board Othello stabil, aber es gab eine große Schwankung im 8x8-Board und die Gewinnrate war rückläufig. Ich habe den Slope of Leaky ReLU erneut geändert und diesmal getan.

Der Code ist hier. ~~, aber der Code, den ich eingebe, ist nicht die Leaky ReLU-Version. Ich werde es zu einem späteren Zeitpunkt aktualisieren (^^; ~~ hinzugefügt. https://github.com/Kumapapa2012/Learning-Machine-Learning/tree/master/Reversi

Undichte ReLU-Pistenänderung

Für die Othello 8x8-Karte ist das Ausführungsergebnis mit Leaky ReLU mit Slope = 0,2, das zuletzt angezeigt wurde, wie folgt. image

Dieses Mal ist das Ausführungsergebnis mit Slope = 0.1 wie folgt. image

Durch Setzen von Slope = 0.1 scheint es konvergiert zu haben, aber der starke Rückgang der Gewinnrate um Eps. 20000 ist nicht gelöst. Dies ist [nicht in den 6x6-Board-Ergebnissen zu sehen](http://qiita.com/Kumapapa2012/items/3cc20a75c745dc91e826#leaky-relu-%E3%82%92%E4%BD%BF%E3%81%A3% E3% 81% A6% E3% 81% BF% E3% 81% 9F), eine interessante Situation.

Was ist die Ursache der Depression?

Um ehrlich zu sein, kann man es nicht einfach anhand der Schwankungen der Gewinnrate erkennen. Ich bin mir nicht sicher, ob es sich um ein Problem mit der Lernrate handelt. Zeichnen Sie die Ausgabe der Verlustausgabe (quadratischer Fehler zwischen Lehrerdaten und berechneten Daten) nach 5000 Schritten für Hinweise. image

Es scheint mit der Gewinnrate zu zusammenhängen. Ich werde das wiederholen. image

In der Grafik scheint es einen Zusammenhang zwischen dem Anstieg des Verlusts und dem starken Rückgang der Gewinnrate zu geben. Wenn Sie versuchen, dieses Bild als Amateur zu interpretieren und zu klassifizieren:

a) Um 16000 (480.000 Schritte): Der Verlust ist sehr gering, aber die Gewinnrate ist auch niedrig (50%). Ab hier steigt die Gewinnquote. Zu diesem Zeitpunkt ist ε von ε-Greedy bereits der niedrigste Wert von 0,001, und die Position des Rahmens wird durch den Q-Wert bestimmt. b) Nahe 16000-22000 (660.000 Schritte): Der Verlust stieg leicht an, wenn die Gewinnrate zunahm. Und von der Mitte an ist die Gewinnrate stark gesunken. Je mehr Sie im Modell zu diesem Zeitpunkt lernen, desto mehr verlieren Sie. Das Modell scheint zusammenzubrechen. c) Ungefähr 22000-27000 (720.000 Schritte): Ein relativ niedriger Verlustwert tritt ständig auf, und der Zustand niedriger Gewinnrate setzt sich fort. Wenn Sie nicht gewinnen, gibt es keine Belohnung, daher gibt es in dieser Zeit fast keine Belohnung. d) Nahe 27000-30000 (900.000 Schritte): Der Verlust nimmt wieder zu. Das Lernen scheint diesmal gut zu laufen, und die Gewinnrate steigt. e) Nahe 30000-35000 (1050.000 Schritte): Sobald der Verlust sinkt, steigt die Gewinnrate weiter an. Es sieht so aus, als ob das Lernen gut läuft. f) Nahezu 35000-45000 (1350.000 Schritte): Der Verlust nimmt wieder zu. Letztes Mal war dies das Tal der zweiten Gewinnrate. Diesmal wird die Gewinnrate jedoch nicht sinken. Arbeitet Loss für das Training oder die Modellkorrektur in eine positive Richtung? g) Nahe 45000-48000 (1440.000 Schritte): Der Verlust hat abgenommen. Die Gewinnrate ist ebenfalls stabil. h) Nach 48000: Der Verlust nimmt wieder zu. Es gibt jedoch Anzeichen dafür, dass die Gewinnrate konvergiert.

Die Verlusterweiterung ist ein Zeichen dafür, dass sich das Modell ändert, dh der Agent wächst. Wenn die Interpretation dieser Situation korrekt ist, kann gesagt werden, dass der Agent um b) in die falsche Richtung gewachsen ist. Dieses Mal habe ich alle Aspekte als Text gespeichert. Lassen Sie uns also auf diese Annahme zurückblicken. Schauen wir uns in der Anfangsphase die folgenden Aspekte an, die wahrscheinlich den Unterschied zwischen Sieg und Niederlage ausmachen.

[[ 0  0  0  0  0  0  0  0]
 [ 0  0  0 (0) 0 (0)(0) 0]
 [ 0 (0)(0)-1 (0)-1  0  0]
 [(0)-1 -1 -1 -1  1  0  0]
 [ 0  0  0  1  1  0  0  0]
 [ 0  0  0  0  1  0  0  0]
 [ 0  0  0  0  0  0  0  0]
 [ 0  0  0  0  0  0  0  0]]

Dies ist die Phase, in der der Agent ein Stück platziert. In dieser Phase kann der Agent (obwohl schwer zu erkennen) die Teile in Klammern setzen. Eine Suche nach diesem Aspekt mit pcregrep fand ihn in 622 von 50000 Folgen [^ 1].

Zwischen 20000 und 30000 Folgen, die das Tal der Gewinnraten erreichten, trat diese Phase fünfmal auf: Die Zahlen in Klammern sind die Gewinne und Verluste dieser Episode.

21974(win) 22078(lose) 22415(lose) 29418(lose) 29955(win)

In der obigen Situation trafen die vier außer 29955 wie folgt. Lassen Sie dies bewegen A.

[[ 0  0  0  0  0  0  0  0]
 [ 0  0  0  0  0  0  0  0]
 [ 0  0  0 -1  0 -1  0  0]
 [(1) 1  1  1  1  1  0  0]
 [ 0  0  0  1  1  0  0  0]
 [ 0  0  0  0  1  0  0  0]
 [ 0  0  0  0  0  0  0  0]
 [ 0  0  0  0  0  0  0  0]]

29955 geschlagen: Nennen wir diesen Schritt B.

[[ 0  0  0  0  0  0  0  0]
 [ 0  0  0  0  0  0  0  0]
 [ 0  0  0 -1 (1)-1  0  0]
 [ 0 -1 -1 -1  1  1  0  0]
 [ 0  0  0  1  1  0  0  0]
 [ 0  0  0  0  1  0  0  0]
 [ 0  0  0  0  0  0  0  0]
 [ 0  0  0  0  0  0  0  0]]

Ich habe seit 29955 nicht alle Folgen gesehen, aber ich habe in jeder Phase, die ich gesehen habe, B getroffen, bis zu 50.000, wo die Gewinnrate hoch und stabil ist.

Schlag A ist der Zug, der in dieser Situation die meisten Teile aufnehmen kann. Wenn die Gewinnrate am niedrigsten war, erfolgte die Aktion, um dieses Stück zu nehmen, viermal von fünf, so dass es wahrscheinlich ist, dass der Agent zu diesem Zeitpunkt eher die Aktion ausführte, immer mehr Stücke zu nehmen. .. Die Aktion, in der Anfangsphase viele Frames aufzunehmen, ist jedoch nicht gut für Othellos Strategie. In den frühen Stadien sind die Stücke, die genommen werden können, die kleinsten, wie z. B. Mover B, und der Teil, der so weit wie möglich von der "Kante" entfernt ist, wird später wirksam. Die Aktion "Viele Frames aufnehmen" war jedoch eine Aktion, die der selbst erstellte Othello-Agent implementiert hat, sodass sie immer mit einer Rate von 80% ausgeführt wird. [^ 2] Der Agent scheint diesen Schritt gelernt zu haben.

Da es sich bei Othello um ein Spiel handelt, das in der Mitte des Bretts beginnt, wird angenommen, dass die Aktion, immer viele Teile zu nehmen, dazu führt, dass die "Kante" in der Anfangsphase aktiv weit vom Zentrum entfernt wird. Es ist wahrscheinlich, dass der Akt des aktiven Nehmens der "Kante" eine Chance auslöste, das "Horn" zu nehmen, die Umgebung das "Horn" nahm und der Agent weiter verlor. Dies liegt daran, dass vor dem Fortbestehen des Verlusts die Wahrscheinlichkeit, dass der Agent und die Umgebung die "Ecke" nehmen würden, während des Zeitraums von etwa 50% Gewinnrate fast gleich war, aber sobald der Agent dazu neigte, die "Kante" zu nehmen, wurde die Umgebung etwas stärker. Man kann jedoch sagen, dass die Wahrscheinlichkeit, die "Ecke" zu nehmen, gestiegen ist und die Umwelt leichter zu gewinnen ist. Je breiter das Board ist, desto wahrscheinlicher ist es, dass die "Ecken" entfernt werden, wenn die "Kanten" entfernt werden. Daher ist es wahrscheinlich, dass das 6x6-Board kein Eintauchen hatte und nur das 8x8-Board ein Eintauchen hatte. ..

Daher möchte ich zu dem Schluss kommen, dass dieser Rückgang der Gewinnrate auf die Tatsache zurückzuführen ist, dass der Agent durch bestimmte Verhaltensweisen in der Umgebung beeinflusst wurde und in einen ähnlichen Zustand wie "Überanpassung" geriet und die falsche Strategie erlernte. .. Aber wie kann der Effekt von Leaky ReLUs Slope interpretiert werden? .. .. Ich würde gerne weiter studieren und nachdenken.

Um eine solche Situation wie Alpha Go zu vermeiden, sollten Sie im Voraus unter Aufsicht lernen und es gut lernen lassen, bevor Sie gegen die Umwelt spielen. Es wird in die falsche Richtung wachsen und die Belohnung wird sinken. Wenn ja, kann es nützlich sein, beispielsweise zu sagen, das ε von ε-Greedy zu erhöhen, um den Metabolismus des Modells zu beschleunigen.

Am Ende

Ich würde gerne etwas anderes machen, also werde ich diesmal Othello beenden.

Was wird diesmal mit Othello passieren, wenn er selbst ein Problem schafft und es in das verstärkte Lernen einfließen lässt? Ich habe mit dem Interesse angefangen. Da es nicht das Ziel ist, einen starken Othello-Agenten zu schaffen, lernen wir nicht mit einem Lehrer für den Agenten, sondern nur für die Umgebung, die wir angemessen erstellt haben. Ausgehend von diesem "leeren Blatt" -Zustand hat das Umweltverhalten einen starken Einfluss auf das Modell des intensiven Lernens, das sich nur mit der Umwelt befasst. Vielmehr hat es nichts damit zu tun. Aus diesem Grund haben wir das Ergebnis gesehen, dass das Lernen des Agenten vorübergehend in eine unbeabsichtigte Richtung gehen kann, wenn die Implementierung der Umgebung wie diesmal ein wenig schlecht ist. Es ist jedoch ersichtlich, dass der Agent sich selbst korrigiert und schließlich die Gewinnrate erhöht. Ist diese Selbstkorrektur der wahre Wert eines verbesserten Lernens? [^ 3] Es ist eine kleine emotionale Interpretation, aber selbst mit fremden Eltern (Umgebungen) können Kinder (Agenten) richtig aufwachsen. Ich fühle mich wie (^^ ;. [^ 4]

In diesem Othello dauerte es mehr als 10 Stunden, bis das 6x6-Board 50000 Folgen lief, und mehr als 24 Stunden, bis das 8x8-Board lief. Außerdem funktioniert das 8x8-Board auf meinem Heim-Pascal GeForce 1050GTX (2 GB) aufgrund von Speichermangel nicht. Daher muss ich es auf dem Maxwell Tesla M60 (8 GB) auf Azure NV6 ausführen, das dank Azure diesen Monat etwas langsamer als mein Heim ist. Der in Rechnung gestellte Betrag hat bereits 10.000 Yen überschritten. Es ist schwer mehr zu versuchen. Dies ist auch einer der Gründe, dieses Mal Othello zu verlassen.

Oh, ich möchte eine 8 GB 1070 oder 1080 GTX. .. .. [^ 5]

Verweise

● Othello / Reversi-Gewinnmethode ○ http://mezasou.com/reversi/top27.html

[^ 1]: Alle Aspekte sind ungefähr 1,6 Millionen. Es scheint, dass die gleiche Situation mehr auftritt, wenn sie gedreht oder transponiert wird, aber vorerst. [^ 2]: 2nd [^ 3]: Die Hauptvoraussetzung ist, dass die Belohnung angemessen ist. [^ 4]: Diese Denkweise mag aus beruflicher Sicht ein Spritzer sein, aber bitte verzeihen Sie mir, dass ich nicht studiert habe (Schweiß) [^ 5]: This wäre großartig!

Recommended Posts

Othello ~ Aus der dritten Zeile von "Implementation Deep Learning" (4) [Ende]
Othello-Aus der dritten Zeile von "Implementation Deep Learning" (3)
Othello-Aus der dritten Zeile von "Implementation Deep Learning" (2)
[Lernnotiz] Deep Learning von Grund auf ~ Implementierung von Dropout ~
Tiefes Lernen der Verstärkung 2 Implementierung des Lernens der Verstärkung
[Deep Learning von Grund auf neu] Implementierung der Momentum-Methode und der AdaGrad-Methode
Visualisieren Sie die Auswirkungen von Deep Learning / Regularisierung
Lernbericht über das Lesen von "Deep Learning von Grund auf neu"
Notizen vom Anfang von Python 2 lernen
Kapitel 2 Implementierung von Perceptron Schneiden Sie nur die guten Punkte des Deeplearning aus, die von Grund auf neu erstellt wurden
Python vs Ruby "Deep Learning von Grund auf neu" Kapitel 4 Implementierung der Verlustfunktion
Die Geschichte des tiefen Lernens mit TPU
Implementierung eines Deep Learning-Modells zur Bilderkennung
Tiefes Lernen durch Implementierung (Segmentierung) ~ Implementierung von SegNet ~
Deep Learning von Grund auf neu
Python vs Ruby "Deep Learning von Grund auf neu" Kapitel 3 Implementierung eines dreischichtigen neuronalen Netzwerks
Über das Testen bei der Implementierung von Modellen für maschinelles Lernen
Anwendung von Deep Learning 2 von Grund auf neu Spam-Filter
Techniken zum Verständnis der Grundlagen von Deep-Learning-Entscheidungen
Deep Learning aus den mathematischen Grundlagen Teil 2 (während der Teilnahme)
Pip die maschinelle Lernbibliothek von einem Ende (Ubuntu)
Deep Learning von Grund auf 1-3 Kapitel
Deep Running 2 Tuning von Deep Learning
[Teil 4] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Teil 3] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
Lernen aus den Grundlagen Lehrbuch für künstliche Intelligenz Kapitel 5 Kapitelende Probleme
[Teil 2] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
Nach dem Bild des Shiba-Hundes zu urteilen, indem man tief lernt, ob es mein Kind ist (1)
Kapitel 3 Neuronales Netz Schneiden Sie nur die guten Punkte des Deeplearning aus, die von Grund auf neu erstellt wurden
Ich habe die Methode des maschinellen Lernens und ihre Implementierungssprache anhand der Tag-Informationen von Qiita betrachtet
Deep Learning / Deep Learning von Grund auf neu 2 Kapitel 4 Memo
Deep Learning / Deep Learning von Grund auf neu Kapitel 3 Memo
Deep Learning / Deep Learning von Null 2 Kapitel 5 Memo
Erfassen Sie GeneratorExit und erkennen Sie das Ende der Iteration von der Generatorseite
Existenz aus Sicht von Python
Kapitel 1 Einführung in Python Schneiden Sie nur die guten Punkte des Deeplearning aus, die von Grund auf neu erstellt wurden
Deep Learning durch Implementierung 1 gelernt (Return Edition)
Deep Learning / Deep Learning von Null 2 Kapitel 7 Memo
Deep Learning / Deep Learning von Null 2 Kapitel 8 Memo
Schreiben Sie Ihre Eindrücke von der Deep Learning 3 Framework Edition, die von Grund auf neu erstellt wurde
Deep Learning / Deep Learning von Grund auf neu Kapitel 5 Memo
Deep Learning / Deep Learning von Grund auf neu Kapitel 4 Memo
Deep Learning Bilderkennung 2 Modellimplementierung
Deep Learning / Deep Learning von Grund auf neu 2 Kapitel 3 Memo
Deep Learning Memo von Grund auf neu gemacht
[Erkennung von Anomalien] Versuchen Sie es mit der neuesten Methode des Fernunterrichts
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 10-2) Anfangswert des Gewichts
Bewerten Sie die Genauigkeit des Lernmodells durch einen Kreuztest von scikit learn
Zusammenfassung der Seiten, die zum Studium des Deep Learning Framework Chainer nützlich sind
Deep Learning / Deep Learning von Null 2 Kapitel 6 Memo
Ich habe versucht, Othello AI mit Tensorflow zu erstellen, ohne die Theorie des maschinellen Lernens zu verstehen ~ Implementierung ~
Deep Learning Tutorial aus dem Umgebungsbau
Bestimmen, ob es mein Kind ist, anhand des Bildes eines Shiba-Hundes durch tiefes Lernen (3) Visualisierung durch Grad-CAM
Über die Reihenfolge des Lernens von Programmiersprachen (vom Anfänger bis zum Fortgeschrittenen) Teil 2
Diagramm der Geschichte der Anzahl der Ebenen des tiefen Lernens und der Änderung der Genauigkeit
Ich habe versucht, die Vorhersage-API des maschinellen Lernmodells von WordPress aus aufzurufen
Sprachverarbeitung durch tiefes Lernen: Lassen Sie uns anhand der Stimme herausfinden, wer der Sprecher ist
[Deep Learning von Grund auf neu] Layer-Implementierung von der Softmax-Funktion zum Überkreuzen von Entropiefehlern
Ich habe die übliche Geschichte ausprobiert, Deep Learning zu verwenden, um den Nikkei-Durchschnitt vorherzusagen
Python-Lernnotiz für maschinelles Lernen von Chainer bis zum Ende von Kapitel 2