Ein neuronales Netz (seltener auch neurales Netz) ist eine Ansammlung von einzelnen Informationsverarbeitungseinheiten (Neuronen), die schichtweise in einer Netzarchitektur angeordnet sind. Im Zusammenhang mit künstlicher Intelligenz spricht man von künstlichen neuronalen Netzen.
Die Neuronen (auch Knotenpunkte) eines künstlichen neuronalen Netzes sind schichtweise in sogenannten Layern angeordnet und in der Regel in einer festen Hierarchie miteinander verbunden. Die Neuronen sind dabei zumeist zwischen zwei Layern verbunden (Inter-Neuronlayer-Connection), in selteneren Fällen aber auch innerhalb eines Layers (Intra-Neuronlayer-Connection).
Zwischen den Layern oder Schichten ist jedes Neuron der einen Schicht immer mit allen Neuronen der nächsten Schicht verbunden.
Beginnend mit der Eingabeschicht (Input Layer) fließen Informationen über eine oder mehrere Zwischenschichten (Hidden Layer) bis hin zur Ausgabeschicht (Output Layer). Dabei ist der Output des einen Neurons der Input des nächsten.
Die Darstellung künstlicher neuronaler Netze erfolgt zumeist schematisch horizontal. Die Eingabeschicht ist dabei auf der linken Seite angeordnet, gefolgt von den Zwischenschichten in der Mitte und der Ausgabeschicht auf der rechten Seite. Die Anzahl der Layer eines neuronalen Netzes ist eine wichtige beschreibende Information. Enthält ein Netz beispielsweise 3 Schichten, spricht man von einem 3-schichtigen Netz.
Fjodor van Veen vom Asimov Institute hat eine übersichtliche Grafik mit einigen Versionen neuronaler Netze erstellt. Diese soll jedoch – wie der gesamte Beitrag auch – nur einen ersten Überblick über den Aufbau solcher Netze geben.
Die Eingabeschicht ist der Startpunkt des Informationsflusses in einem künstlichen neuronalen Netz.
Eingangssignale werden von den Neuronen am Anfang dieser Schicht aufgenommen und am Ende gewichtet an die Neuronen der ersten Zwischenschicht weitergegeben. Dabei gibt ein Neuron der Eingabeschicht die jeweilige Information an alle Neuronen der ersten Zwischenschicht weiter.
Zwischen der Eingabe- und der Ausgabeschicht befindet sich in jedem künstlichen neuronalen Netz mindestens eine Zwischenschicht (auch Aktivitätsschicht oder verborgene Schicht von engl.: hidden layer). Je mehr Zwischenschichten es gibt, desto tiefer ist das neuronale Netz, im englischen spricht man daher auch von Deep Learning.
Theoretisch ist die Anzahl der möglichen verborgenen Schichten in einem künstlichen neuronalen Netzwerk unbegrenzt. In der Praxis bewirkt jede hinzukommende verborgene Schicht jedoch auch einen Anstieg der benötigten Rechenleistung, die für den Betrieb des Netzes notwendig ist.
Die Ausgabeschicht liegt hinter den Zwischenschichten und bildet die letzte Schicht in einem künstlichen neuronalen Netzwerk. In der Ausgabeschicht angeordnete Neuronen sind jeweils mit allen Neuronen der letzten Zwischenschicht verbunden. Die Ausgabeschicht stellt den Endpunkt des Informationsflusses in einem künstlichen neuronalen Netz dar und enthält das Ergebnis der Informationsverarbeitung durch das Netzwerk.
Die Gewichte beschreiben die Intensität des Informationsflusses entlang einer Verbindung in einem neuronalen Netzwerk. Jedes Neuron vergibt dazu ein Gewicht für die durchfließende Information und gibt diese dann gewichtet und nach der Addition eines Wertes für die neuronen-spezifische Verzerrung (Bias) an die Neuronen der nächsten Schicht weiter. Üblicherweise werden die Gewichte und Verzerrungen zum Beginn des Trainings im Wertebereich zwischen -1 und 1 initialisiert, können jedoch später auch deutlich außerhalb dieses Bereichs liegen. Das Ergebnis der Gewichtung und Verzerrung wird oft durch eine sogenannte Aktivierungsfunktion (z.B: Sigmoid oder tanh) geleitet, bevor es an die Neuronen der nächsten Schicht weitergeleitet wird.
Die Gewichte und Verzerrungen werden während des Trainingsprozesses so angepasst, dass das Endresultat möglichst genau den Anforderungen entspricht. Weitere Informationen findest du in dem Beitrag Wie lernen künstliche neuronale Netze?.
Es existieren sehr viele Varianten von künstlichen neuronalen Netzwerken. Alle zu beschreiben, würde den Rahmen dieses Beitrages sprengen. Daher konzentrieren wir uns auf die gängigsten und relevantesten Arten.
Neuronale Netzwerke folgen der Feedforward-Logik: Informationen werden von der Eingabeschicht über die Zwischenschichten bis hin zur Ausgabeschicht in eine Richtung („vorwärts“) weitergereicht.
Zwar sind fast alle neuronalen Netze Feedforward-Netze, jedoch gibt es auch Varianten, bei denen zusätzliche Verbindungen existieren, durch die Informationen bestimmte Bereiche des Netzwerkes auch rückwärts bzw. erneut durchlaufen können. Diese Netzwerke bezeichnet man als rekurrente Netzwerke, rückgekoppelte Netzwerke oder Feedback-Netzwerke.
Folgende Varianten sind möglich:
Rekurrente Netzwerke sind insbesondere dann erforderlich, wenn es um sequenzielle Informationsverarbeitung geht (Sequence-to-Sequence Netze). Dies ist beispielsweise bei der Handschrifterkennung, der Spracherkennung und der maschinellen Übersetzung der Fall. Netzwerke, die für die Erfüllung dieser Aufgaben verwendet werden basieren meist auf einer direkten Rückkopplung.
Das Convolutional Neural Network (zu Deutsch in etwa faltendes neuronales Netzwerk) wird insbesondere im Bereich der Bild- und Audioverarbeitung häufig eingesetzt. Üblicherweise besteht ein solches Convolutional Neural Network aus mindestens 5 Schichten. Innerhalb jeder dieser Schichten wird eine Mustererkennung durchgeführt. Jede Schicht präzisiert dabei die Mustererkennung auf Basis des Outputs der vorherigen Schicht.
Vorstellen kann man sich dieses Verfahren wie ein kleines Erkennungsraster, das Stück für Stück über den zu analysierenden Bereich des Datensatzes fährt. Bei einem Bild geschieht dies z.B. auf Pixel-Ebene durch die Analyse von kleinen Bildausschnitten (z.B. 2×2 Pixel).
Als Vorbild für diese Art des Netzwerk-Aufbaus gilt das sog. rezeptive Feld.
Bei dem Perzeptron handelt es sich um die einfachste Form des künstlichen neuronalen Netzwerkes. In der ursprünglichen, von Frank Rosenblatt 1958 vorgestellten Grundform beinhaltet diese Art der Netzwerke nur ein einziges Neuron (Perzeptron) mit anpassbaren Gewichtungen und einem Schwellenwert.
Mittlerweile versteht man unter dem Begriff jedoch auch verschiedene Kombinationen der ursprünglichen Form und unterscheidet zwischen folgenden Varianten:
Ein neuronales Netz (seltener auch neurales Netz) ist eine Ansammlung von einzelnen Informationsverarbeitungseinheiten (Neuronen), die schichtweise in einer Netzarchitektur angeordnet sind. Im Zusammenhang mit künstlicher Intelligenz spricht man von künstlichen neuronalen Netzen.
Die Neuronen (auch Knotenpunkte) eines künstlichen neuronalen Netzes sind schichtweise in sogenannten Layern angeordnet und in der Regel in einer festen Hierarchie miteinander verbunden. Die Neuronen sind dabei zumeist zwischen zwei Layern verbunden (Inter-Neuronlayer-Connection), in selteneren Fällen aber auch innerhalb eines Layers (Intra-Neuronlayer-Connection).
Zwischen den Layern oder Schichten ist jedes Neuron der einen Schicht immer mit allen Neuronen der nächsten Schicht verbunden.
Beginnend mit der Eingabeschicht (Input Layer) fließen Informationen über eine oder mehrere Zwischenschichten (Hidden Layer) bis hin zur Ausgabeschicht (Output Layer). Dabei ist der Output des einen Neurons der Input des nächsten.
Die Darstellung künstlicher neuronaler Netze erfolgt zumeist schematisch horizontal. Die Eingabeschicht ist dabei auf der linken Seite angeordnet, gefolgt von den Zwischenschichten in der Mitte und der Ausgabeschicht auf der rechten Seite. Die Anzahl der Layer eines neuronalen Netzes ist eine wichtige beschreibende Information. Enthält ein Netz beispielsweise 3 Schichten, spricht man von einem 3-schichtigen Netz.
Fjodor van Veen vom Asimov Institute hat eine übersichtliche Grafik mit einigen Versionen neuronaler Netze erstellt. Diese soll jedoch – wie der gesamte Beitrag auch – nur einen ersten Überblick über den Aufbau solcher Netze geben.
Die Eingabeschicht ist der Startpunkt des Informationsflusses in einem künstlichen neuronalen Netz.
Eingangssignale werden von den Neuronen am Anfang dieser Schicht aufgenommen und am Ende gewichtet an die Neuronen der ersten Zwischenschicht weitergegeben. Dabei gibt ein Neuron der Eingabeschicht die jeweilige Information an alle Neuronen der ersten Zwischenschicht weiter.
Zwischen der Eingabe- und der Ausgabeschicht befindet sich in jedem künstlichen neuronalen Netz mindestens eine Zwischenschicht (auch Aktivitätsschicht oder verborgene Schicht von engl.: hidden layer). Je mehr Zwischenschichten es gibt, desto tiefer ist das neuronale Netz, im englischen spricht man daher auch von Deep Learning.
Theoretisch ist die Anzahl der möglichen verborgenen Schichten in einem künstlichen neuronalen Netzwerk unbegrenzt. In der Praxis bewirkt jede hinzukommende verborgene Schicht jedoch auch einen Anstieg der benötigten Rechenleistung, die für den Betrieb des Netzes notwendig ist.
Die Ausgabeschicht liegt hinter den Zwischenschichten und bildet die letzte Schicht in einem künstlichen neuronalen Netzwerk. In der Ausgabeschicht angeordnete Neuronen sind jeweils mit allen Neuronen der letzten Zwischenschicht verbunden. Die Ausgabeschicht stellt den Endpunkt des Informationsflusses in einem künstlichen neuronalen Netz dar und enthält das Ergebnis der Informationsverarbeitung durch das Netzwerk.
Die Gewichte beschreiben die Intensität des Informationsflusses entlang einer Verbindung in einem neuronalen Netzwerk. Jedes Neuron vergibt dazu ein Gewicht für die durchfließende Information und gibt diese dann gewichtet und nach der Addition eines Wertes für die neuronen-spezifische Verzerrung (Bias) an die Neuronen der nächsten Schicht weiter. Üblicherweise werden die Gewichte und Verzerrungen zum Beginn des Trainings im Wertebereich zwischen -1 und 1 initialisiert, können jedoch später auch deutlich außerhalb dieses Bereichs liegen. Das Ergebnis der Gewichtung und Verzerrung wird oft durch eine sogenannte Aktivierungsfunktion (z.B: Sigmoid oder tanh) geleitet, bevor es an die Neuronen der nächsten Schicht weitergeleitet wird.
Die Gewichte und Verzerrungen werden während des Trainingsprozesses so angepasst, dass das Endresultat möglichst genau den Anforderungen entspricht. Weitere Informationen findest du in dem Beitrag Wie lernen künstliche neuronale Netze?.
Es existieren sehr viele Varianten von künstlichen neuronalen Netzwerken. Alle zu beschreiben, würde den Rahmen dieses Beitrages sprengen. Daher konzentrieren wir uns auf die gängigsten und relevantesten Arten.
Neuronale Netzwerke folgen der Feedforward-Logik: Informationen werden von der Eingabeschicht über die Zwischenschichten bis hin zur Ausgabeschicht in eine Richtung („vorwärts“) weitergereicht.
Zwar sind fast alle neuronalen Netze Feedforward-Netze, jedoch gibt es auch Varianten, bei denen zusätzliche Verbindungen existieren, durch die Informationen bestimmte Bereiche des Netzwerkes auch rückwärts bzw. erneut durchlaufen können. Diese Netzwerke bezeichnet man als rekurrente Netzwerke, rückgekoppelte Netzwerke oder Feedback-Netzwerke.
Folgende Varianten sind möglich:
Rekurrente Netzwerke sind insbesondere dann erforderlich, wenn es um sequenzielle Informationsverarbeitung geht (Sequence-to-Sequence Netze). Dies ist beispielsweise bei der Handschrifterkennung, der Spracherkennung und der maschinellen Übersetzung der Fall. Netzwerke, die für die Erfüllung dieser Aufgaben verwendet werden basieren meist auf einer direkten Rückkopplung.
Das Convolutional Neural Network (zu Deutsch in etwa faltendes neuronales Netzwerk) wird insbesondere im Bereich der Bild- und Audioverarbeitung häufig eingesetzt. Üblicherweise besteht ein solches Convolutional Neural Network aus mindestens 5 Schichten. Innerhalb jeder dieser Schichten wird eine Mustererkennung durchgeführt. Jede Schicht präzisiert dabei die Mustererkennung auf Basis des Outputs der vorherigen Schicht.
Vorstellen kann man sich dieses Verfahren wie ein kleines Erkennungsraster, das Stück für Stück über den zu analysierenden Bereich des Datensatzes fährt. Bei einem Bild geschieht dies z.B. auf Pixel-Ebene durch die Analyse von kleinen Bildausschnitten (z.B. 2×2 Pixel).
Als Vorbild für diese Art des Netzwerk-Aufbaus gilt das sog. rezeptive Feld.
Bei dem Perzeptron handelt es sich um die einfachste Form des künstlichen neuronalen Netzwerkes. In der ursprünglichen, von Frank Rosenblatt 1958 vorgestellten Grundform beinhaltet diese Art der Netzwerke nur ein einziges Neuron (Perzeptron) mit anpassbaren Gewichtungen und einem Schwellenwert.
Mittlerweile versteht man unter dem Begriff jedoch auch verschiedene Kombinationen der ursprünglichen Form und unterscheidet zwischen folgenden Varianten: