Einstieg in Deep Reinforcement Learning (eBook)
400 Seiten
Carl Hanser Verlag GmbH & Co. KG
978-3-446-46608-1 (ISBN)
- Praktischer Einsatz mit PyTorch
- Projekte umsetzen
Dieses Buch zeigt Ihnen, wie Sie Agenten programmieren, die basierend auf direktem Feedback aus ihrer Umgebung selbstständig lernen und sich dabei verbessern. Sie werden Netzwerke mit dem beliebten PyTorch-Deep-Learning-Framework aufbauen, um bestärkende Lernalgorithmen zu erforschen. Diese reichen von Deep-Q-Networks über Methoden zur Gradientenmethode bis hin zu evolutionären Algorithmen.
Im weiteren Verlauf des Buches wenden Sie Ihre Kenntnisse in praktischen Projekten wie der Steuerung simulierter Roboter, der Automatisierung von Börsengeschäften oder dem Aufbau eines Spiel-Bots an.
Aus dem Inhalt:
- Strukturierungsprobleme als Markov-Entscheidungsprozesse
- Beliebte Algorithmen wie Deep Q-Networks, Policy Gradient-Methode und Evolutionäre Algorithmen und die Intuitionen, die sie antreiben
- Anwendung von Verstärkungslernalgorithmen auf reale Probleme
Alexander Zai ist Machine Learning Engineer bei Amazon AI und arbeitet an MXNet, das eine Reihe von AWS-Maschinenlernprodukten unterstützt. Er ist auch Mitbegründer von Codesmith, einem Bootcamp für Softwareentwicklung mit Niederlassungen in Los Angeles und New York.
Brandon Brown ist Medizinstudent und Data Scientist an der UCLA. Er hat in den letzten drei Jahren ausführlich über maschinelles Lernen auf outlace.com gebloggt.
2 | Modellierung von Reinforcement-Learning-Problemen: Markov Decision Processes |
Dieses Kapitel beinhaltet:
String-Diagramme und unsere Lehrmethoden
das PyTorch Deep-Learning-Framework
die Lösung von n-Armed-Bandit-Problemen
den Ausgleich zwischen Erkundung und Ausnutzung
die Modellierung eines Problems als Markov Decision Process (MDP)
die Implementierung eines neuronalen Netzes zur Lösung eines Problems bei der Anzeigenauswahl
Dieses Kapitel behandelt einige der grundlegendsten Konzepte des gesamten Reinforcement Learning und wird die Grundlage für den Rest des Buches bilden. Doch bevor wir uns damit befassen, wollen wir zunächst einige der wiederkehrenden Lehrmethoden durchgehen, die wir in diesem Buch anwenden werden – vor allem die String-Diagramme, die wir im vorhergehenden Kapitel erwähnt haben.
2.1 | String-Diagramme und unsere Lehrmethoden |
Unserer Erfahrung nach neigen die meisten Menschen, wenn sie versuchen, etwas Kompliziertes zu lehren, dazu, es in der umgekehrten Reihenfolge zu unterrichten, in der das Thema selbst entwickelt wurde. Sie geben Ihnen einen Haufen Definitionen, Begriffe, Beschreibungen und vielleicht Theoreme, und dann sagen sie: „Toll, jetzt, wo wir die ganze Theorie behandelt haben, lassen Sie uns ein paar Praxisprobleme durchgehen“. Unserer Meinung nach ist das genau die umgekehrte Reihenfolge, in der die Dinge präsentiert werden sollten.
Die meisten guten Ideen entstehen als Lösungen für Probleme aus der Praxis oder zumindest für imaginäre Probleme. Der Problemlöser stolpert über eine mögliche Lösung, testet sie, verbessert sie und formalisiert und mathematisiert sie schließlich. Die Begriffe und Definitionen entstehen, nachdem die Lösung für das Problem entwickelt wurde.
Wir sind der Meinung, dass Lernen am motivierendsten und effektivsten ist, wenn man den Platz des ursprünglichen Ideengebers einnimmt, der darüber nachdachte, wie ein bestimmtes Problem zu lösen ist. Erst wenn sich die Lösung herauskristallisiert, rechtfertigt sie eine Formalisierung, die in der Tat notwendig ist, um ihre Richtigkeit festzustellen und sie anderen gewissenhaft zu vermitteln.
Es besteht ein starker Drang, sich auf diesen umgekehrt chronologischen Lehrmodus einzulassen, aber wir werden unser Bestes tun, um dem zu widerstehen und das Thema weiterzuentwickeln. In diesem Sinne werden wir neue Begriffe, Definitionen und mathematische Notationen einführen, wenn wir sie brauchen. Wir werden zum Beispiel Kästen wie diesen verwenden:
Definition
Ein neuronales Netz ist eine Art Machine-Learning-Modell, das aus mehreren „Schichten“ besteht, die eine Matrix-Vektor-Multiplikation durchführen, gefolgt von der Anwendung einer nichtlinearen „Aktivierungsfunktion“. Die Matrizen des neuronalen Netzes sind die erlernbaren Parameter des Modells und werden oft als die „Gewichte“ des neuronalen Netzes bezeichnet.
Sie werden diese Kästen für jeden Begriff nur einmal sehen, aber wir werden die Definition im Text oft auf verschiedene Weise wiederholen, um sicherzustellen, dass Sie sie wirklich verstehen und sich daran erinnern. Dies ist ein Kurs über Reinforcement Learning und kein Lehrbuch oder Nachschlagewerk, sodass wir nicht davor zurückschrecken werden, uns zu wiederholen, wenn wir denken, dass es wichtig ist, sich an etwas zu erinnern.
Wann immer wir etwas Mathematik einführen müssen, verwenden wir normalerweise einen Kasten, der die mathematische Notation und eine Pseudo-Python-Version desselben zugrunde liegenden Konzepts zeigt. Manchmal ist es einfacher, in Form von Code, ein anderes Mal mathematisch zu denken, und wir denken, es ist gut, sich mit beidem vertraut zu machen. Als supereinfaches Beispiel: Wenn wir die Gleichung einer Zeile einführen würden, würden wir es so machen:
Tabelle 2.1 Beispiel für das in diesem Buch verwendete Nebeneinander von mathematischer Notation und Pseudocode
Mathematische Notation | Pseudocode |
y = mx + b |
|
Wir werden auch zahlreiche Inline-Codes (kurze Schnipsel) und Code-Listings (längere Code-Beispiele) sowie den Code für komplette Projekte aufnehmen. Der gesamte Code des Buches wird in Jupyter-Notebooks zur Verfügung gestellt, die nach Kapiteln auf dem GitHub-Repository des Buches kategorisiert sind (http://mng.bz/JzKp). Wenn Sie den Text aktiv verfolgen und die Projekte in diesem Buch nachvollziehen, empfehlen wir Ihnen dringend, dem Code in diesem zugehörigen GitHub-Repository zu folgen, anstatt den Code im Text zu kopieren – wir werden den GitHub-Code aktualisiert und fehlerfrei halten, wohingegen der Code im Buch etwas veraltet sein kann, wenn die von uns verwendeten Python-Bibliotheken aktualisiert werden. Der GitHub-Code ist auch vollständiger (z. B. zeigt er Ihnen, wie Sie die Visualisierungen, die wir einbauen, generieren können), wohingegen der Code im Text so minimal wie möglich gehalten wurde, da wir uns auf die zugrunde liegenden Konzepte konzentrieren.
Da Reinforcement Learning zahlreiche miteinander verbundene Konzepte umfasst, die verwirrend sein können, wenn man sie allein in Worten beschreibt, werden wir viele verschiedene Diagramme und Abbildungen einfügen. Die wichtigste Art von Abbildungen, die wir verwenden werden, ist das String-Diagramm. Es ist vielleicht ein seltsamer Name, aber die Idee dahinter ist wirklich einfach und wurde aus der Kategorientheorie übernommen, einem Zweig der Mathematik, den wir im ersten Kapitel erwähnt haben und in dem viele Diagramme verwendet werden, um die traditionelle symbolische Notation zu ergänzen oder zu ersetzen.
Das in Bild 2.1 dargestellte String-Diagramm kennen Sie bereits aus Kapitel 1, wo wir das allgemeine Framework für das Reinforcement Learning vorgestellt haben. Die Idee ist, dass die Kästchen Nomen oder Nominalphrasen enthalten, während die Pfeile mit Verben oder Verbsätzen beschriftet sind. Diese Darstellung unterscheidet sich etwas von typischen Flussdiagrammen, aber sie vereinfacht es, das String-Diagramm in Prosa zu übersetzen und umgekehrt. Es ist auch sehr klar, was die Pfeile funktionell tun. Diese besondere Art von String-Diagrammen wird auch als ontologisches Log oder Olog („oh-log“) bezeichnet. Sie können sie nachschlagen, wenn Sie mehr darüber wissen wollen.
Bild 2.1 Das Standardmodell des Reinforcement Learning, bei dem ein Agent in einer sich entwickelnden Umgebung Handlungen ausführt, die Belohnungen zur Verstärkung der Handlungen des Agenten erzeugen.
Allgemeiner ausgedrückt sind String-Diagramme (in anderen Quellen manchmal auch als Schaltpläne bezeichnet) flussähnliche Diagramme, die den Fluss typisierter Daten entlang von Strings (d. h. gerichtete oder ungerichtete Pfeile) in Prozesse (Berechnungen, Funktionen, Transformationen, Prozesse usw.) darstellen, die als Kästen veranschaulicht werden. Der entscheidende Unterschied zwischen String-Diagrammen und anderen, ähnlich aussehenden Flussdiagrammen, die Sie vielleicht schon gesehen haben, besteht darin, dass alle Daten auf den Strings explizit typisiert sind (z. B. ein NumPy-Array mit der Form oder vielleicht eine Fließkommazahl), und dass die Diagramme vollständig kompositorisch sind. Mit kompositorisch meinen wir, dass wir in das Diagramm hinein- oder herauszoomen können, um ein größeres, abstrakteres Bild zu sehen oder auf die rechnerischen Details einzugehen.
Wenn wir eine komplexere Darstellung zeigen, sind die Prozesskästen vielleicht nur mit einem Wort oder einem kurzen Satz versehen, der die Art des Prozesses angibt, der abläuft, aber wir könnten auch eine vergrößerte Ansicht dieser Prozessbox zeigen, die alle internen Details darstellt, die aus einer eigenen Gruppe von Teilstrings und Unterprozessen besteht. Der kompositorische Charakter dieser Diagramme bedeutet auch, dass wir Teile eines Diagramms in ein anderes Diagramm einfügen können, wodurch komplexere Diagramme entstehen, solange die Typen aller Strings kompatibel sind. Hier sehen Sie zum Beispiel eine einzelne Schicht eines neuronalen Netzes als String-Diagramm:
Wenn wir von links nach rechts lesen, sehen wir, dass einige Daten vom Typ in einen Prozesskasten mit der Bezeichnung Neuronale Netzschicht fließen und eine Ausgabe vom Typ erzeugen. Da neuronale Netze typischerweise Vektoren als Input nehmen und Vektoren als Output erzeugen, beziehen sich diese Typen auf die Dimensionen der Input- bzw. Outputvektoren. Das heißt, diese Neuronale Netz-Schicht nimmt einen Vektor der Länge oder Dimension n an und erzeugt einen Vektor der Dimension m. Es ist möglich, dass n = m für einige Neuronale Netz-Schichten gilt.
Diese Art der Typisierung der Strings ist vereinfacht, und wir nehmen sie nur vor, wenn aus dem Kontext klar ist, was die Typen bedeuten. In anderen Fällen können wir für die Menge aller reellen Zahlen eine...
Erscheint lt. Verlag | 12.10.2020 |
---|---|
Sprache | deutsch |
Original-Titel | Deep Reinforcement Learning in Action (US ISBN: 978-1617295430) |
Themenwelt | Mathematik / Informatik ► Informatik |
Schlagworte | Agententechnologie • AlphaGo • Autonomes Fahren • bestärkendes Lernen • Deep learning • Deep Q-Networks • Künstliche Intelligenz • machine learning • Python • PyTorch |
ISBN-10 | 3-446-46608-8 / 3446466088 |
ISBN-13 | 978-3-446-46608-1 / 9783446466081 |
Haben Sie eine Frage zum Produkt? |
Größe: 12,8 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
Größe: 26,9 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich