Auch genannt: künstliches neuronales Netz, Neural Network
Ein neuronales Netz ist ein mathematisches Modell, das aus Beispielen eine Zuordnung von Eingaben zu Ausgaben lernt. Es besteht aus verbundenen Recheneinheiten, die Zahlenwerte verarbeiten; die Bezeichnung „Neuron“ ist dabei eine technische Metapher, keine Beschreibung biologischer Nervenzellen. Neuronale Netze eignen sich besonders dafür, nichtlineare Muster in Daten zu erfassen.Google for Developers: Neural networks
Statt für jede Entscheidung eine feste Regel zu programmieren, erhält ein neuronales Netz Eingabedaten und soll eine gewünschte Ausgabe vorhersagen. Bei einer Bildklassifikation können die Eingaben Pixelwerte sein; die Ausgabe ist dann beispielsweise eine Punktzahl je möglicher Klasse. Welche Klasse gewählt wird, ist keine Eigenschaft eines einzelnen Pixels, sondern das Resultat vieler Rechenschritte im Modell.
Ein einfaches Netz ordnet seine Recheneinheiten in Schichten. Eine Eingabeschicht nimmt Merkmale entgegen. Dazwischen liegende, sogenannte verborgene Schichten bilden Zwischenrepräsentationen. Eine Ausgabeschicht liefert je nach Aufgabe eine Zahl, eine Klasse oder mehrere Wahrscheinlichkeitswerte. TensorFlow beschreibt Schichten als Grundbausteine neuronaler Netze; viele Schichten besitzen Parameter, die beim Training gelernt werden.TensorFlow: Basic classification: Classify images of clothing
Ein Knoten verarbeitet mehrere Eingabewerte. Vereinfacht multipliziert er jeden Wert mit einem Gewicht, addiert die Ergebnisse und wendet anschließend eine Aktivierungsfunktion an. Das Gewicht bestimmt, wie stark ein Eingang in diesen Rechenschritt einfließt. Aktivierungsfunktionen machen es möglich, nichtlineare Beziehungen abzubilden; ohne sie bliebe ein mehrschichtiges Netz in seiner Ausdruckskraft auf lineare Kombinationen beschränkt.
Die Zahlen in den Gewichten sind nicht von vornherein fachliche Regeln wie „ein runder Umriss bedeutet Schuh“. Zu Beginn sind sie üblicherweise nur Startwerte. Erst anhand von Trainingsbeispielen passt das Lernverfahren sie so an, dass die Ausgaben zu den bekannten Zielwerten besser passen. Deshalb ist ein Netz kein Wissensspeicher im Sinne eines Nachschlagewerks, sondern eine parametrisierte Rechenfunktion.
Im Training verarbeitet das Modell einen Beispieldatensatz vorwärts: Eingabewerte laufen durch die Schichten bis zur Ausgabe. Anschließend vergleicht eine Verlustfunktion die Ausgabe mit dem vorgegebenen Ziel. Ein Optimierungsverfahren verändert die Gewichte schrittweise, um diesen Verlust zu senken. Google beschreibt Rückpropagation als den Mechanismus, der den Einfluss von Gewichten auf den Fehler rückwärts durch das Netz bestimmt und die Gewichte zur Verlustminimierung aktualisiert.Google for Developers: Neural networks
Training ist nicht dasselbe wie eine Vorhersage im Betrieb. Bei der Inferenz sind die Parameter eingefroren; das Netz berechnet für neue Eingaben eine Ausgabe. Ob diese Ausgabe zuverlässig ist, hängt unter anderem von Datenqualität, Aufgabenstellung, Modellarchitektur und der Ähnlichkeit neuer Daten zu den Trainingsdaten ab. Eine hohe Trefferquote auf Trainingsbeispielen allein genügt nicht: Wenn ein Modell bei unbekannten Eingaben schlechter abschneidet, spricht man von Überanpassung (Overfitting).TensorFlow: Basic classification: Classify images of clothing
Ein anschauliches Beispiel ist die Zuordnung eines Graustufenbilds zu einer Kleidungsklasse. Im TensorFlow-Tutorial besteht jedes Bild aus 28 mal 28 Pixelwerten. Eine erste Schicht formt diese 784 Werte zu einer Liste um; danach folgen dichte Schichten, von denen die letzte zehn Ausgabewerte für die möglichen Klassen erzeugt.TensorFlow: Basic classification: Classify images of clothing
Zum Lernen werden Bilder zusammen mit ihren Labels bereitgestellt. Das Netz berechnet für ein Trainingsbild Ausgabewerte, der Fehler gegenüber dem Label fließt in die Gewichtsaktualisierung ein. Für die spätere Prüfung benötigt man getrennte Testdaten. Das Tutorial verwendet 60.000 Trainingsbilder und 10.000 Testbilder; diese Zahlen sind Eigenschaften dieses Lehrdatensatzes, keine allgemeine Mindestgröße für neuronale Netze.TensorFlow: Basic classification: Classify images of clothing
Ein solches Ergebnis bleibt eine Modellentscheidung, keine Wahrnehmung wie bei einem Menschen. Schlechte Beleuchtung, ungewohnte Bildausschnitte oder Daten, die im Training kaum vorkamen, können die Zuordnung verschlechtern. Für einen praktischen Einsatz müssen deshalb Fehlerklassen, Testdaten und Folgen einer falschen Entscheidung zur Aufgabe passen.
Ein neuronales Netz ist der Oberbegriff für diese Modellfamilie. Deep Learning bezeichnet in der Praxis meist Verfahren mit mehreren, insbesondere vielen hintereinander geschalteten Schichten, die Repräsentationen schrittweise lernen. Jedes Deep-Learning-Modell ist damit ein neuronales Netz, aber der Ausdruck „neuronales Netz“ legt noch keine bestimmte Tiefe, Architektur oder Anwendung fest.
Die biologische Analogie darf nicht überdehnt werden. Künstliche Knoten senden keine elektrischen Impulse wie Nervenzellen und besitzen kein Bewusstsein. Sie führen definierte mathematische Operationen auf Zahlen aus. Auch ein Algorithmus ist nicht automatisch ein neuronales Netz: Entscheidungsbäume, lineare Regression oder regelbasierte Programme können Vorhersagen oder Entscheidungen treffen, ohne Schichten gewichteter Knoten zu verwenden.
Machine Learning ist der weitere Bereich: Er umfasst verschiedene Verfahren, die aus Daten Muster oder Parameter ableiten. Ein neuronales Netz ist eine davon. Training ist die Phase, in der Gewichte angepasst werden; Inferenz bezeichnet die Anwendung eines trainierten Modells auf neue Daten. Ein einzelnes Neuron ist nur ein Rechenelement; erst seine Verbindung mit weiteren Knoten und Gewichten ergibt ein Netz. Und eine hohe Ausgabewahrscheinlichkeit ist keine Garantie, dass die Vorhersage in der realen Situation richtig ist.