Deep Learning – Neuronale Netze und mehr

29. März 2019

Der aktuelle Hype um Künstliche Intelligenz ist den jüngsten Erfolgen im Bereich des Deep Learnings zuzuschreiben. Deep Learning, auch künstliches neuronales Netzwerk genannt, ist ein Unterfeld der künstlichen Intelligenz, das sich auf die Gruppierung und Klassifizierung von Daten fokussiert. Im Jahr 2012 hat Deep Learning erstmalig andere Verfahren der Künstlichen Intelligenz in der Bildklassifizierung übertrumpft und 2015 sogar den Menschen. Doch wofür wird Deep Learning nun tatsächlich eingesetzt, wo ist sein Ursprung und vor allem: Wie funktioniert Deep Learning?

Überwachtes vs. nicht-überwachtes Lernen

Zunächst eine kurze Einordnung: Deep Learning lässt sich für überwachtes und nicht-überwachtes Lernen einsetzen. Überwachtes Lernen ermöglicht Daten zu klassifizieren, wenn für das Anlernen des neuronalen Netzes „gelabelte” Daten vorhanden sind. In Anwendung bedeutet das, dass für einen Datensatz, beispielsweise bestehend aus Hunde- und Katzenbildern, für jedes Bild die korrekte Bezeichnung vorhanden ist. In diesem Fall wären das die simplen Beschreibungen wie „Hund“ für Hundebilder und „Katze“ für Katzenbilder.

Nicht-überwachtes Lernen wird dann eingesetzt, wenn keine beschrifteten Daten vorliegen. Hier kann Deep Learning ein selbstständiges Clustering der Bilder vornehmen. „Clustering“ bedeutet, dass Bilder nur anhand von visuellen Merkmalen einer Gruppe bzw. Kategorie zugeordnet werden. Hierbei ist dem Algorithmus nicht bewusst, dass es Hunde oder Katzen auf den jeweiligen Bildern erkennt. Die Künstliche Intelligenz kann nur anhand von zahlreichen Vergleichen die Bilder unterscheiden und daraufhin Gruppen bilden. Neben diesen beiden Beispielen für überwachtes und nicht-überwachtes Lernen gibt es noch einige weitere Methoden wie z.B. Lineare Regressionen oder Dimensionsreduktion.

Biologische Neuronale Netze

Künstliche neuronale Netze sind inspiriert von biologischen neuronalen Netzen, sprich: unseren Gehirnen. Unser Gehirn besteht aus einer Vielzahl von Neuronen, welche untereinander durch Synapsen verbunden sind. Hierbei ist zwischen eingehenden und ausgehenden Verbindungen zu unterscheiden. Über die eingehenden Verbindungen erhält ein Neuron elektrische Signale von anderen Neuronen. Wenn die elektrische Ladung eine gewisse Grenze überschreitet, gibt das geladene Neuron wiederum ein elektrisches Signal als Entladung über seine abgehenden Verbindungen an andere Neuronen ab. Durch das so entstehende Zusammenspiel von Milliarden Neuronen ist der Mensch in der Lage, Sinneseindrücke zu verarbeiten und schließlich zu denken. Auf diesem Prinzip setzen auch künstliche neuronale Netzwerke an, um Muster in Daten erkennen und interpretieren zu können.

Bestandteile eines künstlichen Neuronalen Netzes

Ein neuronales Netzwerk besteht aus mehreren Schichten (engl. Layer): Eingabeschicht, versteckte Schichten und Ausgabeschicht. Die verschiedenen Schichten bestehen wiederum aus vielen Knotenpunkten (engl. Nodes). Hierbei sind die Knotenpunkte das Äquivalent zu den Neuronen menschlicher Gehirne. Zum Verständnis kurz einmal zurück zum Hund-Katze-Beispiel: Zunächst müssen die Bilddaten in Zahlenwerte transformiert werden – denn im Gegensatz zu biologischen neuronalen Netzwerken verarbeiten künstliche Netze ausschließlich numerische Werte und keine elektrischen Reize.

Glücklicherweise bestehen digitale Bilder aus Pixeln, die numerische Werte zwischen 0 und 255 annehmen können. Farbige Bilder setzen sich zudem aus den drei Farbkanälen (RGB-Farben) zusammen. Pro Pixel erhalten wir damit drei Werte für die Eingabeschicht. Angenommen, wir nehmen Bilder der Größe von 512x512 Pixeln, ergeben sich bei RGB-Farben bereits 786.432 Eingabewerte, die ein neuronales Netz verarbeiten muss (versteckte Schichten). Nach der Analyse jedes einzelnen Pixels werden die Bildinformationen noch einmal in ihrer Gesamtheit analysiert, um interpretiert werden zu können (Ausgabeschicht). Damit wird beispielsweise der technische Aufwand für die Verarbeitung der von Außenkameras autonomer Fahrzeuge gesammelten Daten deutlich.

Funktionsweise eines Neuronalen Netzes

Neuronales Netz mit zwei Knoten im Eingabelayer, fünf Knoten im versteckten Layer und einem Knoten im Ausgabelayer. | © Vectorized by Mysid in CorelDraw on an image by Dake.

Von der Eingabeschicht leitet jeder Knotenpunkt seinen Wert an alle mit ihm verbunden Knoten der versteckten Schicht weiter. Die Knoten der versteckten Schicht erhalten hierdurch jeweils die über 700.000 Werte der Eingabeschicht. Um nun aus den Daten zu lernen, erhält jede Knotenverbindung ein Gewicht und ein Bias (zusätzliches Neuron mit gleichbleibendem Schwellwert in einem neuronalen Netz) für die Bewertung und Interpretation der Information. Dies sind die flexiblen Stellschrauben in einem Netzwerk, die überhaupt erst das Lernen ermöglichen. Eingabewerte, die wichtig für eine korrekte Klassifizierung sind, werden durch die Gewichte und Biases, auch Parameter genannt, in ihrer Signalstärke verstärkt – eher unwichtige werden abgedämpft. Die Eingabewerte werden mit den Parametern multipliziert bzw. gewichtet und die gewichteten Werte werden anschließend summiert und durch eine Aktivierungsfunktion geleitet. Vereinfacht ausgedrückt: Auf der Suche nach Hundebildern gewichte ich beispielsweise die visuellen Merkmale eines Hundes höher als einen bestimmten Hintergrund oder eine Fellfarbe.
Aktivierungsfunktionen simulieren die biologischen Neuronen, indem sie entscheiden, ob ein Signal weitergegeben wird und in welcher Höhe. Wir erinnern uns: beim menschlichen Gehirn geschieht das durch die „Überladung“ des Neurons mit elektrischer Energie. Die Aktivierungsfunktionen entscheiden letztendlich also, ob die Eingangsmerkmale signifikant genug sind, um weitergereicht zu werden. Das gleiche Prozedere findet anschließend zwischen versteckter Schicht und Ausgabeschicht statt. Die Ausgabeschicht hat in unserem Beispiel dabei nur zwei Knotenpunkte: Hund und Katze. Je nachdem, welcher Knotenpunkt den höheren Zahlenwert hat, wird dieser aktiviert, die Klassifizierung durch das neuronale Netz steht fest und das Bild wird entsprechend zugeordnet.

Von Deep Learning sprechen wir bei neuronalen Netzwerken, wenn mehr als eine versteckte Schicht existiert. Je mehr versteckte Schichten ein Netz hat, desto tiefer ist es. In gleichem Maße können wir in die Breite gehen – durch Hinzufügen von Knotenpunkten in den versteckten Schichten. Hierfür wird der Begriff „Wide Learning“ benutzt. Anhand von Variationen tiefer und weiter Schichten und einiger weiteren Methoden, lassen sich Netze bis zu einem gewissen Grad auf ihre Effizienz optimieren. Für tiefergehende Optimierungen werden individuelle Deep Learning Architekturen genutzt und entwickelt, wie z.B. faltende Neuronale Netzwerke für die Bildverarbeitung.

Merkmalshierarchie

Die Merkmalshierarchie (engl. feature hierachy) vereinfacht dargestellt: Quelle: Mirza, Behroz & Malik, Yameen & Syed, Tahir. (2018). A synergistic framework-big data analytics challenges and potential solutions from deep learning.

Um ein besseres Verständnis von Deep Learning zu erhalten, ist die Merkmalshierarchie hilfreich, die im Bild dargestellt wird. In tiefen neuronalen Netzen wird auf jeder versteckten Schicht eine andere Kategorie von Merkmalen erlernt. In den ersten Schichten werden einfache Merkmale trainiert, wie z.B. Striche und Punkte. Danach folgen Formen und in den tiefsten versteckten Schichten werden Gesichter bis hin zu ganzen Körpern von Personen oder auch Tieren interpretiert. Die Faustregel lautet: je tiefer eine Schicht im Deep Learning Netzwerk liegt, desto komplexer werden die Merkmale, die jeder einzelne Knotenpunkt dieser Schicht erkennt. Anders ausgedrückt kombinieren und aggregieren die einzelnen Knoten einer tieferen Schicht die jeweiligen Merkmale der eingehenden Knoten. Aufgrund der beschriebenen Funktionsweise wird Deep Learning oft auch als universeller Funktionsapproximator bezeichnet, weil es für jeden Eingabewert die Funktion bzw. Beziehung zu einem Ausgabewert abbilden kann. Diese Eigenschaft von tiefen neuronalen Netzen ermöglicht es, die in unstrukturierten Daten vorliegenden verborgenen Strukturen in großen Datensätzen mit Milliarden von Parametern zu finden. Vorausgesetzt, dem Deep Learning Netzwerk steht genügend Rechenleistung zur Verfügung.

Fazit

Deep Learning ermöglicht es, in riesigen Datenmengen verborgen liegende Informationen zu verarbeiten. Deep Learning ist nur eines von vielen Verfahren im Bereich des maschinellen Lernens. Die Unterschiede zwischen Deep Learning und den anderen Verfahren basieren vor allem in der „Feature Extraction” (Merkmalsextraktion) der Daten. Was das genau bedeutet, behandeln wir in einem späteren Blogpost.

Every algorithm has an input and an output: the data goes into the computer, the algorithm does what it will with it, and out comes the result. Machine learning turns this around: in goes the data and the desired result and out comes the algorithm that turns one into the other.

Pedro Domingos, The Master Algorithm
Autor des Beitrags:
Stefanos Tsoutis
Ignaris UG
Co-Founder | Data Analyst & Business Development