Deep Dive in das fastai Deep Learning Framework

Wie im fastai Framework Learner, Optimizer und verschiedene Architekturmodelle wie CNNs oder UNET umgesetzt sind.

Ratings: 5.00 / 5.00




Description

Dieser Spezialkurs widmet sich ganz den Details im fastai deep learning Framework.

Mit dem fastai Deep Learning Framework haben wir ein sehr durchdachtes und einfach zu verwendendes Framework, das auf dem PyTorch Framework aufsetzt an der Hand.

Viele Standardprobleme können mithilfe von fastai in nur wenigen Zeilen Code so gelöst werden, dass wir state-of-the-art Ergebnisse mit nur sehr kurzen Trainingszeiten erhalten.

In diesem Kurs steigen wir jedoch eine Stufe hinab und sehen uns an, wie diese einfachen Dinge im fastai Framework implementiert sind. Wir analysieren den Sourcecode und programmieren wesentlichen Elemente, die zum Aufbau eines tiefen neuronalen Netzes erforderlich sind nach.

Wesentliche Elemente, denen wir uns in diesem Kurs zu künstlicher Intelligenz und Deep Learning widmen:

  • Aufbau des CNN-Learners (für Convolutional Neural Networks) in fastai

  • Einsatz des UNET-Learners

  • Umsetzung des Siamese Twin Problems mithilfe von fastai

  • Aufbau des Trainingsprozesses im Fastai Framework

    • Implementieren von SGD - Stochastic Gradient Descent

    • Optimierungen von SGD wie Momentum und Weight Decay

    • Alternative Optimizer für Deep Learning wie Adam oder RMS Prop

  • Die Umsetzung des Callback-Patterns im Fastai-Framework

    • Wie werden Callbacks zur Individualisierung des Trainingsprozesses neuronaler Netze in fastai verwendet?

    • Wie können wir mithilfe von Callbacks einen individuellen Trainingsprozess für unsere KI-Algorithmen in Fastai umsetzen?

  • Die Mid-Level API von Fastai

    • Die Mid-Level API von Fastai bietet uns die Möglichkeit, fastai für individuelle Programmierungen aus dem Bereich deep learning einzusetzen.

    • Mithilfe der Mid-Level API können wir Fastai individuell an unsere Daten und unsere Aufgabenstellung anpassen

    • Wir programmieren das Siamese-Twins Problem mithilfe der Mit-Level-Api

Welche Bedeutung kommt Optimizern bei der Implementierung von Algorithmen zu künstlicher Intelligenz zu? Tiefe neuronale Netze (deep neural networks) stellen heute sozusagen das Schweizer-Taschenmesser im Algorithmen Werkzeugkasten für Machine Learning dar. Mithilfe von neuronalen Netzen lassen sich nahezu alle Probleme aus dem Bereich künstlicher Intelligenz mit überzeugender Genauigkeit (accuracy) lösen.

Doch insbesondere das Training von besonders tiefen neuronalen Netzen stellt ein Kernelement der Programmierung von deep learning Modellen im Umfeld künstlicher Intelligenz dar. Hier zeigte die Forschung und Wissenschaft in den vergangenen Jahren die Wichtigkeit von Optimizern auf und präsentierte mit Konzepten wie RMS Prop oder Adam Optimizer zwei Varianten, die sowohl die Trainingsgeschwindigkeit, wie auch die Genauigkeit der Ergebnisse von (tiefen) neuronalen Netzen erhöhten.

Die wohl bekannteste Optimizer Algorithmus im Umfeld künstlicher Intelligenz ist SGD (Stochastic Gradient Descent). SGD stellt sozusagen die Basis für das Training neuronaler Netze dar. Als Gradient wird allgemein die Steigung einer Funktion bezeichnet. Descent steht für "Absteigen". Stochastic Gradient Descent bedeutet also, stetig entlang des stärksten Gefälle heruntersteigen. Bei der linearen Regression etwa, wollen wir die Summe der Quadrate der "Residuals" minimieren. Wir wissen, dass eine Funktion dort ein Minimum aufweist, wo die erste Ableitung (=Steigung) gleich 0 ist. Auf diese Weise kann das Problem der linearen Regression gelöst werden und der Vektor mit den Gewichten berechnet werden.

(Stochastic) Gradient Descent ist also ein iterativer Algorithmus, der an einem zufälligen Punkt der Funktion beginnt und weiter talwärts entlang der höchsten negativen Steigung optimiert. Solange, bis er an einem Minimum angelangt ist.

Ein anderer bekannter Optimizer ist der Adam Optimizer: Adaptive Moment Estimatiion. Die Kernidee von Adam besteht in der Kombination unterschiedlicher Optimizertechnologien für neuronale Netze.

Adam verwendet - ähnlich wie der Momentum Optimizer - exponential weight decay über den gleitenden Mittelwert der Gradienten. Die Richtung der Parameter Aktualisierungen wird auch beim Adam Optimizer in ähnlicher Weise berechnet. Ebenso setzt Adam auf exponential weight decay über den Mittelwert der Gradienten zum Quadrat, um adaptive learning rates zu berechnen.

Die Idee zu RMSProp lieferte Geoffry Hinton in seinem online Kurs "Neural Networks für Machine Learning". RMSProp setzt auf das Konzept einer adaptiven Learning Rate für die unterschiedlichen Trainingszyklen von neuronalen Netzen. Obwohl RMSProp nicht wirklich öffentlich publiziert wurde, erfreut sich der Optimierungsalgorithmus für neuronale Netze hoher Bekanntheit und Beliebtheit in der künstlichen Intelligenz Community. Das Zentrale Anliegen der Optimierung mittels RMSProp Algorithmus liegt in der Auflösung des Problems einer hohen Varianz und Standardabweichung der Werte der Gewichte.

Um die Details der verschiedenen Optimizer Algorithmen für (tiefe) neuronale Netze - deep neural networks - genauer kennenzulernen, implementieren wir in diesem Kurs die wesentlichen Passagen mit reinem Python Code nach und erleben auf diese Weise die vielfältigen Optimierungen für Algorithmen und Training künstlicher Intelligenz im fastai Framework.

What You Will Learn!

  • Du lernst, wie ein CNN-Learner für Convolutional Neural Networks im fastai Framework funktioniert.
  • Du lernt die UNET-Architektur kennen und kannst den UNET-Learner aus dem fastai Framework für deine eigenen Modelle einsetzen.
  • Mithilfe des Wissens über Deep Learning Modelle in fastai kannst du ein Siamese-Twins Modell implementieren
  • Du lernst mehr über den Ablauf des Trainings eines neuronalen Netzes kennen.
  • Du programmierst deinen eigenen Optimizer für das neuronale Netz.
  • Du optimierst deinen Stochastic Gradient Descent Optimizer mithilfe von Moment und Weight Decay
  • Du lernst die Funktionsweise von Adam- und RMS Prop Optimizer kennen.
  • Wir zeigen dir, wie Callbacks in fastai integriert sind und wie du diese verwenden kannst, um den Trainingsprozess zu modifizieren.
  • Du lernst die Mid-Level Api von fastai kennen und programmierst damit eigene Transforms und Transformed-Lists

Who Should Attend!

  • Python Entwickler
  • Deep Learning Engineers, die sich intensiver mit dem fastai Framework auseinander setzen wollen
  • Am fastai Deep Learning Framework Interessierte