Deep Learning – Eine kurze Übersicht

Namaste und herzlich willkommen im Blog Deep-Learning-Yoga.

In diesem Jahr 2017 ist Deep-Learning ein sehr spannendes Thema und steht auf Augenhöhe mit vergleichbaren Hype-Themen wie IoT und Blockchain. Deep-Learning zeichnet sich dadurch aus, dass aus prognostizierten Use-Cases schnell erfolgreiche Use-Cases wurden. Das heißt, es wurde viel versprochen und es wurde viel erfolgreich umgesetzt. Das ist leider bei den Trending-Themen nicht immer der Fall.

Doch was ist überhaupt Deep-Learning?

Die thematische Einordnung ist sehr simpel. Deep Learning steht ganz rechts in der Reihe „Künstliche Intelligenz (KI) – Machine Learning (ML) – Deep Learning (DL)“. Links steht der allumfassende Begriff, rechts eine konkrete Technologie.

Künstliche Intelligenz ist ein sehr altes und auch sehr breit aufgestelltes Thema. Es ist eher philosophisch zu betrachten und lässt sich unterschiedlich definieren. Allgemein umfasst die Künstliche Intelligenz die Automatisierung von intelligentem Verhalten, die eigenständige Problemlösung durch den Computer und die Nachahmung von menschlicher Intelligenz.

Machine Learning ist als konkretes Teilgebiet der Künstlichen Intelligenz klarer zu fassen. Hier wird neues Wissen aus Erfahrungen generiert. Es wird auf Basis eines Datensatzes gelernt. Das gelernte Wissen wird verallgemeinert. Das hat unter anderem mit der Erkennung von Mustern in beliebigen Daten zu tun. Diese Muster werden dann benutzt um Intelligenz zu etablieren. Machine Learning ist im Wesentlichen ein bunter Blumenstrauß an Algorithmen. Hierzu gehören Decision Trees, Support Vector Machines, Clustering Algorithms, Bayesian Networks, Genetic Algorithms und Deep Learning.

Neuronale Netze nehmen eine Handvoll Zahlen und machen eine neue Handvoll Zahlen draus.

Deep Learning als Methode im Machine Learning ist das Design, das Training und das Deployment von sogenannten Deep Neural Networks. Hier ahmen künstliche Neuronen das biologische Gehirn nach. Strukturell haben wir es mit einem gewichteten Graphen zu tun, also einer leicht zu fassenden Datenstruktur. Das ist nicht mehr als Ecken und Kanten mit Gewichten. Komplex wird das Ganze einzig durch die Größe beziehungsweise die Tiefe des Netzes. Deep Neural Networks zeichnen sich durch viele Knoten und viele Kanten aus.

Algorithmisch machen Neural Networks nichts anderes als aus Eingaben Ausgaben zu generieren. Bildlich gesprochen ist ein Neuronales Netz eine Box in die man oben Zahlen hinein gibt. Diese Zahlen werden im Inneren der Box mit anderen Zahlen verknüpft. Schließlich fallen unten neue Zahlen heraus. Richtig interessant ist die Verknüpfung im Inneren. Hier liegt die Mustererkennung versteckt. Und wie beim biologischen Hirn kann man durch Draufschauen nicht erkennen, was das Netz wirklich macht. Das ist sehr spannend. Und wie entsteht diese Use-Case-spezifische Mustererkennung? Durch Training.

Das Training ist auch eine einfache Angelegenheit.

Man geht zunächst von einer Trainingsmenge aus. Sehr abstrakt. Welche Daten man benutzt soll für den Moment egal sei. Die Trainingsmenge besteht in der Regel aus einer großen Anzahl an Eingabe-Ausgabe-Paaren. Schrittweise werden pro Eingabe-Ausgabe-Paar die Gewichte des Netzes angepasst. Das beginnt bei der Ausgabe und arbeitet sich schichtenweise bis zur Eingabe vor. Das ist ein gehaltvoller Satz. Weil der Lernalgorithmus quasi rückwärts arbeitet nennt man das Back-Propagation. Zusammengefasst werden dem Neuronalen Netz immer wieder Eingaben und Ausgaben als Paare gezeigt und jedes Mal passen sich die Gewichte an. Das ist Lernen.

Das Bild mit den Zahlen ist zugegebenermaßen recht high-level. Das Gute an den Neuronalen Netzen ist, dass sich die meisten Daten durch Zahlenreihen darstellen lassen. Hier liegt der größte Vorteil dieser Methode. Alle Datenmengen lassen sich als Zahlen darstellen, entweder absolut oder approximiert. Das ist eine Aussage, die wirklich vieles erleichtert.

Bilder sind geordnete Zahlenmengen.

Bilder bestehen aus Pixeln. Sie haben eine Höhe und eine Breite. Jedes Pixel hat eine Farbe die anteilig aus den drei Farben Rot, Grün, Blau besteht. Das sind alles Zahlen. Insgesamt Höhe mal Breite mal drei Zahlen, die man alle nacheinander im Speicher ablegen kann. Ein Bild von 32 mal 20 Pixeln besteht aus 32 mal 20 mal 3, also 1920, Zahlen. Anhand dieser einfachen Mathematik zeichnet sich schon ab, wo hier die eigentliche Herausforderung liegt. Die Größe eines Neuronalen Netzes das Bilder als Eingabe benutzt, ist direkt abhängig von der Größe der Bilder. Wachsen die Bilder, so wächst auch das Netzwerk. Glücklicherweise kann man bereits mit kleinen Bildern gute Ergebnisse erzielen. Man muss nur die Trainingsbilder verkleinern und bekommt dadurch eine Performanzsteigerung. Und wenn es möglich ist, auf Graustufen zu reduzieren, verkleinert sich die Datenlast auf ein Drittel.

Sounddaten auch.

Mit Sounddaten ist es ähnlich. Auch hier greift die Mathematik. Sampling heißt das Zauberwort. Die gute, alte CD hatte als digitales Medium damals eine Abtastrate von 44100. Sound ist eine kontinuierliche Welle, die digital mit einer speziellen Rate abgetastet wird. Pro Sekunde werden also 44100 Zahlen gespeichert, die die eigentliche Welle repräsentieren. Auch hier kann man sparen. Wenn man die Abtastrate etwa auf 22050 senkt, halbiert sich die Datenlast pro Sekunde. Alternativ kann man Sounddaten auch direkt in Bilder umwandeln, etwa als Spektrogramme. Das bedeutet, dass man die Arbeit mit Sounddaten unter Umständen sogar auf die Arbeit mit Bildern reduzieren kann.

Auch mit Worten lässt sich Zahlenmagie betreiben.

Ja, die natürliche Sprache lässt sich durch Zahlen darstellen. Das ist jedoch ein wenig komplizierter, beinahe magisch, dafür aber umso schöner. Hier kommen die sogenannten Word-Embeddings zum Einsatz. Ein Word-Embedding ist nichts anderes als die Abbildung beliebiger Wörter auf Wortvektoren einer festen Länge. Das besondere ist, dass diese Vektoren auch eine Semantik tragen und wir damit rechnen können. So liegen die Vektoren für „Mann“ und „Frau“ recht nah beieinander. Und wenn man von „König“ „Mann“ abzieht und „Frau“ addiert, kommt „Königin“ heraus. Je länger die Wortvektoren sind, desto mehr semantische Information wird gespeichert. Jedoch steigt auch der Aufwand bei den Neuronalen Netzen mit der Vektorlänge.

Preprocessing is the key.

Das waren nur drei verschiedene Use-Cases. Es gibt noch viele weitere. Diese drei bereits machen etwas deutlich: Die Daten die benutzt werden sollen müssen aufbereitet werden.

Deep Learning in der Praxis hat einen relativ großen Data-Science-Aspekt. Die zur Verfügung stehenden Daten müssen analysiert, bereinigt und aufbereitet werden. Auch meine Erfahrung zeigt, dass dies einen signifikanten Anteil an der Entwicklung einnimmt. Unterm Strich ist der Weg von den Rohdaten zu den Trainingsdaten nicht zu unterschätzen.

Zusammengefasst…

Deep Learning ist eine effektive Methode von Machine Learning. Sie kann heute sehr breit eingesetzt werden. Es gibt viele Daten. Es gibt genügend Probleme mit diesen. Die Technologie ist fortgeschritten und sie steht jedem zur Verfügung. Mit Deep Learning lassen sich viele verschiedene Datenquellen konsumieren.

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.