Deep-Fake Videos bekannter Politiker, lernende Super Marios, übersetzte Webseiten und automatisierte Landwirtschaft: Kaum ein anderes Feld hat in so kurzer Zeit einen solch rasanten Aufstieg erfahren und Einzug in alle Ausprägungen dieser Welt erreicht, wie das Thema Deep Learning.
Akademisch interessant, wie auch direkt praktisch anwendbar, scheint die heutige Vermarktung und Berichterstattung sich auf die neue Allzweckwaffe eingeschossen zu haben. Aber was ist dran an dem Ding? Was ermöglicht uns dieser moderne Forschungsbereich, welcher schon Turing-Preisträger, aber noch keinen bestandenen Turing-Test hervorgebracht hat? Und wo fange ich überhaupt an?
Mit diesem Blogbeitrag möchte ich einen kleinen Überblick darüber verschaffen, was verschiedene Deep Learning Modelle und Ansätze heutzutage leisten können und wie der Einstieg auch auf technischer Ebene gelingt.
Schritt für Schritt zum Optimum
Nach dem ersten erwartungsvollen “AI Boom” in den 1950er Jahren und dem resultierenden “AI Winter” der 60er und 70er Jahre, sind es vor allem einige Schlüsselpublikationen, Fortschritte im Bereich GPUs (Grafikkarten) und eine schiere Flut an Daten, welche das heutige Deep Learning ermöglicht haben. Unabhängig von der Modellart und -architektur bilden diese das Fundament aller Neuronalen Netze, sei es zur Bildverarbeitung, Text- und Zeitreihenanalyse oder das selbstständige Lernen via Deep Reinforcement Learning.
Sind die Grundkonzepte, welche nicht über angewandte Schulmathematik hinausgehen, einmal verstanden, so wird einem diese Arbeit auch prompt durch extrem mächtige Programmier-Frameworks wie TensorFlow und Keras abgenommen. Diese abstrahieren den Entwurf und das Training Neuronaler Netze so sehr, dass der ganze Prozess trügerisch einfach wirkt. Die Anzahl an Einstellungen und Stellschrauben, Hyperparameter genannt, ist bei Neuronalen Netzen jedoch enorm, besonders wenn man bereits in 10-12 Zeilen Code ein anwendbares Deep Learning Modell erstellen kann. Somit konzentriert sich die Hauptaufgabe eines Data Scientists auf den Entwurf der Modelle und die Suche nach den optimalen Hyperparametern; ein Vorgang, der geprägt ist von theoretischem Wissen, aber vor allem von Erfahrungswerten.
Ein Workshop für alle Fälle
Zum Thema Deep Learning gibt es online unzählige Ressourcen, wie Medium Artikel, Reddit Diskussionen und MOOCs. Obwohl hier viele Aspekte des Themas behandelt werden, sind diese Ressourcen oftmals nicht ausreichend, um für die Anwendung von Deep Learning auf reale Daten und Probleme gewappnet zu sein. Daher haben wir bei STATWORX uns dazu entschlossen, unsere Erfahrung und unser Wissen in einem umfassenden Grundlagen-Workshop zu bündeln: dem Deep Learning Bootcamp.
Hierbei war es uns überaus wichtig, das komplexe Thema zugänglich zu gestalten, einen roten Faden zu haben und dabei trotzdem alles Aufregende abzudecken. Keine leichte Aufgabe, bei dem spannenden Überangebot an Deep Learning Anwendungen. Möchte ich den Inhalt von Texten schneller bestimmen als es ein Mensch könnte, einem Bild meines Lieblingspromis einen Bart wachsen lassen oder doch eher einen Zahlungsdienstleister beim Erkennen von Kreditkartenbetrug unterstützen? All das ist theoretisch mit Deep Learning möglich. Da sich viele Anwendungsfälle und Vorgehensweisen sehr ähneln ist es für das eigene Verständnis und das Identifizieren von Geschäftsfällen entscheidend, solides Grundlagenwissen sowie einen guten Überblick zu bekommen. Im Workshop beschäftigen wir uns mit einer Vielzahl an Fragen, damit unsere Teilnehmenden die verschiedenen Teilbereiche des Deep Learning kennenlernen können. Dazu gehören folgende Fragestellungen:
- Wie verwende ich ‚normale‘ Neuronale Netze (Multilayer Perceptrons), um den Preis eines Hauses vorherzusagen oder Anomalien in meinen Daten zu erkennen? Egal ob in der Finanzbranche, beim Bereinigen von Sensordaten oder für den Einzelhandel.
- Was ermöglichen mir Convolutional Neural Networks in der Bilderkennung? Wenn ich beim Klassifizieren von Bildern Hunde, Katzen, Flugzeuge usw. erkennen kann, wie übertrage ich das Ganze auf mein Geschäftsfeld. Zum Beispiel könnten Fehler in der Fertigung erkannt oder der Zustand von Feldern überwacht werden?
- Wie wende ich rekurrente neuronale Modelle an, um mit sequenziellen Daten umzugehen? Wie unterscheidet sich die Analyse von Finanzmarkt- oder Maschinendaten vom Umgang mit Texten, um ein gutes Bewerbungsanschreiben von einer Spamnachricht zu unterscheiden?
- Wie kann ich mit den gleichen Reinforcement Learning Algorithmen, die den Computer ein Videospiel meistern lassen, mittels Deep Q-Learning Prozesse in Echtzeit optimieren, wie zum Beispiel in einem chemischen Reaktor?
Erfahrungswerte & Best Practices
Aus technischer und theoretischer Sicht sind die Unterschiede zwischen den jeweiligen Anwendungsfällen der einzelnen Modellarten teilweise erschreckend gering. Im Umkehrschluss ist der Lerneffekt und die Übertragbarkeit jedoch enorm. Der einzige Haken ist, dass es selten Faustregeln oder einen Leitfaden gibt, welche einem das beste Modell oder die besten Hyperparameter liefern.
Hier offenbart sich die Komplexität der Deep Learning Modelle. Aufgrund des hohen Berechnungsaufwands ist das Ausprobieren aller oder vieler Einstellungen nicht plausibel. Somit rücken persönliche Erfahrungswerte, Best Practices und empirische Erkenntnisse in den Vordergrund. Während diese in einigen Online-Ressourcen zwar implizit enthalten sind, sind wir (und das Feedback der Teilnehmer) der Meinung, in unserem Kurs einen wesentlichen Mehrwert bieten zu können. Als Data Scientists, die jährlich an einer Vielzahl an Projekten arbeiten, übermitteln wir zu den Grundlagen auch gerne unsere eigenen Erfahrungen und (schmerzlichen) Lessons Learned.
Interesse am Deep Learning Bootcamp?
Falls wir Euer Interesse wecken konnten, dann schaut Euch doch mal unseren detaillierten Kurs Plan an oder schreibt uns eine Nachricht, falls ihr in einem Workshop gemeinsam mit uns einen Prototypen entwickeln möchtet! Ansonsten wünschen wir jedem einen spannenden und guten Einstieg in die Welt des Deep Learning, man sieht sich auf Stack Overflow. Mehrmals. Täglich…