Deep Learning illustriert. Jon Krohn. Читать онлайн. Newlib. NEWLIB.NET

Автор: Jon Krohn
Издательство: Bookwire
Серия:
Жанр произведения: Математика
Год издания: 0
isbn: 9783960887522
Скачать книгу
image

      Abb. 1–15Der überragende, britisch-kanadische Pionier auf dem Gebiet der künstlichen neuronalen Netze, Geoffrey Hinton, wird in der Presse oft als »Pate des Deep Learning« bezeichnet. Hinton ist emeritierter Professor an der University of Toronto und arbeitet außerdem für Google, wo er das »Brain Team« des Suchmaschinenriesen, eine Forschungsabteilung in Toronto, leitet. 2019 wurden Hinton, Yann LeCun (Abbildung 1–9) und Yoshua Bengio (Abbildung 1–10) gemeinsam für ihre Arbeit auf dem Gebiet des Deep Learning mit dem Turing Award geehrt – der höchsten Auszeichnung in der Informatik.

      Dies war ein Wendepunkt. Deep-Learning-Architekturen traten aus dem Schatten des Machine Learning heraus. Akademische und kommerzielle Anwender bemühten sich hastig, die Grundlagen der neuronalen Netze zu verstehen und Softwarebibliotheken herzustellen – von denen viele Open Source sind –, um mit den Deep-Learning-Modellen auf ihren eigenen Daten und Anwendungsfällen zu experimentieren, egal ob diese maschinelles Sehen oder anderes betrafen. In Abbildung 1–16 ist zu erkennen, dass seit 2012 alle Modelle, die im ILSVRC an der Spitze stehen, auf Deep Learning basieren.

      Abb. 1–16Leistung der besten Teilnehmer am ILSVRC in den einzelnen Jahren. AlexNet war 2012 der um Längen (um 40%!) bessere Gewinner. Seitdem waren die besten Algorithmen immer Deep-Learning-Modelle. 2015 übertrafen die Maschinen dann die menschliche Genauigkeit.

      Auch wenn die hierarchische Architektur von AlexNet an LeNet-5 erinnert, gibt es drei wesentliche Faktoren, die dafür sorgten, dass AlexNet im Jahre 2012 der führende Algorithmus für das maschinelle Sehen wurde. Der erste Faktor waren die Trainingsdaten. Krizhevsky und seine Kollegen hatten nicht nur Zugriff auf die riesige ImageNet-Datenbank, sondern erweiterten die verfügbaren Daten auch noch künstlich, indem sie Transformationen auf die Trainingsbilder anwandten (Sie werden dies in Kapitel 10 ebenfalls tun). Der zweite Faktor ist die Verarbeitungsleistung. Zum einen war die Rechenleistung pro Kosteneinheit zwischen 1998 und 2012 drastisch angestiegen, zum anderen programmierten Krizhevsky, Hinton und Sutskever zwei GPUs24, um ihre großen Datensätze mit bisher nie gesehener Effizienz zu trainieren. Der dritte Faktor waren die Fortschritte in der Architektur. AlexNet ist tiefer (besitzt mehr Schichten) als LeNet-5 und nutzt sowohl einen neuen Typ künstlicher Neuronen25 als auch einen raffinierten Trick26, der dabei hilft, Deep-Learning-Modelle über die Daten hinaus zu verallgemeinern, mit denen sie trainiert wurden. Genau wie LeNet-5 werden Sie Alex-Net in Kapitel 10 selbst bauen und es nutzen, um Bilder zu klassifizieren.

      Abb. 1–17Die hierarchische Natur von AlexNet erinnert an LeNet-5. Die erste Schicht (ganz links) repräsentiert einfache visuelle Merkmale wie Kanten, während tiefer gelegene Schichten zunehmend komplexer werdende Merkmale und abstrakte Konzepte darstellen. Am unteren Rand sehen Sie Beispiele für Bilder, auf die die Neuronen in dieser Schicht eine maximale Reaktion zeigen. Dies erinnert an die Schichten des biologischen visuellen Systems aus Abbildung 1–6 und demonstriert die hierarchische Zunahme der visuellen Komplexität. Im hier gezeigten Beispiel wird das Bild einer Katze, das AlexNet präsentiert wurde, korrekt als solche erkannt (wie der grüne Ausgabetext »CAT« impliziert). »CONV« deutet an, dass ein sogenannter Convolutional Layer verwendet wird, »FC« ist eine vollständig verknüpfte Schicht. Wir werden diese Schichttypen in Kapitel 7 bzw. Kapitel 10 einführen.

      Unsere ILSVRC-Fallstudie unterstreicht, wieso Deep-Learning-Modelle wie Alex-Net so ungemein nützlich und bahnbrechend in allen Branchen und Computeranwendungen sind: Sie reduzieren ganz drastisch das themenbezogene Fachwissen, das zum Herstellen hochgradig exakter Vorhersagemodelle erforderlich ist. Dieser Trend weg vom fachlich gestützten Feature Engineering und hin zu überraschend leistungsstarken Deep-Learning-Modellen mit automatischer Feature-Generierung wird nicht nur von Vision-Anwendungen getragen, sondern zum Beispiel auch von Computerspielen (sie sind Thema von Kapitel 4) und von der Verarbeitung natürlicher Sprache (Kapitel 2)27. Man muss kein Spezialist für die visuellen Attribute von Gesichtern sein, um einen Gesichtserkennungsalgorithmus herzustellen. Man benötigt kein umfassendes Verständnis mehr für die Strategie eines Spiels, um ein Programm zu schreiben, das es meistern kann. Man muss keine Autorität für die Struktur und Semantik aller betreffenden Sprachen sein, um ein Übersetzungswerkzeug zu schreiben. Für immer mehr Anwendungsfälle ist es wichtiger, Deep-Learning-Techniken anzuwenden, als Kenntnisse auf dem entsprechenden Gebiet zu haben. Während diese Kenntnisse früher wenigstens einen Doktorgrad oder vielleicht jahrelange Forschungen in diesem Bereich erfordert haben, kann ein hinreichendes Niveau auf dem Feld des Deep Learning relativ einfach erreicht werden – etwa, indem man dieses Buch durcharbeitet!

       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