Читать книгу Machine Learning für Softwareentwickler - Paolo Perrotta - Страница 5
Inhalt
ОглавлениеWie um alles in der Welt ist so etwas möglich?
Teil 1Von null auf Bilderkennung
1 Einführung in Machine Learning
Programmierung und Machine Learning im Vergleich
Die Mathematik hinter dem Zaubertrick
Pizzavorhersage mit überwachtem Lernen
Zusammenhänge in den Daten erkennen
Eine lineare Regression programmieren
Praktische Übung: Die Lernrate optimieren
Unser Algorithmus bringt es nicht
Probleme beim Gradientenverfahren
Praktische Übung: Über das Ziel hinaus
Die Vorhersagefunktion anpassen
Die Gradientenfunktion anpassen
Praktische Übung: Statistik in der Praxis
Grenzen der linearen Regression
Glätten
Den Gradienten anpassen
Was ist mit der Modellfunktion geschehen?
Klassifizierung in Aktion
Zusammenfassung
Praktische Übung: Gewichtige Entscheidungen
6 Eine Aufgabe aus der Praxis
Die Daten
MNIST
Trainings- und Testdatensatz
Unsere eigene MNIST-Bibliothek
Die Eingabematrizen vorbereiten
Die Daten aufbereiten
Anwendung in der Praxis
Zusammenfassung
Praktische Übung: Knifflige Ziffern
7 Die große Herausforderung
Von zwei zu mehr Klassen
1-aus-n-Codierung
1-aus-n-Codierung in Aktion
Die Antworten des Klassifizierers decodieren
Mehr Gewichte
Die Matrixdimensionen überprüfen
Der Augenblick der Wahrheit
Zusammenfassung
Praktische Übung: Minensucher
8 Das Perzeptron
Gestatten, das Perzeptron!
Perzeptrone kombinieren
Die Grenzen von Perzeptronen
Linear separierbare Daten
Nicht linear separierbare Daten
Die Geschichte des Perzeptrons
Der entscheidende Schlag
Nachwehen
Teil 2Neuronale Netze
9 Das Netz entwerfen
Ein neuronales Netz aus Perzeptronen zusammenstellen
Perzeptrone verketten
Wie viele Knoten?
Die Softmax-Funktion
Der Entwurf
Zusammenfassung
Praktische Übung: Auf eigene Faust
10 Das Netz erstellen
Die Forward-Propagation programmieren
Die Softmax-Funktion schreiben
Die Klassifizierungsfunktionen schreiben
Kreuzentropie
Zusammenfassung
Praktische Übung: Test durch Zeitreise
11 Das Netz trainieren
Wozu Backpropagation?
Von der Kettenregel zur Backpropagation
Die Kettenregel in einem einfachen Netz
Es wird komplizierter
Backpropagation anwenden
Auf Kurs bleiben
Den Gradienten von w2 berechnen
Den Gradienten von w1 berechnen
Die Funktion back() erstellen
Die Gewichte initialisieren
Gefährliche Symmetrie
Tote Neuronen
Korrekte Gewichtsinitialisierung
Das fertige neuronale Netz
Zusammenfassung
Praktische Übung: Fehlstart
12 Funktionsweise von Klassifizierern
Eine Entscheidungsgrenze einzeichnen
Heimspiel für das Perzeptron
Klassifizierung verstehen
Eine Gerade reicht nicht aus
Die Entscheidungsgrenze krümmen
Zusammenfassung
Praktische Übung: Albtraumdaten
Der Lernvorgang grafisch dargestellt
Batch für Batch
Batches erstellen
Training mit Batches
Was geschieht bei verschiedenen Batchgrößen?
Ein Zickzackpfad
Große und kleine Batches
Vor- und Nachteile von Batches
Zusammenfassung
Praktische Übung: Das kleinste Batch
Die Gefahr der Überanpassung
Das Problem mit dem Testdatensatz
Zusammenfassung
Praktische Übung: Überlegungen zum Testen
Daten aufbereiten
Den Wertebereich der Eingabevariablen prüfen
Eingabevariablen standardisieren
Standardisierung in der Praxis
Die Hyperparameter anpassen
Die Anzahl der Epochen festlegen
Die Anzahl der verdeckten Knoten einstellen
Die Lernrate einstellen
Die Batchgröße festlegen
Der Abschlusstest
Auf dem Weg zu 99 %
Praktische Übung: 99 % erreichen
Zusammenfassung und Vorschau
Der Echidna-Datensatz
Neuronale Netze mit Keras erstellen
Den Aufbau des Netzes planen und der erste Code
Die Daten laden
Das Modell erstellen
Das Modell kompilieren
Das Netz trainieren
Die Entscheidungsgrenze einzeichnen
Das Netz ausführen
Ein tieferes Netz
Zusammenfassung
Praktische Übung: Keras-Spielwiese
Was ist Überanpassung?
Ursachen der Überanpassung
Unteranpassung
Das Modell regularisieren
Eine Untersuchung unseres tiefen Netzes
L1- und L2-Regularisierung
Weitere Möglichkeiten zur Regularisierung
Zusammenfassung
Praktische Übung: Weitere Regularisierungstechniken
Aktivierungsfunktionen
Wozu Aktivierungsfunktionen gut sind
Die sigmoide Aktivierungsfunktion und ihre Auswirkungen
Verschwindender Gradient
Alternativen zur Sigmoidfunktion
Gestatten, die ReLU-Aktivierungsfunktion
Die richtige Funktion auswählen
Weitere Techniken
Bessere Gewichtsinitialisierung
Gradientenabstieg auf Speed
Regularisierung für Fortgeschrittene
Batchnormalisierung
Zusammenfassung
Praktische Übung: Die 10-Epochen-Aufgabe
19 Jenseits von Standardnetzen
Der CIFAR-10-Datensatz
Was ist CIFAR-10?
Das CIFAR-Waterloo
Die Bausteine von Faltungsnetzen
Ein Bild ist ein Bild
Faltung
Konvolutionsschichten
Ein Faltungsnetz ausführen
Zusammenfassung
Praktische Übung: Massenweise Hyperparameter
Der Aufstieg des Deep Learning
Es braut sich etwas zusammen
Der Wendepunkt
Fortsetzung folgt
Unverhältnismäßige Effektivität
Was nun?
Maschinelles Sehen
Sprache
Bildgenerierung
Das Gesamtbild
Praktischer Einstieg
Sie sind am Zug
Wie sieht Python-Code aus?
Dynamische Typisierung
Einrückungen
Die Bausteine von Python
Datentypen und Operatoren
Datenstrukturen
Strings
Schleifen
Funktionen definieren und aufrufen
Schlüsselwortargumente
Standardargumente
Module und Pakete
Module definieren und importieren
Das __main__-Idiom
Pakete verwalten
Objekte erstellen und verwenden
Das war’s