Читать книгу Deep Learning illustriert - Jon Krohn - Страница 20
1.3TensorFlow Playground
ОглавлениеWenn Sie auf nette und interaktive Weise das hierarchische Wesen des Deep Learning erkunden wollen, bei dem selbsttätig Features gefunden werden, sollten Sie einmal den TensorFlow Playground unter bit.ly/TFplayground besuchen. Das Netzwerk, das Sie hinter diesem eigens eingerichteten Link finden, sollte automatisch so ähnlich aussehen wie in Abbildung 1–18. In Teil II werden wir wieder dorthin zurückkehren und alle Begriffe definieren, die auf dem Bildschirm zu sehen sind; für die aktuelle Übung können Sie sie getrost ignorieren. Momentan reicht es zu wissen, dass dies ein Deep-Learning-Modell ist. Die Modellarchitektur besteht aus sechs Schichten künstlicher Neuronen: einer Eingabeschicht ganz links (unter der Überschrift »FEATURES«), vier »HIDDEN LAYERS« (verborgene Schichten; diese sind verantwortlich für das Lernen) und einer »OUTPUT«-Schicht (Ausgabeschicht; das Raster ganz rechts, das an beiden Achsen von -6 bis +6 verläuft). Ziel des Netzwerks ist es zu lernen, orange Punkte (negative Fälle) ausschließlich durch ihre Lage im Raster von blauen Punkten (positive Fälle) zu unterscheiden. Daher geben wir in der Eingabeschicht nur zwei Informationen über jeden Punkt ein: seine horizontale Position (X1) und seine vertikale Position (X2). Die als Trainingsdaten verwendeten Punkte sind standardmäßig im Raster zu sehen. Wenn Sie die Checkbox Show test data anklicken, können Sie außerdem die Lage der Punkte sehen, die benutzt werden, um die Leistung des Netzes beim Lernen abzuschätzen. Entscheidend ist, dass diese Testdaten dem Netz nicht zur Verfügung stehen, während es lernt, sodass wir sichergehen können, dass das Netz gut auf neue, ungesehene Daten verallgemeinert.
Abb. 1–18Dieses tiefe neuronale Netz ist bereit zu lernen, wie es eine Spirale aus orange Punkten (negative Fälle) von blauen Punkten (positive Fälle) unterscheiden kann. Als Grundlage hierzu dienen lediglich die Positionen der Punkte auf den Achsen X1 und X2 im Raster auf der rechten Seite.
Klicken Sie auf den großen Play-Pfeil in der oberen linken Ecke. Erlauben Sie es dem Netzwerk zu trainieren, bis die Werte »Training loss« und »Test loss« in der oberen rechten Ecke jeweils fast auf Null zurückgegangen sind – sagen wir, auf weniger als 0.05. Wie lange das dauert, hängt von Ihrer Hardware ab, aber es werden hoffentlich nur ein paar Minuten sein.
Wie in Abbildung 1–19 festgehalten wurde, sollten Sie nun die künstlichen Neuronen des Netzwerks sehen, die die Eingabedaten repräsentieren. Je tiefer (also je weiter rechts) sie positioniert sind, umso komplexer und abstrakter sollte die Darstellung werden – wie im Neocognitron, im LeNet-5 (Abbildung 1–11) und im AlexNet (Abbildung 1–17). Bei jedem Durchlauf des Netzes löst das Netz das Problem der Spiralklassifikation auf Neuronen-Ebene anders, aber der allgemeine Ansatz bleibt gleich (wenn Sie dies nachprüfen wollen, laden Sie die Seite neu und trainieren Sie das Netz erneut). Die künstlichen Neuronen in der ganz linken verborgenen Schicht sind darauf spezialisiert, Kanten (gerade Linien) zu unterscheiden, und zwar jeweils in einer bestimmten Ausrichtung. Die Neuronen aus der ersten verborgenen Schicht übergeben die Informationen an Neuronen in der zweiten verborgenen Schicht, die wiederum die Kanten zu etwas komplexeren Merkmalen, wie etwa Kurven, neu kombinieren. Die Neuronen in jeder nachfolgenden Schicht setzen die Informationen der Neuronen aus den vorangegangenen Schichten neu zusammen, sodass sich die Komplexität und der Abstraktionsgrad der Features, die die Neuronen repräsentieren können, schrittweise erhöhen. Wenn die letzte (ganz rechts gelegene) Schicht erreicht ist, sind die Neuronen geschult darin, die Feinheiten der Spiralform darzustellen, was es dem Netz erlaubt, anhand seiner Position im Raster (seiner X1- und X2-Koordinaten) akkurat vorherzusagen, ob ein Punkt orange (ein negativer Fall) oder blau (ein positiver Fall) ist. Halten Sie den Mauszeiger über ein Neuron, um es auf das äußerst rechts gelegene »OUTPUT«-Raster zu projizieren und seine jeweilige Spezialisierung im Detail zu untersuchen.
Abb. 1–19 Das Netzwerk nach dem Trainieren