Kapitel 1. Generative Modellierung
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Dieses Kapitel ist eine allgemeine Einführung in den Bereich der generativen Modellierung.
Wir beginnen mit einer sanften theoretischen Einführung in die generative Modellierung und sehen, dass sie das natürliche Gegenstück zur weitaus häufiger untersuchten diskriminativen Modellierung ist. Anschließend werden wir einen Rahmen schaffen, der die wünschenswerten Eigenschaften beschreibt, die ein gutes generatives Modell haben sollte. Außerdem werden wir die wichtigsten probabilistischen Konzepte erläutern, die man kennen muss, um zu verstehen, wie die verschiedenen Ansätze die Herausforderung der generativen Modellierung angehen.
Das führt uns natürlich zum vorletzten Abschnitt, in dem die sechs großen Familien generativer Modelle vorgestellt werden, die heute das Feld beherrschen. Der letzte Abschnitt erklärt, wie du mit der Codebasis, die diesem Buch beiliegt, loslegen kannst.
Was ist generative Modellierung?
Generative Modellierung kann wie folgt definiert werden:
Die generative Modellierung ist ein Teilbereich des maschinellen Lernens, bei dem ein Modell trainiert wird, um neue Daten zu erzeugen, die einem bestimmten Datensatz ähnlich sind.
Was bedeutet das in der Praxis? Nehmen wir an,, wir haben einen Datensatz mit Fotos von Pferden. Wir können auf diesem Datensatz ein generatives Modell trainieren, um die Regeln zu erfassen, die die komplexen Beziehungen zwischen den Pixeln in Pferdebildern bestimmen. Dann können wir aus diesem Modell Stichproben ziehen, um neue, realistische Pferdebilder zu erstellen, die im ursprünglichen Datensatz nicht vorhanden waren. Dieser Prozess ist in Abbildung 1-1 dargestellt.
Um ein generatives Modell zu erstellen, benötigen wir einen Datensatz, der aus vielen Beispielen der Entität besteht, die wir zu generieren versuchen. Diese wird als Trainingsdaten bezeichnet, und ein solcher Datenpunkt wird als Beobachtung bezeichnet.
Jede Beobachtung besteht aus vielen Merkmalen. Bei einem Problem der Bilderzeugung sind die Merkmale in der Regel die einzelnen Pixelwerte; bei einem Problem der Texterzeugung können die Merkmale einzelne Wörter oder Gruppen von Buchstaben sein. Unser Ziel ist es, ein Modell zu entwickeln, das neue Sätze von Merkmalen erzeugen kann, die so aussehen, als ob sie nach denselben Regeln wie die Originaldaten erstellt wurden. Bei der Bilderzeugung ist das eine unglaublich schwierige Aufgabe, wenn man bedenkt, wie viele Möglichkeiten es gibt, einzelne Pixelwerte zuzuordnen, und wie wenige solcher Anordnungen ein Bild der zu erzeugenden Einheit ausmachen.
Ein generatives Modell muss auch probabilistisch und nicht deterministisch sein, denn wir wollen viele verschiedene Variationen des Ergebnisses ausprobieren können und nicht jedes Mal das gleiche Ergebnis erhalten. Wenn unser Modell nur eine feste Berechnung ist, wie z. B. der Durchschnittswert jedes Pixels im Trainingsdatensatz, ist es nicht generativ. Ein generatives Modell von muss eine Zufallskomponente enthalten, die die einzelnen vom Modell erzeugten Stichproben beeinflusst.
Mit anderen Worten: Wir können uns vorstellen, dass es eine unbekannte Wahrscheinlichkeitsverteilung gibt, die erklärt, warum einige Bilder wahrscheinlich im Trainingsdatensatz zu finden sind und andere nicht. Unsere Aufgabe ist es, ein Modell zu erstellen, das diese Verteilung so gut wie möglich nachahmt, und dann daraus Stichproben zu ziehen, um neue, eindeutige Beobachtungen zu generieren, die so aussehen, als ob sie im ursprünglichen Trainingsdatensatz enthalten gewesen sein könnten.
Generative vs. diskriminative Modellierung
Um wirklich zu verstehen, was die generative Modellierung erreichen will und warum sie wichtig ist, ist es sinnvoll, sie mit ihrem Gegenstück, der diskriminativen Modellierung, zu vergleichen. Wenn du dich mit maschinellem Lernen beschäftigt hast, wirst du wahrscheinlich mit den meisten Problemen konfrontiert worden sein, die diskriminativer Natur sind. Um den Unterschied zu verstehen, wollen wir uns ein Beispiel ansehen.
Angenommen, wir haben einen Datensatz mit Gemälden, von denen einige von Van Gogh und einige von anderen Künstlern gemalt wurden. Mit genügend Daten könnten wir ein diskriminierendes Modell trainieren, um vorherzusagen, ob ein bestimmtes Gemälde von Van Gogh gemalt wurde. Unser Modell würde lernen, dass bestimmte Farben, Formen und Texturen eher darauf hinweisen, dass ein Gemälde von dem niederländischen Meister stammt. Abbildung 1-2 zeigt den diskriminativen Modellierungsprozess, der sich von dem in Abbildung 1-1 gezeigten generativen Modellierungsprozess unterscheidet.
Bei der diskriminativen Modellierung wird jede Beobachtung in den Trainingsdaten mit einem Label versehen. Bei einem binären Klassifizierungsproblem wie unserem Künstlerdiskriminator würden Van-Gogh-Gemälde mit 1 und Nicht-Van-Gogh-Gemälde mit 0 gekennzeichnet. Unser Modell lernt dann, zwischen diesen beiden Gruppen zu unterscheiden, und gibt die Wahrscheinlichkeit aus, dass eine neue Beobachtung mit 1 gekennzeichnet ist, d. h. dass sie von Van Gogh gemalt wurde.
Bei der generativen Modellierung hingegen muss der Datensatz nicht beschriftet sein, weil es darum geht, völlig neue Bilder zu erzeugen, anstatt zu versuchen, die Beschriftung eines bestimmten Bildes vorherzusagen.
Lass uns diese Arten der Modellierung formal definieren, indem wir die mathematische Notation verwenden:
Bedingte generative Modelle
Beachte, dass wir auch ein generatives Modell erstellen können, um die bedingte Wahrscheinlichkeit zu modellieren -die Wahrscheinlichkeit, eine Beobachtung zu sehen mit einer bestimmten Bezeichnung .
Wenn unser Datensatz zum Beispiel verschiedene Obstsorten enthält, können wir unserem generativen Modell sagen, dass es speziell ein Bild von einem Apfel erzeugen soll.
Ein wichtiger Punkt ist, dass selbst wenn wir in der Lage wären, ein perfektes Unterscheidungsmodell zur Identifizierung von Van-Gogh-Gemälden zu erstellen, es immer noch keine Ahnung hätte, wie man ein Gemälde erstellt, das wie ein Van Gogh aussieht. Es kann nur Wahrscheinlichkeiten gegen bestehende Bilder ausgeben, denn dafür wurde es trainiert. Stattdessen müssten wir ein generatives Modell trainieren und aus diesem Modell Stichproben ziehen, um Bilder zu erzeugen, die mit hoher Wahrscheinlichkeit zum ursprünglichen Trainingsdatensatz gehören.
Das Aufkommen der generativen Modellierung
Bis vor kurzem war die diskriminative Modellierung die treibende Kraft hinter den meisten Fortschritten im maschinellen Lernen. Das liegt daran, dass für jedes diskriminative Problem das entsprechende generative Modellierungsproblem in der Regel sehr viel schwieriger zu bewältigen ist. Es ist zum Beispiel viel einfacher, ein Modell zu trainieren, das vorhersagt, ob ein Gemälde von Van Gogh stammt, als ein Modell zu trainieren, das ein Gemälde im Van-Gogh-Stil aus dem Nichts erzeugt. Genauso ist es viel einfacher, ein Modell zu trainieren, das vorhersagt, ob eine Textseite von Charles Dickens geschrieben wurde, als ein Modell zu erstellen, das eine Reihe von Absätzen im Stil von Dickens generiert. Bis vor kurzem galten die meisten generativen Herausforderungen als unerreichbar und viele bezweifelten, dass sie jemals gelöst werden könnten. Kreativität wurde als eine rein menschliche Fähigkeit angesehen, mit der KI nicht mithalten konnte.
Mit der Weiterentwicklung der Technologien für maschinelles Lernen wurde diese Annahme jedoch nach und nach aufgeweicht. In den letzten 10 Jahren wurden viele der interessantesten Fortschritte in diesem Bereich durch neuartige Anwendungen des maschinellen Lernens auf generative Modellierungsaufgaben erzielt. Abbildung 1-3 zeigt zum Beispiel die beeindruckenden Fortschritte, die seit 2014 bei der Bilderzeugung von Gesichtern gemacht wurden .
Die diskriminative Modellierung ist nicht nur einfacher zu handhaben, sondern lässt sich in der Vergangenheit auch leichter auf praktische Probleme in der Industrie anwenden als die generative Modellierung. Ein Arzt kann zum Beispiel von einem Modell profitieren, das vorhersagt, ob ein bestimmtes Netzhautbild Anzeichen eines Glaukoms zeigt, aber nicht unbedingt von einem Modell, das neue Bilder des Augenhintergrunds erzeugen kann.
Aber auch das beginnt sich zu ändern, denn es gibt immer mehr Unternehmen, die generative Dienstleistungen für bestimmte Geschäftsprobleme anbieten. So ist es jetzt möglich, auf APIs zuzugreifen, die originelle Blogbeiträge zu einem bestimmten Thema erstellen, eine Vielzahl von Bildern deines Produkts in jeder gewünschten Umgebung produzieren oder Social-Media-Inhalte und Werbetexte schreiben, die zu deiner Marke und deiner Zielbotschaft passen. Es gibt auch eindeutige positive Anwendungen der generativen KI für Branchen wie Spieledesign und Kinematographie, wo Modelle, die für die Ausgabe von Videos und Musik trainiert wurden, beginnen, einen Mehrwert zu schaffen.
Generative Modellierung und KI
Neben den praktischen Anwendungsmöglichkeiten der generativen Modellierung (von denen viele noch entdeckt werden müssen) gibt es drei tiefer liegende Gründe, warum die generative Modellierung als Schlüssel zu einer weitaus anspruchsvolleren Form der künstlichen Intelligenz angesehen werden kann, die über das hinausgeht, was die diskriminative Modellierung allein erreichen kann.
Erstens sollten wir unser Maschinentraining nicht nur aus theoretischer Sicht darauf beschränken, Daten zu kategorisieren. Der Vollständigkeit halber sollten wir uns auch darum kümmern, Modelle zu trainieren, die ein umfassenderes Verständnis der Datenverteilung erfassen, das über ein bestimmtes Label hinausgeht. Dies ist zweifellos ein schwierigeres Problem, da der Raum der möglichen Ergebnisse sehr dimensional ist und wir nur eine relativ kleine Anzahl von Kreationen als zum Datensatz gehörend einstufen können. Wie wir noch sehen werden, können jedoch viele der Techniken, die die Entwicklung der diskriminierenden Modellierung vorangetrieben haben, wie z. B. Deep Learning, auch für generative Modelle genutzt werden.
Zweitens wird die generative Modellierung, wie wir in Kapitel 12 sehen werden, inzwischen auch in anderen Bereichen der KI eingesetzt, z. B. beim Reinforcement Learning (der Untersuchung, wie Agenten durch Versuch und Irrtum lernen, ein Ziel in einer Umgebung zu optimieren). Nehmen wir an, wir wollen einen Roboter darauf trainieren, über ein bestimmtes Gelände zu laufen. Ein traditioneller Ansatz wäre, viele Experimente durchzuführen, bei denen der Agent verschiedene Strategien im Gelände oder in einer Computersimulation des Geländes ausprobiert. Im Laufe der Zeit würde der Agent lernen, welche Strategien erfolgreicher sind als andere und sich so nach und nach verbessern. Eine Herausforderung bei diesem Ansatz ist, dass er ziemlich unflexibel ist, weil er darauf trainiert ist, die Strategie für eine bestimmte Aufgabe zu optimieren. Ein alternativer Ansatz, der sich in letzter Zeit durchgesetzt hat, besteht darin, den Agenten so zu trainieren, dass er mit Hilfe eines generativen Modells ein Weltmodell der Umgebung lernt, unabhängig von einer bestimmten Aufgabe. Der Agent kann sich schnell an neue Aufgaben anpassen, indem er seine Strategien in seinem eigenen Weltmodell und nicht in der realen Umgebung testet, was oft rechnerisch effizienter ist und nicht für jede neue Aufgabe von Grund auf neu trainiert werden muss.
Wenn wir wirklich sagen wollen, dass wir eine Maschine gebaut haben, die eine dem Menschen vergleichbare Intelligenz entwickelt hat, muss die generative Modellierung Teil der Lösung sein. Eines der besten Beispiele für ein generatives Modell in der natürlichen Welt ist die Person, die dieses Buch liest. Nimm dir einen Moment Zeit, um darüber nachzudenken, was für ein unglaubliches generatives Modell du bist. Du kannst deine Augen schließen und dir vorstellen, wie ein Elefant aus allen möglichen Blickwinkeln aussehen würde. Du kannst dir eine Reihe von plausiblen Enden deiner Lieblingsserie vorstellen und du kannst deine Woche planen, indem du vor deinem geistigen Auge verschiedene Zukünfte durchspielst und entsprechend handelst. Aktuelle neurowissenschaftliche Theorien legen nahe, dass unsere Realitätswahrnehmung kein hochkomplexes Unterscheidungsmodell ist, das unsere Sinneseindrücke verarbeitet, um Vorhersagen über das zu treffen, was wir erleben, sondern ein generatives Modell, das von Geburt an trainiert wird, um Simulationen unserer Umgebung zu erstellen, die genau der Zukunft entsprechen. Einige Theorien besagen sogar, dass die Ergebnisse dieses generativen Modells das sind, was wir direkt als Realitätwahrnehmen. Es liegt auf der Hand, dass ein tiefgreifendes Verständnis dafür, wie wir Maschinen so bauen können, dass sie diese Fähigkeit erlangen, von zentraler Bedeutung für unser weiteres Verständnis der Funktionsweise des Gehirns und der allgemeinen künstlichen Intelligenz sein wird.
Unser erstes generatives Modell
Mit diesem Gedanken im Hinterkopf beginnen wir unsere Reise in die aufregende Welt der generativen Modellierung. Zu Beginn schauen wir uns ein kleines Beispiel für ein generatives Modell an und stellen einige der Ideen vor, die uns bei der Arbeit an den komplexeren Architekturen helfen, die wir später in diesem Buch kennenlernen werden.
Hallo Welt!
Beginnen wir mit einem generativen Modellierungsspiel in nur zwei Dimensionen. Ich habe eine Regel gewählt, die zur Erzeugung der Punktmenge verwendet wurde in Abbildung 1-4. Nennen wir diese Regel . Deine Aufgabe ist es, einen anderen Punkt zu wählen in dem Raum, der so aussieht, als wäre er durch dieselbe Regel erzeugt worden.
Wo hast du dich entschieden? Du hast wahrscheinlich dein Wissen über die vorhandenen Datenpunkte genutzt, um ein mentales Modell zu erstellen, , wo im Raum der Punkt am ehesten zu finden ist. In diesem Sinne, ist eine Schätzung von . Vielleicht hast du beschlossen, dass sollte wie in Abbildung 1-5aussehen - einrechteckiger Kasten, in dem Punkte gefunden werden können, und ein Bereich außerhalb des Kastens, in dem es keine Chance gibt, Punkte zu finden.
Um eine neue Beobachtung zu generieren, kannst du einfach einen zufälligen Punkt innerhalb der Box auswählen, oder, genauer gesagt, eine Stichprobe aus der Verteilung ziehen . Glückwunsch, du hast gerade dein erstes generatives Modell erstellt! Du hast die Trainingsdaten (die schwarzen Punkte) verwendet, um ein Modell (die orangefarbene Region) zu erstellen, aus dem du einfach Stichproben ziehen kannst, um andere Punkte zu erzeugen, die scheinbar zur Trainingsmenge gehören.
Lasst uns diese Überlegungen nun in einen Rahmen fassen, der uns hilft zu verstehen, was generative Modellierung zu erreichen versucht.
Der generative Modellierungsrahmen
Wir können unsere Beweggründe und Ziele für den Aufbau eines generativen Modells in dem folgenden Rahmen erfassen.
Lass uns nun die wahre datenerzeugende Verteilung aufdecken, und sieh dir an, wie der Rahmen auf dieses Beispiel anwendbar ist. Wie wir in Abbildung 1-6 sehen können, ist die Regel zur Datengenerierung einfach eine gleichmäßige Verteilung über die Landmasse der Welt, ohne die Chance, einen Punkt im Meer zu finden.
Unser Modell ist eindeutig, ist eine starke Vereinfachung von . Wir können die Punkte A, B und C untersuchen, um die Erfolge und Misserfolge unseres Modells in Bezug auf die Genauigkeit der Nachahmung zu verstehen :
-
Punkt A ist eine Beobachtung, die von unserem Modell erzeugt wird, aber anscheinend nicht von da es mitten im Meer liegt.
-
Punkt B könnte niemals von da es sich außerhalb der orangefarbenen Box befindet. Daher weist unser Modell einige Lücken auf, wenn es darum geht, Beobachtungen über die gesamte Bandbreite der möglichen Möglichkeiten zu machen.
-
Punkt C ist eine Beobachtung, die durch und auch von .
Trotz seiner Unzulänglichkeiten ist das Modell einfach zu beproben, denn es ist einfach eine Gleichverteilung über die orangefarbene Box. Wir können einfach einen zufälligen Punkt innerhalb dieser Box auswählen, um eine Stichprobe zu ziehen.
Außerdem können wir mit Sicherheit sagen, dass unser Modell eine einfache Darstellung der zugrunde liegenden komplexen Verteilung ist, die einige der zugrundeliegenden Merkmale auf hoher Ebene erfasst. Die wahre Verteilung ist in Gebiete mit viel Landmasse (Kontinente) und solche ohne Landmasse (das Meer) unterteilt. Das ist ein wichtiges Merkmal, das auch auf unser Modell zutrifft, nur dass wir einen großen Kontinent haben und nicht viele.
Dieses Beispiel hat die grundlegenden Konzepte der generativen Modellierung gezeigt. Die Probleme, die wir in diesem Buch angehen werden, sind weitaus komplexer und hochdimensionaler, aber der zugrunde liegende Rahmen, durch den wir das Problem angehen, ist derselbe.
Repräsentation Lernen
Es lohnt sich, ein wenig tiefer in die Materie einzutauchen, was wir mit dem Erlernen einer Repräsentation der hochdimensionalen Daten meinen, denn dieses Thema wird in diesem Buch immer wieder auftauchen.
Angenommen, du möchtest jemandem dein Aussehen beschreiben, der dich in einer Menschenmenge sucht und nicht weiß, wie du aussiehst. Du würdest nicht damit beginnen, die Farbe von Pixel 1 auf einem Foto von dir zu nennen, dann Pixel 2, dann Pixel 3, usw. Stattdessen würdest du davon ausgehen, dass die andere Person eine allgemeine Vorstellung davon hat, wie ein durchschnittlicher Mensch aussieht, und diese Grundannahme dann mit Merkmalen ergänzen, die Gruppen von Pixeln beschreiben, z. B. "Ich habe sehr blonde Haare" oder "Ich trage eine Brille". Mit nicht mehr als 10 dieser Aussagen wäre die Person in der Lage, die Beschreibung in Pixel umzuwandeln und ein Bild von dir in ihrem Kopf zu erzeugen. Das Bild wäre zwar nicht perfekt, aber es käme deinem tatsächlichen Aussehen nahe genug, um dich unter Hunderten von anderen Menschen zu finden, selbst wenn sie dich noch nie gesehen haben.
Dies ist der Kerngedanke des Repräsentationslernens. Anstatt zu versuchen, den hochdimensionalen Probenraum direkt zu modellieren, beschreiben wir jede Beobachtung in der Trainingsmenge mit Hilfe eines niedrigdimensionalen latenten Raums und lernen dann eine Abbildungsfunktion, die einen Punkt im latenten Raum auf einen Punkt im ursprünglichen Bereich abbilden kann. Mit anderen Worten: Jeder Punkt im latenten Raum ist eine Darstellung einer hochdimensionalen Beobachtung.
Was bedeutet das in der Praxis? Nehmen wir an, wir haben eine Trainingsmenge, die aus Graustufenbildern von Keksdosen besteht(Abbildung 1-7).
Für uns ist es offensichtlich, dass es zwei Merkmale gibt, die jede dieser Dosen eindeutig repräsentieren können: die Höhe und die Breite der Dose. Das heißt, wir können jedes Bild einer Dose in einen Punkt in einem latenten Raum mit nur zwei Dimensionen umwandeln, auch wenn die Trainingsbilder im hochdimensionalen Pixelraum vorliegen. Das bedeutet, dass wir auch Bilder von Dosen erzeugen können, die nicht in der Trainingsmenge enthalten sind, indem wir eine geeignete Abbildungsfunktion anwenden auf einen neuen Punkt im latenten Raum anwenden, wie in Abbildung 1-8 gezeigt.
Die Erkenntnis, dass der ursprüngliche Datensatz durch den einfacheren latenten Raum beschrieben werden kann, ist für eine Maschine nicht so einfach - sie müsste zunächst feststellen, dass Höhe und Breite die beiden latenten Raumdimensionen sind, die diesen Datensatz am besten beschreiben, und dann die Abbildungsfunktion lernen lernen, die einen Punkt in diesem Raum auf ein Graustufenbild einer Keksdose abbilden kann. Mit maschinellem Lernen (und insbesondere mit Deep Learning) können wir Maschinen trainieren, die diese komplexen Zusammenhänge ohne menschliche Anleitung finden können.
Einer der Vorteile von Trainingsmodellen, die einen latenten Raum verwenden, ist, dass wir Operationen durchführen können, die die Eigenschaften des Bildes auf hoher Ebene beeinflussen, indem wir seinen Repräsentationsvektor innerhalb des überschaubaren latenten Raums manipulieren. Es ist zum Beispiel nicht offensichtlich, wie man die Schattierung jedes einzelnen Pixels anpassen kann, um das Bild einer Keksdose größer zu machen. Im latenten Raum ist es jedoch einfach, die latente Dimension der Höhe zu erhöhen und dann die Abbildungsfunktion anzuwenden, um in den Bildbereich zurückzukehren. Ein explizites Beispiel dafür werden wir im nächsten Kapitel sehen, allerdings nicht für Keksdosen, sondern für Gesichter.
Das Konzept der Kodierung des Trainingsdatensatzes in einen latenten Raum, so dass wir daraus eine Stichprobe ziehen und den Punkt zurück in den ursprünglichen Bereich dekodieren können, ist vielen generativen Modellierungstechniken gemein, wie wir in späteren Kapiteln dieses Buches sehen werden. Mathematisch gesehen versuchen Encoder-Decoder-Verfahren, die hochgradig nichtlineare Mannigfaltigkeit, auf der die Daten liegen (z. B. im Pixelraum), in einen einfacheren latenten Raum umzuwandeln, aus dem Stichproben gezogen werden können, so dass es wahrscheinlich ist, dass jeder Punkt im latenten Raum die Darstellung eines wohlgeformten Bildes ist, wie in Abbildung 1-9 gezeigt.
Kern-Wahrscheinlichkeitstheorie
Wir haben bereits gesehen, dass die generative Modellierung eng mit der statistischen Modellierung von Wahrscheinlichkeitsverteilungen verbunden ist. Deshalb ist es jetzt sinnvoll, einige zentrale probabilistische und statistische Konzepte einzuführen, die im gesamten Buch verwendet werden, um den theoretischen Hintergrund der einzelnen Modelle zu erklären.
Wenn du noch nie Wahrscheinlichkeitsrechnung oder Statistik studiert hast, mach dir keine Sorgen. Um viele der Deep-Learning-Modelle zu entwickeln, die wir später in diesem Buch sehen werden, ist ein tiefes Verständnis der statistischen Theorie nicht unbedingt erforderlich. Um die Aufgabe, die wir angehen wollen, richtig einschätzen zu können, lohnt es sich jedoch, ein solides Verständnis der grundlegenden Wahrscheinlichkeitstheorie aufzubauen. Auf diese Weise hast du die Grundlage, um die verschiedenen Familien generativer Modelle zu verstehen, die wir später in diesem Kapitel vorstellen werden.
In einem ersten Schritt definieren wir fünf Schlüsselbegriffe, die wir mit unserem Beispiel eines generativen Modells, das die Weltkarte in zwei Dimensionen modelliert, verknüpfen:
- Musterraum
-
Der Stichprobenraum ist die vollständige Menge aller Werte einer Beobachtung annehmen kann.
Hinweis
In unserem vorherigen Beispiel besteht der Stichprobenraum aus allen Punkten mit Breiten- und Längengraden auf der Weltkarte. Zum Beispiel, = (40.7306, -73.9352) ist ein Punkt im Stichprobenraum (New York City), der zur wahren datenerzeugenden Verteilung gehört. = (11.3493, 142.1996) ist ein Punkt im Stichprobenraum, der nicht zu der wahren datenerzeugenden Verteilung gehört (er liegt im Meer).
- Wahrscheinlichkeitsdichtefunktion
-
Eine Wahrscheinlichkeitsdichtefunktion (oder einfach Dichtefunktion) ist eine Funktion die die relative Wahrscheinlichkeit darstellt, dass eine kontinuierliche Zufallsvariable in verschiedene Intervalle fällt, wobei das Integral von über den gesamten Bereich der möglichen Werte gleich 1 ist.
Hinweis
Im Beispiel der Weltkarte ist die Dichtefunktion unseres generativen Modells außerhalb des orangefarbenen Kastens 0 und innerhalb des Kastens konstant, so dass das Integral der Dichtefunktion über den gesamten Stichprobenraum gleich 1 ist.
Es gibt zwar nur eine wahre Dichtefunktion von der angenommen wird, dass sie den beobachtbaren Datensatz erzeugt hat, gibt es unendlich viele Dichtefunktionen die wir verwenden können, um zu schätzen .
- Parametrische Modellierung
-
Die parametrische Modellierung ist eine Technik, mit der wir unseren Ansatz zur Suche nach einem geeigneten . Ein parametrisches Modell ist eine Familie von Dichtefunktionen die mit einer endlichen Anzahl von Parametern beschrieben werden kann, .
Hinweis
Wenn wir von einer Gleichverteilung als Modellfamilie ausgehen, dann ist die Menge aller möglichen Kästchen, die wir in Abbildung 1-5 zeichnen können, ein Beispiel für ein parametrisches Modell. In diesem Fall gibt es vier Parameter: die Koordinaten der linken unteren Ecke und oben-rechts Ecken des Kastens.
Somit ist jede Dichtefunktion in diesem parametrischen Modell (d.h. jedes Feld) kann eindeutig durch vier Zahlen dargestellt werden, .
- Wahrscheinlichkeiten
-
Die likelihood eines Parametersatzes ist eine Funktion, die die Plausibilität von angesichts eines beobachteten Punktes . Sie ist wie folgt definiert:
Das heißt, die Wahrscheinlichkeit von bei einem bestimmten beobachteten Punkt ist definiert als der Wert der Dichtefunktion, die parametrisiert ist durch an dem Punkt . Wenn wir einen ganzen Datensatz haben unabhängiger Beobachtungen, dann können wir schreiben:
Hinweis
Im Beispiel der Weltkarte hätte ein orangefarbener Kasten, der nur die linke Hälfte der Karte abdeckt, eine Wahrscheinlichkeit von 0 - er kann den Datensatz unmöglich erzeugt haben, da wir Punkte in der rechten Hälfte der Karte beobachtet haben. Der orangefarbene Kasten in Abbildung 1-5 hat eine positive Likelihood, da die Dichtefunktion für alle Datenpunkte in diesem Modell positiv ist.
Da das Produkt aus einer großen Anzahl von Termen zwischen 0 und 1 rechnerisch recht schwierig zu handhaben ist, verwenden wir stattdessen oft die Log-Wahrscheinlichkeit ℓ:
Es gibt statistische Gründe, warum die Wahrscheinlichkeit auf diese Weise definiert wird, aber wir können auch sehen, dass diese Definition intuitiv sinnvoll ist. Die Wahrscheinlichkeit einer Gruppe von Parametern ist definiert als die Wahrscheinlichkeit, die Daten zu sehen, wenn die wahre datenerzeugende Verteilung das Modell wäre, das durch die Parameter .
Warnung
Beachte, dass die Likelihood eine Funktion der Parameter ist, nicht der Daten. Sie sollte nicht als die Wahrscheinlichkeit interpretiert werden, dass ein bestimmter Parametersatz korrekt ist - mit anderen Worten, es handelt sich nicht um eine Wahrscheinlichkeitsverteilung über den Parameterraum (d. h., sie summiert/integriert sich nicht zu 1, bezogen auf die Parameter).
Es macht intuitiv Sinn, dass der Schwerpunkt der parametrischen Modellierung darauf liegen sollte, den optimalen Wert zu finden des Parametersatzes zu finden, der die Wahrscheinlichkeit der Beobachtung des Datensatzes maximiert .
- Maximum-Likelihood-Schätzung
-
Die Maximum-Likelihood-Schätzung ist die Technik, mit der wir Folgendes schätzen können -die Menge der Parameter einer Dichtefunktion die am ehesten einige beobachtete Daten erklären kann . Noch formeller:
wird auch als Maximum-Likelihood-Schätzung (MLE) bezeichnet.
Hinweis
Im Beispiel der Weltkarte ist das MLE das kleinste Rechteck, das noch alle Punkte der Trainingsmenge enthält.
Neuronale Netze minimieren in der Regel eine Verlustfunktion. Wir können also auch sagen, dass wir die Parameter finden müssen, die die negative log-likelihood minimieren:
Die generative Modellierung kann als eine Form der Maximum-Likelihood-Schätzung betrachtet werden, bei der die Parameter die Gewichte der im Modell enthaltenen neuronalen Netze sind. Wir versuchen, die Werte dieser Parameter zu finden, die die Wahrscheinlichkeit für die Beobachtung der gegebenen Daten maximieren (oder anders ausgedrückt: die negative logarithmische Wahrscheinlichkeit minimieren).
Bei hochdimensionalen Problemen ist es jedoch in der Regel nicht möglich, direkt zu berechnen -ist es unlösbar. Wie wir im nächsten Abschnitt sehen werden, verfolgen verschiedene Familien generativer Modelle unterschiedliche Ansätze, um dieses Problem zu lösen.
Generative Modell-Taxonomie
Während alle Arten von generativen Modellen letztlich auf die Lösung derselben Aufgabe abzielen, verfolgen sie alle leicht unterschiedliche Ansätze zur Modellierung der Dichtefunktion . Grob gesagt, gibt es drei mögliche Ansätze:
-
Modelliere die Dichtefunktion explizit, aber schränke das Modell in irgendeiner Weise ein, damit die Dichtefunktion nachvollziehbar ist (d.h. berechnet werden kann).
-
Modelliere explizit eine nachvollziehbare Annäherung an die Dichtefunktion.
-
Implizite Modellierung der Dichtefunktion durch einen stochastischen Prozess, der direkt Daten erzeugt.
Diese sind in Abbildung 1-10 als Taxonomie dargestellt, zusammen mit den sechs Familien generativer Modelle, die wir in Teil II dieses Buches untersuchen werden. Beachte, dass sich diese Familien nicht gegenseitig ausschließen - es gibt viele Beispiele für Modelle, die eine Mischung aus zwei verschiedenen Ansätzen sind. Du solltest die Familien eher als verschiedene allgemeine Ansätze zur generativen Modellierung betrachten, denn als explizite Modellarchitekturen.
Die erste Unterscheidung, die wir treffen können, ist die zwischen Modellen, bei denen die Wahrscheinlichkeitsdichtefunktion explizit modelliert wird, und solchen, bei denen sie implizit modelliert wird.
Implizite Dichtemodelle zielen gar nicht darauf ab, die Wahrscheinlichkeitsdichte zu schätzen, sondern konzentrieren sich ausschließlich darauf, einen stochastischen Prozess zu erzeugen, der direkt Daten generiert. Das bekannteste Beispiel für ein implizites generatives Modell ist ein generatives adversariales Netz. Wir können explizite Dichtemodelle weiter unterteilen in solche, die die Dichtefunktion direkt optimieren (tractable models) und solche, die nur eine Annäherung an sie optimieren.
Nachvollziehbare Modelle legen Beschränkungen für die Modellarchitektur fest, damit die Dichtefunktion eine Form hat, mit der sie leicht zu berechnen ist. Zum Beispiel legen autoregressive Modelle eine Reihenfolge für die Eingangsmerkmale fest, so dass die Ausgabe sequentiell erzeugt werden kann - z. B. Wort für Wort oder Pixel für Pixel. Normalisierende Flussmodelle wenden eine Reihe von nachvollziehbaren, invertierbaren Funktionen auf eine einfache Verteilung an, um komplexere Verteilungen zu erzeugen.
Zu denapproximativen Dichtemodellen gehören variationale Autokoder, die eine latente Variable einführen und eine Approximation der gemeinsamen Dichtefunktion optimieren. Energiebasierte Modelle verwenden ebenfalls Näherungsmethoden, allerdings über Markovketten-Sampling und nicht über Variationsmethoden. Diffusionsmodelle approximieren die Dichtefunktion, indem sie ein Modell trainieren, um ein bestimmtes Bild, das zuvorbeschädigt wurde, allmählich zu entrauschen.
Ein roter Faden, der sich durch alle generativen Modelltypen zieht, ist das Deep Learning. Fast alle hochentwickelten generativen Modelle haben ein tiefes neuronales Netzwerk als Kern, weil sie von Grund auf trainiert werden können, um die komplexen Beziehungen zu lernen, die die Struktur der Daten bestimmen, und nicht von vornherein mit Informationen belegt werden müssen. In Kapitel 2 werden wir uns mit Deep Learning beschäftigen und anhand von praktischen Beispielen zeigen, wie du deine eigenen tiefen neuronalen Netze erstellen kannst.
Die generative Deep Learning Codebasis
Der letzte Abschnitt dieses Kapitels bereitet dich darauf vor, generative Deep Learning-Modelle zu erstellen, indem er dir die Codebasis vorstellt, die diesem Buch beiliegt.
Tipp
Viele der Beispiele in diesem Buch wurden von den hervorragenden Open-Source-Implementierungen übernommen, die auf der Keras-Website verfügbar sind. Ich empfehle dir dringend, diese Ressource zu besuchen, da ständig neue Modelle und Beispiele hinzugefügt werden.
Klonen des Repositorys
Um zu starten, musst du zunächst das Git-Repository klonen. Git ist ein Open-Source-System zur Versionskontrolle und ermöglicht es dir, den Code lokal zu kopieren, damit du die Notebooks auf deinem eigenen Rechner oder in einer Cloud-basierten Umgebung ausführen kannst. Möglicherweise hast du Git bereits installiert, aber wenn nicht, befolge die Anweisungen für dein Betriebssystem.
Um das Repository für dieses Buch zu klonen, navigiere zu dem Ordner, in dem du die Dateien speichern möchtest, und gib Folgendes in dein Terminal ein:
gitclone
https://github.com/davidADSP/Generative_Deep_Learning_2nd_Edition.git
Du solltest jetzt die Dateien in einem Ordner auf deinem Computer sehen können.
Docker verwenden
Die Codebasis für dieses Buch ist für die Verwendung mit Docker vorgesehen, einer kostenlosen Containertechnologie, die den Einstieg in eine neue Codebasis extrem einfach macht, unabhängig von deiner Architektur oder deinem Betriebssystem. Wenn du Docker noch nie benutzt hast, machdir keineSorgen - in der README-Datei imRepository des Buches wird beschrieben, wie du loslegen kannst.
Betrieb auf einer GPU
Wenn du keinen Zugang zu einem eigenen Grafikprozessor hast, ist das auch kein Problem! Alle Beispiele in diesem Buch werden auf einer CPU trainiert, was allerdings länger dauert, als wenn du einen GPU-fähigen Rechner verwendest. In der README findest du auch einen Abschnitt über die Einrichtung einer Google-Cloud-Umgebung, die dir den Zugang zu einem Grafikprozessor auf Pay-as-you-go-Basis ermöglicht.
Zusammenfassung
In diesem Kapitel wurde der Bereich der generativen Modellierung vorgestellt, ein wichtiger Zweig des maschinellen Lernens, der die weiter verbreitete diskriminative Modellierung ergänzt. Wir haben erörtert, dass die generative Modellierung derzeit einer der aktivsten und spannendsten Bereiche der KI-Forschung ist, mit vielen aktuellen Fortschritten sowohl in der Theorie als auch in denAnwendungen.
Wir haben mit einem einfachen Beispiel begonnen und gesehen, wie sich die generative Modellierung letztendlich auf die Modellierung der zugrundeliegenden Verteilung der Daten konzentriert. Dies bringt viele komplexe und interessante Herausforderungen mit sich, die wir in einem Rahmen zusammengefasst haben, um die wünschenswerten Eigenschaften eines generativen Modells zu verstehen.
Anschließend sind wir die wichtigsten probabilistischen Konzepte durchgegangen, die uns helfen, die theoretischen Grundlagen jedes Ansatzes zur generativen Modellierung zu verstehen, und haben die sechs verschiedenen Familien generativer Modelle vorgestellt, die wir in Teil II dieses Buches untersuchen werden. Außerdem haben wir gesehen, wie man mit der Generative Deep Learning Codebasis beginnt, indem man das Repository klont.
In Kapitel 2 beginnen wir mit der Erkundung von Deep Learning und sehen, wie wir mit Keras Modelle erstellen, die diskriminierende Modellierungsaufgaben erfüllen können. Das gibt uns die nötige Grundlage, um in späteren Kapiteln generative Deep Learning-Probleme anzugehen.
1 Miles Brundage et al., "The Malicious Use of Artificial Intelligence: Forecasting, Prevention, and Mitigation," February 20, 2018, https://www.eff.org/files/2018/02/20/malicious_ai_report_final.pdf.
Get Generatives Deep Learning, 2. Auflage now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.