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:
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.
Für diesen Kurs sind Basisprogrammierfertigkeiten in der Programmiersprache Python erforderlich. Zusätzlich sollten Basiskonzepte aus dem Bereich der künstlichen Intelligenz bekannt seinn.
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.
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.
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.
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.
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.
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.
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.