Читать книгу GANs mit PyTorch selbst programmieren - Tariq Rashid - Страница 6
ОглавлениеEinführung
Künstliche Intelligenz explodiert!
Maschinelles Lernen und künstliche Intelligenz (KI) sind in den letzten Jahren regelrecht explodiert, und alle paar Monate vermelden die Nachrichten außergewöhnliche Leistungen.
Nicht nur, dass Ihr Smartphone Sie versteht, wenn Sie mit ihm sprechen, es kann auch recht gut zwischen verschiedenen menschlichen Sprachen übersetzen. Selbstfahrende Autos können inzwischen so sicher fahren wie Menschen. Und Maschinen sind heute in der Lage, manche Krankheiten genauer und früher zu diagnostizieren als erfahrene Ärzte.
Das alte chinesische Spiel Go wird seit 3.000 Jahren gespielt, und obwohl die Regeln einfacher sind als beim Schach, ist das Spiel selbst viel komplexer und verlangt längerfristige Strategien. Erst vor Kurzem waren Entwickler in der Lage, mit einem System für maschinelles Lernen erstmals gegen einen Weltmeister zu spielen und zu gewinnen. Dieses System für maschinelles Lernen hat zudem neue Spielstrategien entdeckt, von denen wir glauben, dass Menschen sie in diesen 3.000 Jahren nicht hätten finden können!
Jenseits dessen, dass KI-Systeme lernen können, Aufgabe ausführen, ist die Entdeckung neuer Strategien ein immenser Erfolg auf dem Gebiet des maschinellen Lernens.
Kreative KI
Im Oktober 2018 hat das renommierte Aktionshaus Christies ein Porträt für 432.500 Dollar verkauft. Dieses Gemälde wurde nicht von einer Person gemalt, sondern von einem neuronalen Netz generiert. Ein mit KI gemaltes Porträt, das für fast eine halbe Million Dollar verkauft wurde, ist ein Meilenstein in der Geschichte der Kunst.
Dieses neuronale Netz wurde mit einer neuen und spannenden Technik trainiert, dem sogenannten Adversarial Training (von engl. adversarial – gegnerisch). Die Architektur wird als Generative Adversarial Networks, kurz GANs, bezeichnet (etwa »erzeugende gegnerische Netzwerke«).
GANs stoßen auf großes Interesse, speziell im Bereich der kreativen Technik, weil sie Bilder erzeugen können, die sehr plausibel aussehen. Diese Bilder entstehen weder durch einfaches Kopieren und Einfügen von Teilen der Trainingsbeispiele noch durch unscharf gemittelte Trainingsdaten. Das ist es, was GANs von den meisten anderen Formen des maschinellen Lernens unterscheidet. GANs lernen, Bilder auf einer Ebene zu erzeugen, die weit über dem bloßen Replizieren oder Mitteln von Trainingsdaten liegt.
Yann LeCun, einer der weltweit führenden Forscher auf dem Gebiet der neuronalen Netze, hat GANs als »die coolste Idee des Deep Learning in den letzten 20 Jahren« bezeichnet.
GANs sind neu
Im Vergleich zu den jahrzehntelangen Forschungen und Verfeinerungen auf dem Gebiet der neuronalen Netze haben GANs erst 2014 mit dem inzwischen bahnbrechenden Paper von Ian Goodfellow die Aufmerksamkeit auf sich gezogen.
Das heißt, GANs sind ziemlich neu, und man beginnt gerade erst, die kreativen Möglichkeiten zu erforschen. Das bedeutet aber auch, dass wir noch nicht ganz verstehen, wie sie sich so effektiv trainieren lassen, wie wir es bei herkömmlichen Netzen bereits können. Wenn sie funktionieren, dann spektakulär gut. Aber viel zu oft scheitern sie. Die Arbeitsweise von GANs und die Gründe, die dazu führen können, dass sie scheitern, werden derzeit sehr intensiv erforscht.
Für wen dieses Buch gedacht ist
Dieses Buch richtet sich an alle, die erste Schritte unternehmen wollen, um das Wesen von GANs und deren Arbeitsweise zu verstehen. Es eignet sich auch für jeden, der lernen möchte, wie man sie mit Industriestandardtools tatsächlich erstellt.
In dieser Einführung wird versucht, eine verständliche, einfache Sprache zu verwenden und anhand zahlreicher Bilder Ideen visuell zu erklären. Ich werde unnötige Fachausdrücke vermeiden und mathematische Gleichungen nur wenn unbedingt nötig verwenden.
Mein Ziel ist es, möglichst vielen Lesern mit ganz unterschiedlichem Hintergrund GANs nahezubringen und sie dafür zu begeistern, eigene GANs zu erstellen.
Dieses Buch versucht nicht, jedes Thema erschöpfend zu behandeln oder eine Enzyklopädie für GANs zu sein. Es deckt absichtlich nur das Minimum ab, damit Sie eine solide Grundlage bekommen, auf der Sie zu weiterführenden Erkundungstouren aufbrechen können.
Teilnehmer an Kursen für maschinelles Lernen werden in diesem Buch eine gute Basis für das weitere Studium von GANs finden.
Neuronale Netze
GANs bestehen aus neuronalen Netzen. Auch wenn dieser Leitfaden hierzu eine kleine Auffrischung bringt, ist mein vorheriges Buch Neuronale Netze selbst programmieren (O’Reilly 2017) als behutsamste Einführung in neuronale Netze und ihre Arbeitsweise zu empfehlen. Es bietet auch eine Einführung in die Analysis und den Gradientenabstieg, was für die bevorstehende Reise in GANs nützlich ist.
https://www.oreilly.de/buecher/12892/9783960090434-neuronale-netze-selbst-programmieren.html
Darüber hinaus enthält es eine Einführung in die Programmierung mit Python, die gerade genug abdeckt, um einfache neuronale Netze in eigener Regie aufzubauen.
Wie Sie dieses Buch verwenden
Ein Konzept lernt und versteht man am besten, wenn man es praktisch anwendet – Learning by Doing. Deshalb entwickelt dieses Buch Ideen und Theorien rund um eine praktische Schritt-für-Schritt-Reise.
Dieser Leitfaden wird Sie begleiten auf dieser Reise, auf der wir manchmal scheitern, bevor wir eine Lösung finden. Zu scheitern und sich durch die Abhilfemaßnahmen durchzuarbeiten, ist eine echte Erfahrung, und das ist viel wertvoller als die bloße Lektüre theoretischer Anleitungen zu GANs.
Freie und Open-Source-Software
Alle hier vorgestellten Tools und Dienste, mit denen Sie Ihre eigenen GANs aufbauen können, sind entweder kostenlos oder Open Source und kostenlos. Dies ist wichtig, um möglichst wenige Menschen davon auszuschließen, etwas über neuronale Netze und GANs zu lernen und diese selbst zu erstellen.
Python ist eine der beliebtesten und am leichtesten zu erlernenden Programmiersprachen und hat sich als Standard im maschinellen Lernen und der KI etabliert. Zudem gibt es eine lebhafte globale Community und ein gesundes Ökosystem von Bibliotheken.
Google bietet derzeit eine kostenlose webbasierte Python-Umgebung namens Google Colab an, was bedeutet, dass Sie weder Python noch irgendeine andere Software installieren müssen. Sie können leistungsstarke neuronale Netz vollständig in der Infrastruktur von Google entwickeln und ausführen, wofür Sie lediglich einen modernen Webbrowser benötigen, der auf einem recht bescheidenen Computer oder Laptop läuft.
PyTorch ist eine Erweiterung von Python, mit der sich Modelle für maschinelles Lernen einfach entwerfen, erstellen und ausführen lassen. Neben TensorFlow gehört es zu den beliebtesten Frameworks für maschinelles Lernen.
Alle diese Tools zählen auch zum Industriestandard, sodass Sie wertvolle wiederverwendbare Fähigkeiten erwerben.
Anmerkung des Autors
Ich sehe meine Mission als gescheitert an, wenn irgendein Leser Schwierigkeiten hat, zu verstehen, was GANs sind und wie sie trainiert werden. Ich hätte auch versagt, wenn Sie nicht in der Lage sind, Ihr eigenes einfaches GAN zu erstellen.
Der Inhalt dieses Buchs ist mit einer Reihe von Studenten und Entwicklern getestet worden. Wenn also irgendetwas nicht schlüssig erscheint, kontaktieren Sie mich bitte über twitter@myoneuralnet, per E-Mail unter makeyourownneuralnetwork@gmail.com oder auf GitHub:
Zusätzliche Erörterungen und Antworten auf interessante Leserfragen finden Sie im Blog, der dieses und das vorherige Buch begleitet:
Abschließend möchte ich Ihnen wärmstens empfehlen, sich Ihrer lokalen Community für maschinelles Lernen oder algorithmische Kunst anzuschließen. Lernen in einer Gruppe ist viel effektiver, denn es macht Spaß, seine Arbeit mit anderen zu teilen und sich von dem inspirieren zu lassen, was andere sich ausdenken.
Viel Spaß dabei!