Читать книгу Machine Learning für Softwareentwickler - Paolo Perrotta - Страница 5

Inhalt

Оглавление

Danksagung

Wie um alles in der Welt ist so etwas möglich?

Über dieses Buch

Bevor wir beginnen

Teil 1Von null auf Bilderkennung

1 Einführung in Machine Learning

Programmierung und Machine Learning im Vergleich

Überwachtes Lernen

Die Mathematik hinter dem Zaubertrick

Das System einrichten

2 Ihr erstes ML-Programm

Die Aufgabenstellung

Pizzavorhersage mit überwachtem Lernen

Zusammenhänge in den Daten erkennen

Eine lineare Regression programmieren

Das Modell definieren

Eine Vorhersage treffen

Das Training implementieren

Los geht’s!

Bias hinzufügen

Zusammenfassung

Praktische Übung: Die Lernrate optimieren

3 Am Gradienten entlang

Unser Algorithmus bringt es nicht

Das Gradientenverfahren

Ein wenig Mathematik

Abwärts

Die dritte Dimension

Partielle Ableitung

Die Probe aufs Exempel

Probleme beim Gradientenverfahren

Zusammenfassung

Praktische Übung: Über das Ziel hinaus

4 Hyperräume

Noch mehr Dimensionen

Matrizenrechnung

Matrizen multiplizieren

Matrizen transponieren

Das ML-Programm erweitern

Die Daten aufbereiten

Die Vorhersagefunktion anpassen

Die Verlustfunktion anpassen

Die Gradientenfunktion anpassen

Der Code im Ganzen

Bye-bye, Bias!

Ein letzter Testlauf

Zusammenfassung

Praktische Übung: Statistik in der Praxis

5 Ein binärer Klassifizierer

Grenzen der linearen Regression

Invasion der Sigmoiden

Konfidenz

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

13 Das Mini-Batch-Verfahren

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

14 Die Kunst des Testens

Die Gefahr der Überanpassung

Das Problem mit dem Testdatensatz

Zusammenfassung

Praktische Übung: Überlegungen zum Testen

15 Entwicklung

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

Teil 3Deep Learning

16 Tiefere Netze

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

17 Überanpassung vermeiden

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

18 Tiefe Netze zähmen

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

20 Der Weg in die Tiefe

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

Anhang

A Grundlagen von Python

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

B Wörterbuch des Machine Learning

Stichwortverzeichnis

Machine Learning für Softwareentwickler

Подняться наверх