Der dritte Teil aus der Reihe "Welcome 2 KI" bringt uns zur Entwicklung von künstlicher Intelligenz mittels Deep Learning Techniken. Zum Einsatz kommen PyTorch und das darauf aufbauende fastai Framework.
Lerne, wie du mit fastai und PyTorch mit nur 8 Zeilen Code einen state-of-the-art Bildklassifizierer bauen kannst!
Wir lernen die kostenfreie Entwicklungsumgebung für Deep Learning von google: colab Notebooks kennen. Auf diese Weise können wir sehr einfach mit einer kostenfreien GPU arbeiten.
Im Anschluß entwickeln wir eine eigene Deep Learning Applikation und arbeiten den gesamten Prozess end-to-end bis zur Erstellung eines User-Interfaces für unsere Deep Learning Anwendung durch.
Neben den Techniken und der geschichtlichen Entwicklung von neuronalen Netzen, besprechen wir das Thema Data Augmentation.
Wie können wir aus einem beschränkten Datenset ein größeres machen und warum macht der Einsatz von verschiedenen Data Augmentation Techniken Sinn? Wie unterstützt uns fastai und PyTorch bei der Data Augmentation?
Wir stellen unser eigenes Trainingsdatenset automatisiert zusammen,
bauen ein Deep Learning Modell mithilfe neuronaler Netze,
testen unser Modell mit einem Validierungsdatenset und
Deployment unser Modell als Webapplikation kostenfrei im Internet
Danach gehen wir technisch in die Tiefe und implementieren sämtliche Schritte, die für das Trainieren eines Deep Learning Modells erforderlich sind mit reinem Python Code nach. Auf diese Weise verstehen wir die Zusammenhänge, was hinter den Kulissen einer künstlichen Intelligenz auf Basis von Deep Learning abläuft.
Was passiert genau während des "Lernens" unseres Modells?
Worin liegt der Unterschied zwischen der Metrik (zB Genauigkeit) unseres Modells und der Loss-Funktion (ZB Mean-Squared-Error). Warum benötigen wir beides?
Wie hilft uns ein Dataloader beim Umgang mit unseres Trainingsdaten?
Wie initialisieren wir die Gewichte (Parameter) in unserem neuronal Netz?
Was passiert während des Trainings mit den Gewichten des neuronalen Netzes?
Wie können wir PyTorch nutzen, um die Gradienten unserer Gewichte im neuronalen Netz zu berechnen?
Wir implementieren den Gradient-Descent Algorithmus "from-the-scratch" und
integrieren Mini-Batches, um zu Stochastic-Gradient-Descent zu gelangen.
Wir implementieren unseren eigenen Optimizer für die Verwendung mit PyTorch.
Warum benötigen wir "Nicht-Linearität", um ein komplexes neuronales Netz aufbauen zu können?
Was genau ist eine "Aktivierungsfunktion" wie zB. ReLU (Rectified Linear Unit)?
Wie kann ich mithilfe der Confusion Matrix das Ergebnis meines Modells bewerten?
Wie funktioniert ein Multi-Label Klassifizierer?
Sämtlicher Code, der im Kurs besprochen wird, ist via github verfügbar und kann direkt in google colab geöffnet und ausgeführt werden. Der Link zum Kurs-Repository befindet sich direkt in den Kursressourcen.
Dies ist nicht der Machine Learning Kurs von jannis seemann - es werden aber vergleichbare Inhalte vermittelt. Allerdings unter Verwendung von PyTorch und fastai.