Inhalt | 5 |
Vorwort | 9 |
Kapitel 1: Werkzeuge und Techniken | 17 |
1.1 Arten neuronaler Netze | 17 |
1.2 Datenbeschaffung | 28 |
1.3 Vorverarbeitung von Daten | 35 |
Kapitel 2: Fehlerbehebung | 43 |
2.1 Probleme bemerken | 43 |
2.2 Laufzeitfehler beheben | 44 |
2.3 Zwischenergebnisse überprüfen | 47 |
2.4 Wählen der richtigen Aktivierungsfunktion (für die letzte Schicht) | 48 |
2.5 Regularisierung und Drop-out | 49 |
2.6 Netzwerkstruktur, Batch-Größe und Lernrate | 51 |
Kapitel 3: Die Ähnlichkeit von Texten mithilfe von Worteinbettungen berechnen | 53 |
3.1 Wortähnlichkeiten mithilfe vortrainierter Worteinbettungen finden | 54 |
3.2 Word2vec-Mathematik | 56 |
3.3 Worteinbettungen visualisieren | 58 |
3.4 Objektklassen in Einbettungen finden | 60 |
3.5 Semantische Abstände innerhalb einer Klasse berechnen | 63 |
3.6 Länderdaten auf einer Landkarte visualisieren | 65 |
Kapitel 4: Ein Empfehlungssystem anhand ausgehender Wikipedia-Links erstellen | 67 |
4.1 Sammeln der Daten | 67 |
4.2 Trainieren von Filmeinbettungen | 71 |
4.3 Ein Filmempfehlungssystem erstellen | 74 |
4.4 Vorhersagen einfacher Filmmerkmale | 75 |
Kapitel 5: Text im Stil eines Beispieltexts generieren | 79 |
5.1 Den Text von gemeinfreien Büchern beschaffen | 79 |
5.2 Texte im Stil von Shakespeare generieren | 80 |
5.3 Code mit RNNs erzeugen | 84 |
5.4 Steuerung der Temperatur des Outputs | 86 |
5.5 Visualisierung der Aktivierungen eines rekurrenten Netzwerks | 88 |
Kapitel 6: Übereinstimmende Fragen | 91 |
6.1 Daten aus Stack Exchange beschaffen | 91 |
6.2 Erkundung der Daten mit Pandas | 93 |
6.3 Textkodierung in Keras | 94 |
6.4 Ein Frage-Antwort-Modell entwickeln | 95 |
6.5 Training eines Modells mit Pandas | 97 |
6.6 Überprüfung von Gemeinsamkeiten | 98 |
Kapitel 7: Emojis vorschlagen | 101 |
7.1 Einen einfachen Stimmungsklassifikator entwickeln | 101 |
7.2 Inspizieren eines einfachen Klassifikators | 104 |
7.3 Ein Konvolutionsnetz zur Stimmungsanalyse verwenden | 105 |
7.4 Twitter-Daten sammeln | 108 |
7.5 Ein simples Vorhersagemodell für Emojis | 109 |
7.6 Drop-out und variierende Fenstergröße | 111 |
7.7 Ein wortbasiertes Modell erstellen | 112 |
7.8 Eigene Einbettungen erzeugen | 114 |
7.9 Ein rekurrentes neuronales Netzwerk zur Klassifikation verwenden | 116 |
7.10 Übereinstimmung visualisieren | 118 |
7.11 Modelle miteinander kombinieren | 120 |
Kapitel 8: Sequenz-zu-Sequenz-Mapping | 123 |
8.1 Trainieren eines einfachen Sequenz-zu-Sequenz-Modells | 123 |
8.2 Dialoge aus Texten extrahieren | 125 |
8.3 Einen frei verfügbaren Wortschatz handhaben | 127 |
8.4 Einen seq2seq-Chatbot trainieren | 128 |
Kapitel 9: Ein vortrainiertes Netzwerk zur Bilderkennung verwenden | 133 |
9.1 Ein vortrainiertes Netzwerk laden | 133 |
9.2 Vorverarbeitung der Bilder | 134 |
9.3 Vorhersagen des Bildinhalts (Inferenz) | 136 |
9.4 Einen gelabelten Bilddatensatz mit der Flickr-API sammeln | 137 |
9.5 Einen Hund-Katze-Klassifikator erstellen | 138 |
9.6 Suchergebnisse verbessern | 140 |
9.7 Trainieren vortrainierter Netzwerke zur Bilderkennung | 142 |
Kapitel 10: Eine Reverse-Image-Suchmaschine erstellen | 145 |
10.1 Zugriff auf Bilder von Wikipedia | 145 |
10.2 Projektion von Bildern in einen N-dimensionalen Raum | 148 |
10.3 Nächste Nachbarn in hochdimensionalen Räumen finden | 149 |
10.4 Lokale Nachbarschaften in Einbettungen erkunden | 150 |
Kapitel 11: Mehrere Bildinhalte erkennen | 153 |
11.1 Erkennen mehrerer Bildinhalte mithilfe eines vortrainierten Klassifikators | 153 |
11.2 Bilderkennung mithilfe eines Faster RCNN | 157 |
11.3 Eigene Bilder in einem Faster RCNN verwenden | 160 |
Kapitel 12: Mit Bildstilen arbeiten | 163 |
12.1 Aktivierungen eines CNN visualisieren | 164 |
12.2 Oktaven und Vergrößerung | 167 |
12.3 Veranschaulichen, was ein neuronales Netzwerk in etwa wahrnimmt | 169 |
12.4 Den Stil eines Bilds erfassen | 172 |
12.5 Verbessern der Verlustfunktion zur Erhöhung der Bildkohärenz | 175 |
12.6 Einen Stil auf ein anderes Bild übertragen | 177 |
12.7 Stilinterpolation | 178 |
Kapitel 13: Bilder mit Autoencodern erzeugen | 181 |
13.1 Zeichnungen aus Google Quick Draw importieren | 182 |
13.2 Einen Autoencoder für Bilder erstellen | 183 |
13.3 Visualisierung der Ergebnisse von Autoencodern | 186 |
13.4 Sampling von Bildern aus einer korrekten Verteilung | 187 |
13.5 Den latenten Raum eines Variational Autoencoders visualisieren | 191 |
13.6 Conditional Variational Autoencoder | 192 |
Kapitel 14: Piktogramme mithilfe von neuronalen Netzwerken erzeugen | 197 |
14.1 Piktogramme zum Trainieren beschaffen | 198 |
14.2 Piktogramme in eine Tensor-Darstellung umwandeln | 200 |
14.3 Piktogramme mithilfe eines Variational Autoencoders erzeugen | 201 |
14.4 Datenanreicherung zur Verbesserung der Leistung des Autoencoders | 204 |
14.5 Ein Generative Adversarial Network aufbauen | 205 |
14.6 Generative Adversarial Networks trainieren | 207 |
14.7 Mit einem GAN erzeugte Piktogramme anzeigen | 209 |
14.8 Piktogramme als Zeichenanleitung kodieren | 211 |
14.9 Trainieren eines RNN zum Zeichnen von Piktogrammen | 212 |
14.10 Piktogramme mithilfe eines RNN erzeugen | 213 |
Kapitel 15: Musik und Deep Learning | 217 |
15.1 Einen Trainingsdatensatz zur Musikklassifikation erstellen | 218 |
15.2 Einen Musikgenre-Detektor trainieren | 220 |
15.3 Visualisierung von Klassifikationsirrtümern | 222 |
15.4 Indexierung vorhandener Musik | 224 |
15.5 Die Spotify-API einrichten | 226 |
15.6 Playlisten und Musikstücke von Spotify sammeln | 227 |
15.7 Ein Musikempfehlungssystem trainieren | 230 |
15.8 Musikstücke empfehlen mithilfe eines Word2vec-Modells | 231 |
Kapitel 16: Machine-Learning-Systeme in Produktion bringen | 235 |
16.1 Ein Nächste-Nachbarn-Klassifikationsmodell für Einbettungen mit scikit-learn verwenden | 236 |
16.2 Postgres zum Speichern von Einbettungen verwenden | 237 |
16.3 Einpflegen und Abfragen von in Postgres gespeicherten Einbettungen | 238 |
16.4 Hochdimensionale Modelle in Postgres speichern | 239 |
16.5 Microservices in Python erstellen | 241 |
16.6 Keras-Modelle als Microservice bereitstellen | 242 |
16.7 Einen Microservice aus einem Web-Framework aufrufen | 243 |
16.8 seq2seq-Modelle in TensorFlow | 244 |
16.9 Deep-Learning-Modelle im Browser ausführen | 246 |
16.10 Ein Keras-Modell mit TensorFlow Serving ausführen | 248 |
16.11 Ein Keras-Modell unter iOS verwenden | 251 |
Index | 253 |
Über den Autor | 261 |
Über die Übersetzer | 261 |
Kolophon | 261 |