Einführung in Deep Learning

Ein Überblick über die Begriffe und die Technik hinter tiefen neuronalen Netzen / Deep Learning.

Veröffentlicht am 22.12.2022. Zuletzt aktualisiert am 29.12.2022. 697 Wörter.

Deep Learning ist ein von der Biologie inspirierter Teilbereich des maschinellen Lernens, der die Struktur neuronaler Netze in vereinfachter Form als überwachtes Lernverfahren einsetzt. Solche künstlichen neuronalen Netze lernen von bekannten Eingabedaten, um Vorhersagen über unbekannte Eingabedaten zu treffen. Der Begriff Deep Learning weist darauf hin, dass es sich um tiefe neuronale Netze handelt, also Netze mit mehr als einer inneren Schicht – dazu später mehr. Tiefe neuronale Netze haben sich in einer Vielzahl von Anwendungen bewährt, darunter in der Bild- und Spracherkennung sowie der Verarbeitung natürlicher Sprache.

Verfahren des maschinellen Lernens lassen sich grundsätzlich in zwei Kategorien einteilen, den überwachten Lernverfahren und dem unüberwachten Lernverfahren. Neuronale Netze benötigen für ein Training grundsätzlich auch Trainingsdaten, daher zählen sie zu den überwachten Lernverfahren. Durch eine geschickte Wahl der Zielfunktion (der vom neuronalen Netz zu lösenden Aufgaben) kann in manchen Fällen jedoch auf ein aufwändiges Aufbereiten der Trainingsdaten verzichtet werden. Dies ist beispielsweise bei den neueren Sprachmodellen der Fall. Beim Training von Modellen zur Objekterkennung in Bildern ist es hingegen weiterhin erforderlich, Bilder mit händisch markierten Objekten als Trainingsdaten vorzugeben.

Ganz allgemein gesprochen, verfolgt Deep Learning das Ziel, wie auch alle anderen (überwachten) maschinellen Lernverfahren, unter Verwendung einer Reihe von Trainingsbeispielen ein Modell zu bestimmen, welches eine Eingabe auf eine Ausgabe abbildet. Dieses Modell wird beim Deep Learning durch ein tiefes neuronales Netz repräsentiert. Ein solches Netz ist typischerweise in Schichten aufgebaut. Man differenziert typischerweise zwischen Feedforward-Netzen und rekurrenten Netzen. Bei den Feedforward-Netzen fließen die Informationen nur in eine Richtung, also ausschließlich von der Eingabeschicht zur Ausgabeschicht. Bei rekurrenten Netzen können die Informationen in beide Richtungen fließen, z.B. durch Rückkopplungen. Zum Treffen einer Vorhersage (Prediction) erhält jedes Neuron Eingaben aus der vorhergehenden Schicht, verarbeitet sie mithilfe einer Aktivierungsfunktion und einem Gewicht, und gibt das Ergebnis an die nächste Schicht weiter. Die erste Schicht stellt immer die Eingabeschicht und die letzte Schicht die Ausgabeschicht dar. Die Ausgabeschicht stellt üblicherweise das Ergebnis der Vorhersage bereit. Da es sich beim Deep Learning um tiefe neuronale Netze handelt, befinden sich mindestens zwei versteckten Schichten zwischen der Eingabe- und der Ausgabeschicht.

Beim Training eines solchen neuronalen Netzes werden die Gewichte an den Verbindungen zwischen den Neuronen (sowie die Gewichte der Neuronen) schrittweise so lange angepasst, bis die Vorhersagen des Netzes mit den Trainingsdaten möglichst gut übereinstimmen.

Wie gut diese Übereinstimmung tatsächlich ist, lässt sich anhand des Vorhersagefehlers quantifizieren, auch Verlustfunktion (Loss Function) genannt. Ziel des Trainings ist damit die Minimierung des Vorhersagefehlers. Eine zweite wichtige Metrik neben dem Vorhersagefehler, ist der Generalisierungsfehler. Dieser wird anhand eines separaten Datensatzes (den Testdaten) berechnet und gibt an, inwiefern das tiefe neuronale Netz in der Lage ist auch korrekte Vorhersagen auf Nicht-Trainingsdaten, also Daten, die das Netz während des Trainings zu Gesicht bekommen hat, zu treffen. Ziel des Trainingsprozesses ist es damit, sowohl den Vorhersagefehler (auf den Trainingsdaten) als auch den Generalisierungsfehler (auf den Testdaten) zu minimieren. Der Generalisierungsfehler wird durch eine ganze Reihe verschiedener Faktoren beeinflusst, z.B. die Komplexität des Netzes, die Menge und Qualität der Trainingsdaten sowie die Wahl des Optimierungsverfahrens. Das zu trainierende neuronale Netz muss zu den Trainingsdaten passen. Zum Beispiel neigen sehr komplexe neuronale Netze dazu, die Eigenschaften der Trainingsdaten zu genau abzubilden (niedriger Vorhersagefehler), sie weisen gleichzeitig aber einen hohen Generalisierungsfehler auf (schneiden auf den Testdaten schlecht ab).

Für das Training neuronaler Netze werden Optimierungsverfahren wie das Gradientenabstiegsverfahren eingesetzt. Es kann mit effizienten Vektor- und Matrixoperationen implementiert werden und ermöglicht so eine Skalierung auf großen Datensätzen. Es reagiert jedoch empfindlich auf die Wahl der Lernrate, der die Schrittweite der Anpassung steuert. Eine zu kleine Lernrate führt in der Regel zu langsamer Konvergenz, eine zu große Lernrate kann zu Instabilität führen kann. Es gibt einige Varianten des Gradientenabstiegsverfahren, z.B. Mini-Batch und Momentum, sowie alternative Optimierungsalgorithmen, wie den Adam- und den RProp-Algorithmus, die jeweils andere Konvergenz- und Generalisierungseigenschaften aufweisen. Zur Verringerung des Generalisierungsfehlers werden Regularisierungstechniken, wie Weight Decay und Dropout eingesetzt. Sie schränken die Komplexität des neuronalen Netzes ein und Verhindern eine Überanpassung (Overfitting).