Was sind „Neuronale Netze“?

Die Basis und sozusagen die wichtigste Grundtechnologie für Machine Learning und Künstliche Intelligenz sind Neuronale Netze. Ein neuronales Netz ist eine Ansammlung von einzelnen Informationsverarbeitungs-Einheiten, die Neuronen genannt werden.

Sie sind schichtweise in einer sogenannten Netzarchitektur angeordnet. Die Neuronen – auch Knotenpunkte genannt – 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, in selteneren Fällen aber auch innerhalb eines Layers. Zwischen den Layern oder Schichten ist jedes Neuron der einen Schicht immer mit allen Neuronen der nächsten Schicht verbunden.

Beginnend mit der Eingabeschicht, dem sogenannten Input Layer am Anfang, fließen Informationen über eine oder mehrere Zwischenschichten (Hidden Layer) bis hin zur Ausgabeschicht (Output Layer) am Ende. Dabei ist der Output des einen Neurons der Input des nächsten.

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.

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 (hidden layer).

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 sogenannten „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.

Die einfachste Form eines neuronalen Netzes ist das sogenannte „Perzeptron“. In der ursprünglichen Grundform beinhaltet diese Art der Netzwerke nur ein einziges Neuron (Perzeptron) mit anpassbaren Gewichtungen und einem Schwellenwert.

Es gibt über diese einfachste Form hinaus noch eine Vielzahl anderer Formeln von Neuronen Netzen. Die Feedfoward-Netze folgen der Feedforward-Logik: Informationen werden von der Eingabeschicht über die Zwischenschichten bis hin zur Ausgabeschicht in eine Richtung („vorwärts“) weitergereicht.

Daneben 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.

Verschiedene Varianten sind dabei möglich:

  • direkte Rückkopplung (ein Neuron nutzt seinen Output als erneuten Input)
  • indirekte Rückkopplung (der Output eines Neurons wird als Input eines Neurons in einer vorgelagerten Schicht verwendet)
  • seitliche Rückkopplung (der Output eines Neurons wird als Input eines Neurons in der selben Schicht verwendet)
  • vollständige Verbindung (der Output eines Neurons wird von jedem anderen Neuron im Netz als zusätzlicher Input verwendet

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.

Team WEGOFIVE
team@wegofive.net
No Comments

Post A Comment

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.