Habt ihr euch schon mal gefragt, wie ein Computer auf einem Bild zwischen Katze und Hund unterscheiden kann? Häufig steckt dahinter die Technologie Deep Learning. Dabei handelt es sich nicht um eine neue Entwicklung. Die Technologie existiert nämlich bereits seit den 60er Jahren. Jedoch gewinnt sie in heutiger Zeit immer mehr an Relevanz. Der Grund dafür ist, dass die Rechenleistung von Computern immer weiter steigt und auch vorhandene Datenmengen immer größer werden.

In diesem Blogbeitrag wollen wir euch nun eine Einführung in das Thema Deep Learning geben. Wir zeigen euch, wie es funktioniert und welche weiteren Anwendungsfälle es neben der Unterscheidung zwischen Hund und Katze noch gibt.

Was ist Deep Learning?

Bei Deep Learning handelt es sich um einen Teilbereich des Machine Learning. Es zählt somit zu einer Technologie der künstlichen Intelligenz. Dabei werden tiefe Künstliche Neuronale Netze (KNN) – angelehnt an menschliche Nervenzellen im Gehirn – verwendet. Diese werden anhand von Beispieldaten trainiert, um ein Modell für die Daten abzuleiten. Einfacher ausgedrückt kann man auch sagen, dass das Modell anhand von Beispielen Fähigkeiten erlernen kann. Durch das Modell ist es letztendlich möglich Entscheidungen oder Prognosen anhand neuer Daten zu erstellen.

Deeplearning

Soll das Deep Learning Modell eine Fähigkeit in all ihren Facetten lernen, ist es notwendig, dass möglichst viele Datensätze oder Beispiele vorhanden sind. Dadurch bietet sich die Verwendung von Deep Learning in Kombination mit Big Data an, da hier enorm große Datenmengen bereitstehen, anhand derer das Modell lernen kann.

Nur damit ihr ein Gefühl für die Größe solcher Datensätze bekommt: Der TensorFlow Datensatz zur Unterscheidung zwischen Katze und Hund ist mit 23.000 Bildern noch ein relativ kleiner Datensatz, verglichen mit beispielsweise dem ImageNet Datensatz mit rund 14 Millionen Bildern.

Deep Learning vs. klassisches Machine Learning

Wie bereits im vorherigen Abschnitt erwähnt, ist Deep Learning eine Teildisziplin des Machine Learning. Jedoch lassen sich bestimmte Unterschiede zwischen Deep Learning und den klassischen Machine Learning Methoden definieren.

Unter den klassischen Machine Learning Methoden verstehen wir Methoden des Machine Learning, die keine Künstlichen Neuronalen Netze verwenden. Das sind beispielsweise Methoden, wie die Regressionsanalyse oder Entscheidungsbäume.

Der Hauptunterschied zwischen klassischem Machine Learning und Deep Learning besteht jedoch in der Art der Daten, die die Methoden verarbeiten können. So sind für klassisches Machine Learning strukturierte Daten notwendig. Wenn sie nur in unstrukturierter Form vorliegen, müssen sie erst von einem Menschen in strukturierte Daten transformiert werden.

Ein KNN kann jedoch lernen aus jeder Art von Daten die notwendigen Informationen zu extrahieren. Wohingegen Deep Learning tendenziell mit allen Daten(arten) arbeiten kann. Wenn ihr mehr über strukturierte und unstrukturierte Daten erfahren möchtet, schaut euch unseren Blogbeitrag „Automatisierte Datenverarbeitung – Was sind strukturierte und unstrukturierte Daten?“ an.

Die Hauptunterschiede zwischen Machine Learning und Deep Learning sind also folgende:


Deep Learning und Neuronale Netze

Künstliche Neuronale Netze bilden die Grundlage für alle Deep Learning Modelle. Doch was sind KNN überhaupt und wie sind sie aufgebaut?

Künstliche Neuronale Netze bestehen grundlegend aus verschiedenen Schichten. Jede einzelne dieser Schichten besteht aus mehreren gleichartigen Neuronen, die eine Analogie zu den Nervenzellen im menschlichen Gehirn darstellen. Es wird hier zwischen Eingabeschicht, Ausgabeschicht und verborgenen Schichten unterschieden. Die Eingabeschicht erhält die Eingabe für das Modell, beispielsweise ein Bild mit einer Katze. Die verborgenen Schichten errechnen dann anhand der eingegebenen Daten Zwischenwerte, woraus die Ausgabeschicht das Ergebnis für die eingegebenen Daten bestimmt.

Die Verbindungen zwischen den Schichten im Künstlichen Neuronalen Netz definieren dessen Architektur. Je mehr Verbindungen zwischen Schichten existieren, desto komplexer wird die Architektur und somit auch das Modell.

Bei der Verwendung von vielen verborgenen Schichten im Modell spricht man von tiefen Künstlichen Neuronalen Netzen. Daraus leitet sich die englische Bezeichnung „Deep Learning“ ab.

So funktioniert Deep Learning

Deeplearning
Es gibt im Allgemeinen zwei Best Practice Ansätze, wie du ein Deep Learning Modell trainieren kannst:

Hier erstellen Entwickler*innen ein Modell, dessen Parameter entweder alle null sind oder zufällig ausgewählt werden. Dieses Modell wird nun mit den eigenen Trainingsdaten trainiert und getestet und in einem iterativen Prozess immer wieder angepasst. Das geschieht so lange, bis die Performance zufriedenstellend ist, sodass die Entwicklungsdauer hoch sein kann. Das kann durchaus einen Nachteil darstellen, wenn schnell Ergebnisse erzielt werden müssen. Der Vorteil ist jedoch, dass das Ergebnis ein auf die Aufgabe abgestimmtes Modell ist.

Hier wird stattdessen ein vorhandenes Modell verwendet, welches bereits mit Daten für einen ähnlichen Zweck trainiert wurde. In manchen Anwendungsfällen ist es auch möglich ein Modell zu verwenden, das einen gänzlich anderen Zweck verfolgt.
Dieses vortrainierte Modell passt sich nun an die eigenen Datensätze an. Das geschieht, indem es mit den eigenen Datensätzen trainiert wird. Wie auch beim ersten Ansatz, können die Entwickler*innen während des Trainings das Modell sowie Trainingsparameter anpassen, falls die Performance nicht ausreichend ist. Der Vorteil ist, dass hierdurch viele Entwicklungsschritte am Anfang übersprungen werden können. So kann viel Zeit bei der Entwicklung gespart werden. Der Nachteil, der hierdurch entstehen kann ist, dass die Performance geringer ausfallen kann, als bei dem ersten Ansatz. Das Modell ist auch nach dem Anpassen an die eigenen Trainingsdaten nicht so stark auf das konkrete Problem spezialisiert, da der Zweck des Modells ursprünglich ein anderer war.

Nachdem ein Deep Learning Modell trainiert wurde, ist es bereit veröffentlicht zu werden. Dafür werden diese Modelle häufig auf Webservern ausgeführt und hinter einer API versteckt. An diese können Nutzer*innen Anfragen mit den notwendigen Eingabedaten für das Modell senden und erhalten als Antwort das vom Modell bestimmte Ergebnis.

Anwendungsbereiche

Deep Learning besitzt viele unterschiedliche Anwendungsbereiche, zu denen immer wieder neue hinzukommen.

Ein sehr bekanntes Beispiel sind diverse Sprachassistenten wie Siri oder der Google Assistant. Sie sind durch Deep Learning in der Lage Sprachbefehle zu verstehen und daraus kontextbasiert Aktionen auszuführen.

Ansonsten gibt es noch weitere Anwendungsbereiche, wie zum Beispiel:

  • Autonomes Fahren, beispielsweise bei den aktuellen Fahrzeugen von Tesla
  • Bilderkennung, wie bei der Bilderrückwärtssuche von Google
  • Maschinelle Übersetzungen, wie der Google Übersetzer oder DeepL

Ausblick

In diesem Blogartikel konnten wir euch lediglich einen kleinen Überblick über das komplexe Thema Deep Learning geben. Es gibt noch viele weitere Aspekte, die wir hier noch nicht betrachtet haben. Zum Abschluss möchten wir noch paar Tipps mit euch teilen:

  • Wenn ihr gerne einen mathematischen Einblick zu Deep Learning erhalten möchtet, dann können wir euch das Standard Werk zu Deep Learning von Goodfellow, Bengio und Courville empfehlen: https://www.deeplearningbook.org.

  • Ein weiteres spannendes Thema ist die Anwendung von Deep Learning in Bereichen, in denen es aufgrund von hohen Kosten oder hohem Zeitaufwand nicht möglich ist, große Datenmengen zu generieren. Hier kommen häufig Technologien der Datenaugmentierung zum Einsatz. Diese haben den Zweck die Datenmenge auf Basis der vorhandenen Daten künstlich zu vergrößern, indem neue Daten generiert werden. Werden beispielsweise Bilder als Trainingsdaten verwendet, gibt es die Möglichkeit im Rahmen der Datenaugmentierung diese Bilder zu drehen oder zu spiegeln und dadurch neue Datensätze aus den vorhandenen zu erzeugen.

Deep Learning Modelle werden mit besserer Hardware immer leistungsfähiger werden. Deswegen können wir davon ausgehen, dass in den nächsten Jahren immer mehr Anwendungsfälle für Deep Learning gefunden werden und Deep Learning immer weiter in unser Leben tritt. Wir können mit Spannung beobachten, welche neue Anwendungsweisen für Deep Learning auf uns zu kommen und wie sie unser Leben verändern und beeinflussen werden.