ai-academy

welcome2ki Teil 3 - Deep Learning Projekte selbst umsetzen

Der KI-Kurs für Coder! Wir implementieren mit nur 8 Zeilen Code einen state-of-the-art Bild-Klassifzierer. Natürlich schauen wir auch weiter in die Tiefe von deep learning hinab.

Was lerne ich in diesem Kurs?

Der Kurs welcome2ki Teil 3 - Deep Learning Projekte selbst umsetzen geht einen Schritt weiter in die Tiefe künstlicher Intelligenz. Wir folgen inn diesem Kurs einem Top-Down Ansatz. Das bedeutet, wir lösen mit einfachen Mitteln das Problem und gehen nach diesen Erfolgen weiter in die Tiefe.

Wir beginnen mit der Anwendung der Frameworks PyTorch und fastai in der Implementierung eines Bild-Klassifzierers. Diese Implementierung, die nur acht Zeilen Code benötigt liefert state-of-the-art Ergebnisse.

Danach gehen wir tiefer und analysieren, was das PyTorch Framework in der Tiefe macht. Wir implementieren die verschiedenen Layer, die uns das PyTorch Framework zur Verfügung stellt, selber nach und lernen auf diese Weise auch die Basics von deep learning und künstlicher Intelligenz.

Themenfelder in diesem Kurs:

  • Umsetzung eines Bildklassifizierers mit dem fastai Framework und PyTorch
  • Aufbau eines individuellen Bilddatensets für unser Deep Learning System
  • Implementierung eines individuellen Biildklassifizierers end-2-end. Wir generieren das Datenset, erstellen das Modell und fügen mit voila ein graphisches Userface hinzu. Im Anschluß erfolgt das kostenfreie Deployment im Web.
  • Wie kann ich vom dem Thema Data Augmentation profitieren? Wie hilft das fastai Framework bei kleinen Datensets?
  • Einsatz und Verwendung der google colab Plattform, um mithilfe einer kostenfreien GPU schnell neuronale Netze trainieren zu können.
  • Woher kommt die Idee neuronaler Netze? Wie sind neuronale Netze aufgebaut?
  • Worin liegt der große Vorteil von neuronalen Netzen?
  • Worin besteht der Unterschied zwischen einer Metrik und einer loss-Funktion?
  • Was ist das Approximations-Theorem? Etwas Mathematik, leicht verständlich erklärt.
  • In-Depth Analyse. Was passiert hinter den Kulissen von fastai? Wir implementieren sämtliche Schritte mit purem Python nach!
  • Warum kann ich Deep Learning Modelle auch für Datensets mit nur wenigen Elementen einsetzen?
  • Was genau bedeutet das Konzept “Transfer-Learning” und wie kann ich es für einen Bild-Klassifizierer nutzen?
  • Wie funktioniert der (Stochastic) Gradient Descent Algorithmus? Wie kann ich diesen mit reinem Python Code implementieren?
  • Was genau ist ein Multi-Label Klassifizierer und wie baue ich eine solche Architektur selbst mithilfe von PyTorch und fastai?
  • Was verbirgt sich hinter dem Begriff “Image Regression”?
  • Wir implementieren ein Modell, das die Koordinaten der Mitte des Gesichts auf einem Portraitfoto errechnet.

Für wen ist dieser Kurs interessant?

Dieser Kurs richtet sich an fortgeschrittene Personen, die die Grundlagen künstlicher Intelligenz beherrschen und nun selbst KI-Projekte implementieren möchten.

Wir werden in diesem Kurs viel Sourcecode schreiben und betrachten. Es geht hauptsächlich um das Tun und Implementieren. Wo erforderlich, werden wir zusätzliche theoretische Inputs parallel dazu besprechen.

Welche Vorkenntnisse sollte ich für diesen Kurs mitbringen?

Für diesen Kurs sind Basisprogrammierfertigkeiten in der Programmiersprache Python erforderlich. Zusätzlich sollten Basiskonzepte aus dem Bereich der künstlichen Intelligenz bekannt seinn.

Wie kann ich mich für den Kurs einschreiben?

Dieser Kurs ist wie alle anderen Kurse über die Plattform Udemy buchbar: welcome2ki-Teil-3-Deep-Learning-Projekte-selbst-umsetzen. Das bedeutet, dass Sie den Komfort der online-Kursplattform auch mit unseren Kursen im vollem Umfang nutzen können.

Wie lange habe ich Zeit, den Kurs zu absolvieren?

Der Kurs “Deep Learning Projekte selbst umsetzen” ist für Sie lebenslang zugänglich. Sie können den Kurs in Ihren individuellen Tempo absolvieren und auch nach erfolgreichem Abschluß jederzeit wieder auf die Unterlagen und Videos zugreifen.

Hintergrundinformationen zu diesem online Kurs

Wir geben hier einige Hinweise darauf, warum dieser Kurs relevante Themen addressiert und wie diese in den Kontext des übergeordneten Themas der künstlichen Intelligenz zu setzen sind.

Programmierung eines Bildklassifizierer mit fastai und PyTorch

Das deep learning framework fastai baut auf dem bekannten Rahmenwerk PyTorch für die Programmierung von KI-Systemen auf und ermöglicht eine rasche Umsetzung von state-of-the-art deep learning Modellen.

Wir programmieren exemplarisch ein KI-System, das in der Lage ist, die Inhalte von Bildern mithilfe künstlicher Intelligenz zu analysieren und unterschiedlichen Klassen zuzuordnen.

Für diese Anwendung künstlicher Intelligenz bauen wir ein eigenes Trainingsdatenset auf. D.h. wir überlegen, welchen Arten von Bildern wir benötigen und wie wir zu einer ausreichenden Anzahl an Trainingselementen kommen. Wir analysieren, wie groß dieses Trainingsdatenset sein muss, um einen KI-Algorithmus auf Basis neuronaler Netze (CNN - Convolutional Neural Network) ausreichend gut trainieren zu können.

Data Augmentation

In vielen Fällen haben wir nicht Möglichkeit, ausreichend viele Trainingsdaten zu erhalten oder wir haben schlichtweg nicht die Möglichkeit, unsere Trainingsdaten auch mit entsprechend vielen labels (also Werte für die abhängige Variable) zu annotieren.

Dann können wir unsere Trainingsdaten mithilfe von Data Augmentation anreichern und ausbauen. Wir erklären, welche Möglichkeiten uns das fastai Framework bietet, um Daten Augmentation anwenden zu können. Doch ist nicht alles Gold was glänzt und so müssen wir natürlich auch mögliche Einschränkungen bzw. Nachteile dieser Technik beleuchten.

Da wir unser Programmierbeispiel auf den Bereich Computer Vision eingrenzen, werden wir auch das Thema Data Augmentation vor diesem Hintergrund behandeln. Wir lernen die Standard Augmentation Techniken, wie geometrische Operationen (Flipping, Rotation, Translation, Cropping, Scaling) aber Farbtranspositionen (Veränderugen von Helligkeit und Kontrast, etc.) kennen.

Geometrische Transformationen als Mittel der Data Augmentation funktioniert gut, wenn die Position von verschiedenen Elementen im Bild eine wesentliche Rolle für die Analyse des Bildes darstellt. Dies ist etwa bei der Verarbeitung von Portraitdaten der Fall.

Die Data Augmentation Technik nimmt somit darauf Rücksicht, dass reale Bilder in der Regel aus verschiedenen Winkeln und Perspektiven angefertigt werden. Insbesondere, wenn wir durch Data Augmentation jedoch die Relationen innerhalb des Bildes verändern, müssen wir darauf Acht geben, nicht einen künstlichen Bias in unsere Trainingsdaten einzufügen. Auch in dieser Hinsicht bietet das fastai Framework effiziente Methoden, die die Funktionalität vom darunter liegenden PyTorch Framework noch deutlich steigern.

Google Colab zum Trainieren von Deep Learning Modellen

Ein wesentliches Thema bei tiefen neuronalen Netzwerken, wie etwas CNNs (Convolutional Neural Nets) ist die Möglichkeit, diese auch entsprechend performant trainieren zu können. Für dieses Training reicht eine CPU nicht aus - es wird ein spezieller Graphik-Prozessor, eine GPU (graphical processing unit) benötigt.

Solche leistungsfähigen Grafikkarten sind teuer und müssen auch auf dem lokalen System entsprechend eingerichtet und konfiguriert werden. Neben der Nutzung eines lokalen Systems gibt es auch verschiedene Cloud-Anbieter, die eine GPU-Rechenumgebung online zum Training unserer deep learning Modelle zur Verfügung stellen. Diese meist kostenpflichtigen Angebote sind jedoch auch nur für den produktiven Einsatz interessant.

Aus diesem Grund stellen wir die google colab Plattform vor, die uns einen kostenlosen Zugang zu einer online GPU zur Verfügung stellt. Da der Service kostenlos ist, müssen wir natürlich auch mit wenigen Einschränkungen leben. Wir stellen in diesem online Kurs zu künstlicher Intelligenz mit google colab auch ein entsprechendes Werkzeug vor, um rasch und günstig deep learning Prototypen umsetzen zu können.

Metrik vs. Loss-Funktion

Wesentliche Begriffe, die im Rahmen des Trainings von neuronalen Netzen und anderen machine learning sowie deep learning Modellen vorkommen, sind zum einen Metrik und zum anderen die Loss-Funktion.

Wir gehen in diesem Online Kurs auf beide Begriffe ein und stellen dar, wie die Loss-Funktion dem Modell hilft, immer bessere Prognoseergebnisse erzielen zu können und wie die Metrik dem menschlichen Entwickler eines KI-Systems bei der Interpretation des Trainingsfortschrittes hilft.

Die Metrik zeigt eine Maßzahl, die für einen menschlichen Anwender leicht zu interpretieren ist. Beispielsweise die Metrik “Genauigkeit” bzw. “accuracy” gibt an, wieviele der Trainingsdaten richtig klassifiziert wurden. Eine gute Metrik zu finden, ist Teil eines KI-Projekts, da auch die Metrik zum geplanten Einsatzzweck und dem Themengebiet passen muss. Beispielsweise bei Anwendungen künstlicher Intelligenz in der Medizin ist auch die Anzahl an falsch klassifizierten Elementen eine wesentliche Maßzahl.

Genauso wie die Metrik ist auch die Loss-Funktion von der Art der vorhandenen Daten für unser Machine Learning Modell abhängig. In diesem online Kurs zu künstlicher Intelligenz gehen wir auf die Anwendung und den Einsatz verschiedener Loss-Funktionen ein und zeigen, wie die entsprechenden Klassen aus dem fastai deep learning Framework verwendet werden können.