Optimierungsmethoden fürs Machine Learning/Deep Learning
In diesem Training geht es um die Optimierungsmethoden, die im Machine Learning und Deep Learning zum Einsatz kommen. Jedes tiefe neuronale Netz und allgemein jedes Modell muss trainiert werden, d.h., es werden anhand eines Trainingsdatensatzes die jeweiligen Modellparameter gelernt. Genau dieses Lernen erledigen die Optimizer – die Optimierungsmethoden im Hintergrund. Meist verwenden Anwender hier voreingestellte Verfahren wie "SGD", "RMSprop" oder "Adam" (bzw. korrekt: "AdaM"), ohne genau zu wissen, was diese eigentlich tun und welchen Einfluss diese Wahl hat.
Wir werden anhand einiger praktischer Beispiele verschiedene Methoden und ihre Parameter kennenlernen und ihren jeweiligen Einflüsse auf Trainingszeiten und auch die "Lernqualität" untersuchen – es geht nämlich um einiges mehr als nur um schnelleres Training.
Dazu verwenden wir Jupyter-Notebooks auf Google Colab mit Tensorflow und Keras. Die in der Agenda erwähnten Deep-Learning-Algorithmen – Autoencoder, RNNs und CNNs – sind Vorschläge, die wichtige Anwendungsgebiete abdecken. Wir werden sehen, wie viel wir schaffen und wo wir am meisten lernen, entdecken und natürlich optimieren können.
Vorkenntnisse
* Grundkenntnisse in Python und Jupyter
* Grundkenntnisse in Machine Learning/Deep Learning
* Praktische Erfahrungen im Trainieren von Neuronalen Netzen und Deep-Learning-Algorithmen sind hilfreich
* Besonderes mathematisches Know-how ist nicht erforderlich
Lernziele
* Unterscheidung der Begriffe Lernen - Trainieren - Optimieren
* Verständnis der Rolle von Optimierungsmethoden im Machine / Deep Learning
* Grundlegende Kenntnis der Funktionsweisen, Eigenschaften und Parameter ausgewählter Verfahren
* Hands-on-Kennenlernen des Potenzials "guter" Optimierungsverfahrens im Hinblick auf Trainingszeit und -ergebnis (Modellqualität)
* Viele praktische Experimente, Tipps und Tricks für den Trainingsalltag, ein Blick in den Maschinenraum des Machine Learning