Was ist Deep Learning? Definition und wichtigste Anwendungen




Was ist Deep Learning?

Deep Learning ist ein Teilbereich des Machine Learnings (Deutsch: maschinelles Lernen). Machine Learning ein ist ein Sammelbegriff für verschiedene statistische Algorithmen, die in Daten Muster erkennen können. Im Machine Learning geht es, vereinfacht gesagt, um die Wissenschaft den Rechner so zu programmieren, dass er von Daten lernen kann:


"Machine Learning is the science (and art) of programming computers so they can learn from data"


Aurélien Géron ("Hands-On Machine Learning with Scikit-Learn and TensorFlow")


In der klassischen Programmierung müssen die Daten und Bedingungen von einem Programmierer manuell eingegeben werden. Um beispielsweise einen Betrugserkennungsalgorithmus ohne Anwendung von Machine Learning zu schreiben, müsste eine Programmiererin ein Skript erstellen und die Bedingungen selbst vorgeben. Je mehr Werte zu beachten wären, desto länger würde das Skript. Benutzen wir jedoch Machine Learning, trainieren wir stattdessen einen Algorithmus, der auf der vorgegebenen Datenbasis diese Werte selbst erlernt.

Neuronale Netze – Perzeptron

Deep Learning basiert auf künstlichen neuronalen Netzen, die biologische neuronale Netze imitieren. Die Übertragung der Signale im menschlichen Gehirn basiert vereinfacht gesagt auf Neuronen, die über Synapsen elektrische Signale übermitteln. Diese Rolle übernimmt im Deep Learning das sogenannte Perzeptron (https://de.wikipedia.org/wiki/Perzeptron).


Multi-Layer Perzeptron Architekturen

Das sogenannte Perzeptron ist eine der einfachsten künstlichen neuronalen Netz-Architekturen. Ein einfaches Perzeptron reicht jedoch meist nicht aus, um komplexe Berechnungen durchzuführen. Damit Perzeptronen komplexe Zusammenhänge lösen können, werden sie sozusagen aufeinander gestapelt in sogenannte Multilayer Perzeptrone (mehrlagiges Perzeptron). Ein Multilayer Perzeptron besteht, wie der Name bereits sagt, aus mehreren Reihen solcher einfachen Perzeptronen (den sogenannten Hidden Layers).

Wenn ein Multilayer Perzeptron zwei oder mehr Hidden Layers beinhaltet, sprechen wir von einem Deep Neural Network.

Die Qualität der Verbindungen zwischen den Perzeptronen wird beim Deep Learning durch ihre Fehler bestimmt. Die Verbindungen, die die größten Fehler aufweisen, werden nach jeder Iteration schwächer. Auf diese Weise „lernt“ das künstliche neuronale Netz. Es stärk nur die Verbindungen, die die kleinsten Fehlerquoten haben.

Die grundlegende Struktur eines künstlichen neuronalen Netzes besteht aus mehreren Teilen: einem Input-Layer, mehreren Schichten von Hidden Layers sowie dem Output-Layer.


Backpropagation – „Antrieb“ der künstlichen neuronalen Netze

Das künstliche neuronale Netz (Deep Neural Network) funktioniert vereinfacht gesagt mit einem "Backpropagation" Algorithmus. Mit dem Backpropagation Algorithmus wird zunächst der Output des jeweiligen Neurons/Perzeptrons und allen nachfolgenden Layers berechnet. Danach wird der Output-Fehler des neuronalen Netzwerks berechnet und wieviel jedes einzelne Neuron dazu beigetragen hat.

Im ersten Schritt führt der Backpropagation-Algorithmus einen sog. Forward Pass durch: der Algorithmus macht eine Voraussage (Prediction) und berechnet ihren Fehler. Danach geht er durch jeden Layer der Perzeptronen, beginnend mit dem Output Layer und berechnet den Fehler-Beitrag eines jeden Perceptrons in dem jeweiligen Layer, bis der Input Layer erreicht wird (Reverse Pass). Am Ende werden die Gewichtungen der Verbindungen angepasst, um den Fehler zu reduzieren.


Pre-Trainierte Neurale Netze – Transfer Learning

Diese Vorgehensweise klingt recht kompliziert. In der Praxis werden aber künstliche neuronale Netze selten vollständig trainiert. Üblich ist insbesondere im Bilderkennungsbereich die Verwendung bereits vortrainierter Netzwerke, die dann für die eigene Anwendung weiter trainiert werden (das sogenannte Transfer Learning).

Die vortrainierten Modelle (wie zum Beispiel AlexNet (https://pytorch.org/hub/pytorch_vision_alexnet/) sind von Vorteil, denn sie wurden an sehr großen Datenmengen vortrainiert. Dies spart Speicherkapazitäten und Zeit. Solche vortrainierten Modelle sind auch sehr zuverlässig in ihren Ergebnissen.

In den gängigen Python Bibliotheken für Deep Learning gibt es ausführliche Tutorials zum Einsatz solcher vortrainierten Modelle sowie anderer Deep Learning Anwendungen.

Tutorial für PyTorch: https://pytorch.org/tutorials/

Tutorial für TensorFlow: https://www.tensorflow.org/tutorials

Die Einzelheiten zu PyTorch und Tensor Flow als Deep Learning Bibliotheken wurden bereits im Beitrag: „Die wichtigsten Python - Bibliotheken für Machine Learning“ (Link zum Beitrag zu Python Bibliotheken) besprochen.


Overfitting mit Neuronalen Netzen

Die Popularität von künstlichen neuronalen Netzen ist in den letzten Jahren massiv gestiegen. Parallel dazu wurden auch Anwendungen entwickelt, die den Einsatz von Deep Learning vereinfachen.

Diese Entwicklung bringt allerdings auch einige Gefahren mit sich. Eines der häufigsten Probleme in diesem Zusammenhang ist das sogenannte Overfitting (auf Deutsch Überanpassung). Diese bewirkt, dass ein Deep Learning Modell zwar sehr schön unsere Trainingsdaten abbildet, in der Praxis jedoch keine guten Vorhersagen liefert. Es ist auf die reale Welt somit nicht wirklich übertragbar. Um dieses Problem zu erkennen und zu beheben sind statistische Kenntnisse von Vorteil. Ohne diese Kenntnisse kann die einfache Anwendbarkeit von Deep Learning Modellen schnell zum Nachteil werden.


Deep Learning Anwendungen in der Praxis

Es gibt inzwischen sehr viele Bereiche, wo Deep Learning zur Anwendung kommt bzw. seine Anwendung erforscht wird. Nicht überall lohnt sich diese Anwendung jedoch, denn Deep Learning Modelle verbrauchen große Mengen an Rechenpower.

Bilderkennung (Image Recognition)

Die grundlegendsten Anwendungen im Bereich Deep Learning basieren auf der Bilderkennung.

Im Gesundheitswesen werden auf Deep Learning basierende Algorithmen insbesondere bei der Tumorerkennung erforscht und eingesetzt. Eine der populärsten Anwendungen sind Screenings auf maligne Hautmelanome (https://www.nature.com/articles/nature21056). Hier werden die Bilder der Muttermale auf ihre Bösartigkeit hin untersucht. Auch im Bereich der Brustkrebserkennung (Mammografie) werden erste Anwendungen vorgeschlagen (https://www.nature.com/articles/s41598-019-48995-4).

In der Landwirtschaft wird die Bilderkennung dazu genutzt, um Satellitenbilder von Agrarflächen auszuwerten, um beispielsweise besonders von Dürren bedrohte Gebiete zu identifizieren. Auch werden Versuche unternommen auf dieser Basis die jeweiligen Erträge zu berechnen.

Andere kommerzielle Beispiele von Deep Learning sind diverse Apps, die u.a. Blumen- oder Pilzsorten klassifizieren und erkennen können.

Bilderkennung mit Hilfe von Deep Learning wird auch im Bereich autonomes Fahren stark genutzt (https://www.spiegel.de/auto/aktuell/kuenstliche-intelligenz-wie-autos-durch-neuronale-netze-das-fahren-lernen-a-1132759.html). Hier werden, anhand von großen Datenmengen, die Rechner trainiert, um verschiedene Gegenstände auf der Straße zu erkennen.


Natural Language Processing

Im Bereich der Sprachbearbeitung wird Deep Learning auch sehr intensiv genutzt. Die Datenmengen, mit denen im Bereich Sprache gearbeitet wird, sind üblicherweise massiv. Aus diesem Grund ist Deep Learning hier eine sinnvolle Lösung.

Zu den Anwendungen in diesem Bereich gehören Sprachassistenten, Chatbots, aber auch Suchmaschinen.

Mit Hilfe von künstlichen neuronalen Netzen können diverse Anwendungen auf sehr großen Mengen an Textdaten trainiert werden. Das jüngste Beispiel ist hier das GPT-3 (https://openai.com/blog/openai-api/ ) von OpenAI. Das GPT-3 erlaubt uns sehr komplexe und anspruchsvolle Texte zu generieren, die sich kaum noch von menschengeschriebenen Texten unterscheiden.


Zusammenfassung

Aufgrund seiner Leistungsfähigkeit wird Deep Learning zunehmend im KI-Bereich genutzt. Gute Ergebnisse werden insbesondere im Bereich Bilderkennung und Natural Language Processing erreicht. Dies liegt insbesondere an den großen Datenmengen, die für das Trainieren der Algorithmen in diesen Bereichen verfügbar sind.


Der Vorteil kann allerdings auch schnell zum Nachteil werden. Da Deep Learning große Rechenpower benötigt und zum Overfitting neigt, ist seine Anwendung nicht immer empfehlenswert. Die meisten Probleme sind auch mit den gängigen Machine Learning Algorithmen gut oder besser lösbar. Es muss nicht immer Deep Learning sein.

StartBoosters GmbH

Platz der Ideen 1

40476 Düsseldorf

E: kontakt@startboosters.de

T: 0211 975 32 677

  • Twitter
  • LinkedIn
  • Facebook