(Nachtrag vom 16.08.2017)
Dieser Artikel basiert auf diesem Wissen der Zeit. Es enthält offensichtliche Fehler, daher hoffe ich, dass Sie sich mäßig darauf beziehen können.
Es ist noch etwas früh Mitte Februar, aber es ist jeden Tag eine zweistellige Temperatur und es ist Frühlingswetter. Ich denke, dass die Nachricht von "Sakurasaku" begonnen hat, die Leute zu erreichen, die hier zuschauen. ~~ Andererseits habe ich 5 Jobs in Folge verloren. ~~
Übrigens, vor ungefähr drei Wochen "Googles Go AI'AlphaGo'wins der professionelle Spieler zum ersten Mal in der Geschichte" Schockierende Nachrichten kamen herein. Go wird als ungelöstes Problem angesehen, und ich hatte neulich gerade darüber gesprochen, dass "dies zur Bewertung verwendet werden könnte". Daher war ich sehr überrascht über die Nachricht, dass es bereits im Oktober letzten Jahres beigelegt worden war. Gleichzeitig habe ich darüber nachgedacht.
"Gibt es nicht viele Probleme, die bereits gelöst wurden, nur weil wir es nicht wissen? 』\
Es mag überraschend erscheinen, aber tatsächlich haben einige Spiele bereits besseres Verhalten als Menschen lernen. .. (Hier ist sehr detailliert) Das in diesem Video verwendete Deep Q-Network ist eine Methode aus dem Jahr 2013, und das Papier verwendete zu diesem Zeitpunkt ein sehr einfaches Modell. Auf der anderen Seite hat die Forschung im Bereich der Bildverarbeitung in den letzten Jahren Fortschritte gemacht, und die Wirksamkeit eines Modells, das weitaus schwieriger ist als das im Deep Q-Network verwendete Modell, wurde erkannt. Das Ergebnis von AlphaGo ist auch das Feedback einer solchen Bildverarbeitung. "Wenn Sie eine Bildverarbeitungstechnologie wie AlphaGo einführen, die noch weiter fortgeschritten ist als AlphaGo, können Sie möglicherweise komplizierte Actionspiele erfassen, die nicht ohne Verwendung von Insiderinformationen ausprobiert wurden." Ich dachte.
Dies ist eine zweiwöchige Flugbahn eines Studenten, der darüber nachdachte und handelte.
Deep Q-Network und ähnliche Studien verwenden hauptsächlich das 1977 veröffentlichte Atari 2600-Spiel als Benchmark. Dies liegt zum Teil daran, dass die Bibliothek vollständig ist, aber der Hauptgrund ist, dass es schwierig ist, komplexere Spiele als den Atari 2600 zu erfassen. 3D-Actionspiele werden als schwierig angesehen, insbesondere aufgrund der Schwierigkeit der dreidimensionalen Informationsverarbeitung.
Daher habe ich mich darauf konzentriert, dass 2D-Schießspiele schwieriger als Atari 2600, einfacher und angemessener als 3D sind. 2D-Schießspiele sind 2D-Spiele und erfordern nicht so viele Informationen wie 3D, erfordern jedoch mehr Komplexität und Geschwindigkeit als Atari 2600-Spiele. Diesmal ist die Testversion kostenlos und leicht zu erhalten Toho Konjuden ~ Legacy of Lunatic Kingdom ) Wurde für die Erfassung gezielt.
~~ Eigentlich ist der Grund, warum ich das Toho-Projekt mag, größer ~~
Grob gesagt ist es ein Mechanismus, der Screenshots des Spielbildschirms zwischen Windows und Ubuntu austauscht und den Vorgang an das Spiel zurückgibt.
Einfaches Video ist auf Twitter verfügbar.
Die Hauptprogramme außer Modell werden auf github veröffentlicht ... Im Prototypzustand befindet es sich jedoch immer noch in der Spitzeneinstellung. Ich denke nicht, dass es geeignet ist, etwas basierend darauf zu schreiben.
Der Client macht einen Screenshot mit PIL, numpiert ihn und sendet das Bild mit Socket.
Wenn der Server es mit Socket empfängt, formatiert er es mit numpy und OpenCV, und Chainer trifft ein Todesurteil und eine Handlungsentscheidung. Wenn kein Tod festgestellt wird, wird die Aktion mit Socket zurückgegeben. Wenn eine Todesentscheidung getroffen wird, wird ein Metasatz zurückgegeben und die Episode endet. Außerdem werden wir je nach Fall mit Chainer lernen.
Als Antwort auf die Antwort sendet der Client eine Aktion, die Direct Input (DirectX-Spieleingabesystem) entspricht, mit Send Input. Wenn die Meta-Erklärung des Todesurteils zurückgegeben wird, wird die Operation angehalten und wartet. Es wird weiter warten, wenn das Lernen stattfindet, andernfalls wird der Betrieb wieder aufgenommen.
In Toho Konjuden werden zum Zeitpunkt des Todes die Wörter "Fehler beim Erfassen" angezeigt. Daher wird dies verwendet, um den Tod zu bestimmen. Insbesondere gibt die Serverseite an, dass der Bereich, in dem dieser Charakter angezeigt wird, ausgeschnitten ist und ob es sich um ein Spielbild handelt oder nicht, anhand eines einfachen Modells mit drei Ebenen beurteilt wird. Dies könnte mit einer Leistung von 99% oder mehr beurteilt werden. (Es ist jedoch ein Ball, der manchmal versagt)
Wählen Sie die Aktion mit der höchsten Bewertung für ein einzelnes Bild aus, wie oben gezeigt. Es gibt insgesamt 18 Verhaltensmuster, und diese sind wie folgt.
z (Schussknopf) z (Schussknopf) + 8 Richtungen z (Aufnahmetaste) + UMSCHALT (langsame Bewegung) z (Aufnahmetaste) + UMSCHALT (langsame Bewegung) + 8 Richtungen
Darüber hinaus erfolgte die Bewertung in Form von Lernen und Schätzen durch Kombination von Verhalten und Überlebenszeit.
Ich habe verschiedene Kombinationen basierend auf Lunatic (höchster Schwierigkeitsgrad) ausprobiert, aber ich konnte das erste Kapitel nicht hinter mich bringen.
Wie Sie dem einfachen Video entnehmen können, wird die Aktion eindeutig entschieden, wenn sie nicht ZUFÄLLIG ist. Damit ist es unvermeidlich, den operativen Charakter anzugreifen und du wirst sterben. Dies ist wahrscheinlich auf schlechtes Lernen zurückzuführen.
Im obigen Video habe ich versucht, die Bewertung zu lernen, indem ich das Lernen jedes Mal eingeklemmt habe, wenn ich die Aktion bis zu einem gewissen Grad beendet habe. Das Obige ist das Ergebnis des Lernens, indem tatsächlich ungefähr 2000 Bilder jeweils fünfmal verwendet werden. Dies ist ein Betrag, von dem selbst bei der allgemeinen Bildverarbeitung nicht gesagt werden kann, dass er ausreichend lernt.
Es ist jedoch ein beträchtlicher Rechenaufwand erforderlich, um mit dem Modell von 100 Schichten oder mehr zu trainieren, das derzeit in der Bildverarbeitung verwendet wird. In meiner Umgebung dauerte es fast eine Stunde, um alle Bilder einmal zu verarbeiten, selbst wenn es nur wenige Tausend waren. Selbst wenn Sie es einmal behandeln, können Sie es genug lösen, wenn es sich um ein einfaches Klassifizierungsproblem handelt, aber soweit ich es diesmal versucht habe, scheint es nicht so einfach zu sein.
Verwenden Sie für weitere Informationen eine parallele GPU-Berechnungsbibliothek wie "Distributed TensorFlow", die in Kürze veröffentlicht wird. Ich denke es ist notwendig. In dem obigen Artikel wird ein Beispiel für die 300-mal höhere Parallelverarbeitung mit 500 Einheiten vorgestellt. Wenn diese 300-fache Verarbeitung verwendet werden kann, kann das obige Problem gelöst werden. (Wenn Sie dies tatsächlich verwenden, kann AlphaGo, für das fast 700 Tage Rechenzeit erforderlich sind, in nur 2 Tagen erlernt werden.) [^ 1]
[^ 1]: Ich hatte ein wenig Zeit, also habe ich verschiedene Dokumente überprüft, aber ich war skeptisch, dass "dies ein Missverständnis war und es zwei Jahre her ist, seit ich überhaupt zerstreut wurde". Ich werde es für eine Weile im Originaltext veröffentlichen, bis ich es bestätigen kann. (Hinzugefügt am 13.03.2016)
Wenn Sie jedoch 500 TitanX kaufen, die derzeit leistungsstärksten GPUs auf dem Markt, werden dies allein über 70 Millionen sein. Es ist kein Betrag, der an arme Schüler gezahlt werden kann, aber ist dieser Berechnungsbetrag nicht überschaubar?
~~ Ich möchte vorher einen Job bekommen, aber ich frage mich, ob das möglich ist ... ~~
Geschichte von DQN + Deep Q-Network in Chainer geschrieben Machen Sie einen Screenshot mit Pillow for Python Bilder von Raspberry Pi mit OpenCV übertragen Simulate Python keypresses for controlling a game
AlphaGo verwendet eine Technik namens Deep Q-Network.
Im ersten Entwurf wurde der obige Satz am Anfang veröffentlicht. Ich wurde jedoch darauf hingewiesen, dass "obwohl bei der Optimierung des Modells Verstärkungslernen durchgeführt wird, Deep Q-Network nicht verwendet wird und es sich um einen eindeutigen Fehler handelt", und ich habe es korrigiert.
Wir möchten diese Gelegenheit nutzen, um uns für die Veröffentlichung falscher Informationen zu entschuldigen.
Recommended Posts