Detaillierte Informationen zum Seminar
Inhalte:
Willkommen und Organisatorisches
- Vorstellungsrunde der Teilnehmer
- Erwartungen der Teilnehmer an den Kurs
- Einführung in Jupyter Notebooks
- Nutzung von Cloud-Ressourcen für Berechnungen
Grundlagen von Maschinellem Lernen und Künstlicher Intelligenz (KI)
- Kurze Übersicht und historischer Hintergrund des Deep Learning
- Verständnis von KI, Deep Learning und Machine Learning
- Beispiele aktueller Deep Learning Algorithmen in marktüblichen Produkten
- Eigenständige Erstellung und Schulung eines grundlegenden neuronalen Netzes mit Keras
Daten Aufbereitung
- Effektive Vermeidung von Overfitting bei Machine Learning Algorithmen
- Strukturierung der Daten durch Trainings-Validierungs-Test Split zur Overfitting-Erkennung
- Optimale Datenvorbereitung durch Normalisierung und One-Hot Encoding
- Anwendung dieser Methoden auf den MNIST Datensatz
Multi-Layer-Perceptron (MLP) in Keras/Tensorflow (Neuronales Netz)
- Wichtige Elemente eines MLPs: Perceptron, Gewichtungen, Bias
- Einsicht in Non-linearities (Aktivierungsfunktionen)
- Einsatz von Softmax bei Klassifikationsaufgaben
Netzwerktraining und Anwendung auf neue Daten
- Auswahl passender Loss-Funktionen je nach Aufgabe
- Verständnis von Backpropagation: Anpassung der Gewichtungen
- Initiierung der Gewichtungen für reibungsloses Training
- Epochen und Batch-Size - Schlüsselparameter des Trainingsprozesses
- Interpretation des Outputs während des Trainings
- Einsatz des trainierten Modells für Vorhersagen auf neuen Daten
Convolutional Neural Network (CNN) - Teil I
- Erläuterung der Convolutional Layer (Faltungsschicht)
- Aufbau und Anwendung von Filtern
- Steuerung von Padding und Stride bei der Convolution
Convolutional Neural Network (CNN) - Teil II
- Optimierung der Anzahl an Channels und Filtern in der Faltungsschicht
- Einfluss von Bias in einem CNN
- Nutzung des Max-Pooling Layers für Dimensionalitätsreduktion
- Analyse der Lernprozesse in verschiedenen Ebenen eines CNNs
Keras Callbacks für optimales Training
- Implementierung und Einsatz von Keras Callbacks
- Speicherung von Modellgewichtungen und Architektur
- Frühzeitiges Beenden von Training mit Early Stopping
- Steuerung der Lernrate durch Learning Rate Scheduler
- Visualisierung des Trainingsverlaufs mit MlFlow
Bildklassifikation durch tiefe Netzwerke
- Einsatz des Softmax-Layers für Klassifikationsprobleme
- Berücksichtigung des Cross-Entropy Loss
- Einblick in bekannte Netzwerkarchitekturen: VGG-16 und AlexNet
- Anwendung von Regularisierungen: L2 Regularisierung, Drop-Out, Batch Normalisation
- Laden eines vortrainierten Modells für weitere Nutzung
Daten Einlesen mittels TF.Data
- Typischer Workflow für Datenverarbeitung mit tf.data
- Effiziente Verarbeitung großer Datensätze
- Beschleunigung des Einleseprozesses
Semi Supervised Learning (SSL) für breitere Anwendbarkeit
- Übersicht über Semi Supervised Learning Ansätze
- Einsatz des SimCLR Modells für Semi Supervised Learning
- Eigenständige Erstellung eines individuellen tf.keras Modells
- Nutzung des contrastive loss für Semi Supervised Learning
Best Practices für erfolgreiche Projekte
- Einführung in bewährte Vorgehensweisen bei neuen Deep Learning Aufgaben
- Hyperparameter Optimierung für optimale Modellleistung
- Optimierung des Modells nach dem Training für bestmögliche Ergebnisse
Feintuning und vortrainierte Netzwerke für bessere Ergebnisse
- Erläuterung weiterer etablierter Netzwerkarchitekturen: Inception-V3, ResNet
- Zugang zu existierendem Code für bereits trainierte Netzwerke
- Ausnutzung vortrainierter Netzwerke durch Feintuning und Transfer Learning
Zielgruppe:
ZielgruppeDiese Schulung bietet eine Einführung in Deep Learning / Künstliche Intelligenz und ist für Teilnehmer, die Neuronale Netze (Deep Learning Algorithmen) in Keras programmieren lernen möchten und einen Überblick über Möglichkeiten mit Keras zur Umsetzung von verschiedenen Neuronalen Netzwerken erhalten möchten.VoraussetzungenFür diese Künstliche Intelligenz Schulung werden gute Vorkenntnisse in einer anderen Programmiersprache oder erste Erfahrung mit Python vorausgesetzt. Es ist auch wichtig, Erfahrung im Umgang mit Daten zu haben. Zusätzlich haben sich folgende Kenntnisse als hilfreich erwiesen: das Schreiben einer Funktion in Python, das Laden von Python-Bibliotheken, das Schreiben einer for-Schleife oder das Zeichnen einer einfachen Grafik mit Matplotlib und Grundlagen in numpy. Es wird auch empfohlen, Grundlagen im Bereich der Statistik (Median, Mittelwert, Standardabweichung, Normalverteilung), Kenntnisse mathematischer Symbole und Begriffe wie das Summenzeichen, Integral, Funktion, Ableitung und Exponentialfunktion zu haben. Die Schulung verwendet Jupyter Notebook als Programmieroberfläche, die ohne Vorerfahrung genutzt werden kann. Es sind auch Englischkenntnisse (insbesondere im Verstehen von englischen Texten) sehr nützlich, da Python und die Internet-Dokumentationen auf Englisch sind. Daher werden die Folien im Kurs auch auf Englisch gehalten, während die Schulung selbst auf Deutsch ist.