Bauen Sie Bots spielen Spiele Machine Learning

Reinforcement Learning (RL) ist ein aufregendes neues Gebiet des maschinellen Lernens, in denen Bots durch Spiele lernen. Der größte Durchbruch wurde von Deepmind gemacht, der eine KI programmiert Breakout zu spielen.







Dies ist ein Beispiel Bot, der gerade drückt zufällige Tasten, um den Ball zu schlagen:

Es unterscheidet sich von traditionellen maschinelles Lernen (überwachtes oder unbeaufsichtigt), dass es keine Trainingsproben mit erwarteten Ergebnisse sind.

In RL sind die Bots in einem Computerspiel geworfen (und Gaming ist ein Feld, das sie am intensivsten getestet werden) und dann durch die Beobachtung ihrer Aktionen und Belohnungen zu lernen, geschult.

Dies ist die radikalste Sache über RL: Wir, als Programmierer, nur den Algorithmus sagen, was wir erwarten, wie Ende das Spiel mit mindestens 100-Score. Der Algorithmus versucht dann zufällig verschiedene Kombinationen, Lernen, wie es geht, bis es unser gewünschtes Ziel erreicht (die Stunden oder Tage dauern kann).

Unterrichten Sie den Computer wie Spiele spielen

ein modernes Spiel trainieren, auch etwas 2D wie Pacman oder Breakout kann Tage dauern, sogar Wochen, auf Hochleistungs-GPU-Maschinen. Um unsere Aufgabe einfach zu machen, werden wir durch Spielzeug Spiele lernen.

Einige werden textbasierte, andere werden einfach GUI-basierte.

Spiele wie cartpole, in dem Sie eine cartpole auf einem Draht zum Ausgleich haben:







Ein anderer wird Berg Auto, wo Sie ein Auto auf einen Stahl Hügel fahren müssen:

Stuff werden wir gehen über

  • Ein einfaches Text-Spiel, die Konzepte der RL zu lernen. Dadurch wird die Zimmerkategorie Spiel ein gemacht werden bis entkommen
  • Q Learning ist ein beliebter RL-Algorithmus. Wir werden sehen, wie es zu implementieren unsere Spielzeug Spiele mit
  • Deep Learning mit Neuronalen Netzen
  • Eine Einführung in OpenAI.

Deep Learning mit Neuronalen Netzen

Q Lernen ist gut, aber das Problem mit ihm ist, dass es alles in einem Array speichert. Welches ist für einfache Spiele mit begrenzten Zuständen in Ordnung, aber sobald Sie gehen in komplexe Sachen beginnen, können Sie Millionen von Staaten haben, was bedeutet, dass Sie sehr viel Speicher benötigen.

Um dieses Problem zu beheben (und anderen) wurden Neuronale Netze eingebracht. Sie können die KI erlauben komplexere Staaten, zu handhaben, aber eine andere Ebene der Komplexität einzuführen. Wir werden auf diese aussehen.

Einführung in die OpenAI

Sobald Sie die Grundlagen der RL zu verstehen, können Sie es versuchen fortgeschritteneren Spiele auf. Ich werde Sie OpenAI vorstellen.

OpenAI ist ein neues Rahmenwerk, das Sie Ihre Algorithmen auf Spiele wie Pacman trainieren können:

Und auch Flash-Spiele (mit einem VNC-Server und einem lokalen Browser):

Sie müssen Python wissen, natürlich, aber Sie müssen auch einige Grundkenntnisse der Neuronale Netze und Keras haben. Wenn Sie dies nicht tun, bauen sie meine vorherigen Kurs Ihr Neural Network von Scratch helfen kann, und ist in den Belohnungen enthalten.

Bonus 1: Eine virtuelle Maschine den Code auszuführen

Die meisten dieser Code (vor allem OpenAI Sachen) funktioniert nur auf Linux, und auch dort, es ist ein Schmerz zu installieren. Ich werde Sie mit einer virtuellen Maschine zur Verfügung stellen mit allen installierten Tools, so können Sie einfach starten Codierung (und spielen!)

Bonus 2: Intro zu VizDoom

VizDoom ist eine andere Bibliothek, die Sie Bots programmieren Doom zu spielen, und das funktioniert auch auf Windows (und Mac, Im gesagt).

Ich gebe Ihnen einen schnellen Einstieg in VizDoom, so dass Sie wissen, es ist Grundlagen.







In Verbindung stehende Artikel