Wie funktioniert Deep Learning? Eine konzeptionelle Einführung

Machine Learning

Deep Learning ist ein Verfahren des maschinellen Lernens, das neuronale Netze einsetzt, um von Trainingsdaten zu lernen und aufgrund der gelernten Generalisierungen Entscheidungen zu treffen.

 

Was ist ein neuronales Netz?

Abbildung: Ein einfaches neuronales Netz

Ein neuronales Netz kann man sich als eine Art Black-Box vorstellen, in die eine Reihe von Input-Features eingegeben wird, und die nach Durchlauf aller verborgenen Ebenen ein Output liefert.  Jeder Input-Knoten stellt dabei ein Merkmal, ein “Feature” jenes Objektes dar, über das die Entscheidung getroffen werden soll.

 

Ein klassisches Beispiel einer solchen Entscheidung ist die Klassifizierung, bei der es darum geht, Input-Objekte einer vorher bestimmten Klasse zuzuordnen. Bei einer Klassifizierung von Graustufen-Bildern z.B. gibt es im neuronalen Netz einen Input-Knoten für jeden Pixel des Bildes, wobei jeder Knoten einen Wert zwischen 0 und 1 aufweist, je nach seiner Helligkeit. Nehmen wir an, all diese Bilder würden handgeschriebene Ziffern zwischen 0-9 darstellen; dann haben wir auf der Output-Seite unseres Netzes zehn Knoten, die je für eine andere Zahl stehen. Der Output-Knoten mit dem höchsten Wert gewinnt, und das System liefert diese Zahl als Ergebnis zurück.

Soviel zum Input und Output. Doch was passiert eigentlich innerhalb der verborgenen Ebenen der Black-Box? Wie man dem obigen Bild entnehmen kann, geht der Wert aus jedem Knoten einer vorigen Ebene in jeden Knoten der nächsten Ebene hinein. Das Entscheidende an dieser Stelle, und das Entscheidende überhaupt an Deep Learning, ist das die einzelnen Knotenwerte mit Koeffizienten multipliziert werden, die später wie Reglerknöpfe justiert werden können, um die Ausgaben des Netzes an die korrekten Trainingslabels anzupassen. Diese nennen sich Gewichte.

Da man für die Trainingsdaten den richtigen Output schon kennt, hat man die Möglichkeit, das Output eines Leerdurchlaufs (mit unjustierten Reglerknöpfen) für ein Trainingselement mit dem des korrekten Outputs für das Element zu vergleichen. Man weiß also, wie groß die Fehlerspanne ist und kann daran arbeiten, diese zu schließen. Das Schließen dieser Fehlerspanne nennt sich Optimierung, und sie hat zum Ziel, den Beitrag jedes der Knotenkoeffizienten (Gewichte) zur Fehlerspanne zu minimieren. Hierzu werden zunächst für jedes Gewicht partielle Ableitungen errechnet, die die Änderungsrate der Fehlerspanne abhängig vom jeweiligen Gewicht darstellen.

In einem zweiten Schritt wird diese Änderungsrate, die den Anteil des jeweiligen Gewichts an der Fehlerspanne darstellt, mal ein Koeffizient namens Learning Rate multipliziert, und vom alten Wert des Gewichts abgezogen. Die Learning Rate bestimmt dabei die Geschwindigkeit und Kleinschrittigkeit der Fehlerminimierung.

Indem diese Gewichtsoptimierung für jedes Gewicht des Netzes ausgeführt wird, werden die Outputs immer korrekter und die Fehlerspanne wird immer kleiner. Nach abgeschlossenem Training kann das neuronale Netz akkurat Klassen vorhersagen.

Schreibe einen Kommentar

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