Grafik von Alina Grubnyak – https://unsplash.com/de/@alinnnaaaa

Neuronale Netze - Ein Meilenstein im Machine Learning

Neuronale Netze sind ein heiß diskutiertes Thema. Doch worum handelt es sich hierbei und wie genau funktionieren diese? Hier werden einige diese Fragen beantwortet.

Henrik Bartsch

Henrik Bartsch

Einordnung

Machine Learning hat in den letzten Jahren viel an Bedeutung gewonnen. Die Fähigkeit, mithilfe von Daten selbstständig zu lernen, ist eine vielversprechende Eigenschaft für zukünftige Software. Eine der wichtigen Stützen für solche Software sind die künstlichen neuronalen Netze. Die Funktionsweise und Anwendung dieser wird im Folgenden erläutert.


Idee von künstlichen neuronalen Netzen

Grundsätzlich sprechen wir von künstlichen neuronalen Netzen als Abstraktion von biologischen neuronalen Netzen, welche Systeme wie das menschliche Gehirn vereinfacht abbilden sollen. Hierbei wird ein System aus künstlichen Neuronen erstellt, welche mithilfe von neuronalen Verbindungen miteinander verbunden werden. Klassischerweise wird das biologische Signal (“Reiz”) als reelle Zahl modelliert. 1

Grundsätzlich werden künstliche neuronale Netze dabei nicht auf eine bestimmte Aufgabe trainiert, sondern versuchen sich anhand von Trainingsdaten anzupassen. Entsprechende Ergebnisse variieren anschließend mit entsprechenden Datensätzen. Als Ausgangsergebnis wird ein Algorithmus modelliert, welcher die entsprechende vorliegende Aufgabe möglichst gut lösen können soll. 2 3

Künstliche Neuronen und mathematische Funktionsweise

Das Herzstück eines jeden künstlichen neuronalen Netzwerkes sind die entsprechenden künstlichen Neuronen. Diese sind darauf ausgelegt, das entsprechende biologische Gegenstück vereinfacht darzustellen. Jedes Neuron hat hierbei eine Reihe von Eingängen und einen Ausgang. Die Eingänge können hierbei entweder klassische Eingangsdaten sein oder entsprechende Ausgänge von vorherigen Neuronen.

Um den entsprechenden Output des Neurons zu berechnen, kann man hier klassisch eine Gewichtung a\vec{a} auf die Inputs x\vec{x} multiplizieren und addiert anschließend den Bias b\vec{b} darauf. Anschließend wird eine Activation Function σ()\sigma(\cdot) auf das Ergebnis angewandt. Diese Funktion bestimmt, inwiefern das Neuron feuert und wenn es feuert, zusätzlich noch, wie stark das Ausgangssignal wird. Die gesamte Operation sieht anschließend folgendermaßen aus:

σ(aTx+b)\sigma(\vec{a}^T \vec{x} + \vec{b})

Dies kann iterativ durch alle Neuronen durchgeführt werden. Die letzten Neuronen im Netzwerk sollen dann klassisch eine Repräsentation darstellen, welche die Aufgabe löst (beispielsweise die Wahrscheinlichkeit einer Klassenzugehörigkeit). 1 4 5

Das Training besteht dann aus dem Schritt, die Werte von a\vec{a} und b\vec{b} anzupassen, sodass die Outputwerte des Netzwerkes zu den vorgegebenen Werten eine möglichst kleine Abweichung besitzt. Hierzu gibt es verschiedene Metriken, dies zu messen. Eine Auflistung von solchen Metriken sind hier zu finden.

Architektur

Künstliche neuronale Netzwerke sind im Gegensatz zu biologischen neuronalen Netzwerken in ihrer Struktur nicht flexibel. Deswegen muss hierbei bei künstlichen neuronalen Netzen eine Architektur aus Layern (de.: “Ebenen” oder “Schichten”) vorgegeben werden, welche Neuronen enthält. In den Layern werden die Outputs der Neuronen jeweils parallel berechnet. Ein neuronales Netz mit mehr als drei Layern wird hierbei als Deep Learning-Modell bezeichnet. 5

Eine solche Architektur wird im Folgenden gezeigt:

Beispielhafte Architektur eines neuronalen Netzes

Feedforward Networks

Von Feedforward Networks wird im Allgemeinen gesprochen, wenn mehrere Layer von Neuronen hintereinander geschaltet werden, um eine bestimmte Aufgabe zu erreichen. Das Netzwerk besitzt hierbei keine Schleifen und der Input wird nach und nach von vorne nach hinten im Netzwerk verarbeitet - deswegen der Name.

Solche Modelle sind klassischerweise einfacher zu implementieren als andere Formen von neuronalen Netzen, sind allerdings häufig nur in der Lage einen einzigen Input- und Outputtensor zu verarbeiten. Für ein Beispiel, siehe hier. 6 5

Convolutional Neural Networks

Bei Convolutional Neural Networks handelt es sich um neuronale Netze, welche Filteroperationen, Vereinigungsoperationen in verschiedenen Layern verwenden, um die Dimensionalität der Eingangsdaten zu reduzieren und wichtige Features besser zu erkennen. Diese Art der Netze wird vor allem in der Bilderkennung verwendet, bei welchem diese Art von Netzwerk gute Ergebnisse erzielt. Solche Netzwerke benötigen allerdings hohe Anzahlen an Neuronen, was Training unter Umständen länger dauern lässt. 7 3 1

Recurrent Neural Networks

Recurrent Neural Networks kennzeichnen sich dadurch, dass diese im Gegensatz zu den Feedforward Networks Schleifen im Netzwerk erlauben, und so nicht immer eine einzige Richtung der Informationen im Netzwerk über alle Layer existiert. Dies ermöglicht es, Aufgaben wie Sequence Forecasting oder Handschrifterkennung mit weniger Datenpunkten vorherzusagen; im Gegensatz zu Feedforward Networks, in welchem dies schwieriger zu erreichen ist. Allerdings sind solche Netzwerke sowohl langsamer auszuwerten als auch zu trainieren. Unter anderem treten hierbei auch Probleme mit manchen Optimierungsalgorithmen für die Gewichte des Netzwerkes auf. 5 8 2 3

Im Folgenden haben wir das Konzept von Recurrent Neural Networks einmal visualisiert:

Beispielhafte Architektur eines Recurrent Neural Netzwork


Anwendungsgebiete

Durch die Eigenschaft künstlicher neuronaler Netze, universale Funktionsapproximatoren zu sein, können viele Probleme mittels künstlicher neuronaler Netze gelöst werden.1

Ein Feedforward Network, welches nur als vollständig verbundenen Neuronen besteht, kann nach dem Universal Approximation Theorem als universaler Funktionsapproximator verwendet werden. Hierfür sind nicht-lineare Aktivierungsfunktionen notwendig.

Ein universaler Funktionsapproximator zu sein, bedeutet das ein so konstruiertes neuronales Netz theoretisch beliebig genau jede Funktion annähern kann.

Beispiele hierfür sind:3

  1. Bild- und Spracherkennung
  2. Anwendung in der Regelungstechnik
  3. Mustererkennung
  4. Anwendungen bezüglich medizinische Diagnose
  5. Übersetzung

und viele weitere. Trotz dieser Anwendungsbeispiele bestehen noch eine Reihe von Problematiken, welche berücksichtigt werden sollten:

  1. Das Universal Approximation Theorem ist leider nicht konstruktiv; es ist unklar welche Netzwerkparameter wie Anzahl der Layer, Anzahl der Neuronen oder andere Parameter sind,
  2. Konvergenz: Neuronale Netze sind anfällig für lokalen Minima der Loss Function; manche Optimierungsmethoden können hierbei keine Konvergenz mehr ab einer bestimmten Distanz zu lokalen/globalen Minima garantieren.
  3. Neuronale Netze benötigen unter Umständen große Datenmengen und Rechenleistungen, um entsprechend gute Leistungen zu erzielen.
  4. Neuronale Netze unterliegen der großen Problematik, dass die Auswertung von fehlerhafter Ergebnisse komplex ist. Vor allem ist unklar, welche Werte das neuronale Netz für Datenpunkte herausgeben wird, welche nicht im Datensatz vorhanden sind - diese werden allerdings häufig in der Praxis verwendet und es nicht möglich alle Werte hierbei zu testen.

Alles in allem sind viele der theoretischen Eigenschaften und Probleme zwar wichtig, allerdings spielen diese in der Realität nur bedingt eine Rolle. Auch kleine neuronale Netze erreichen in vielen Bereichen auch so schon gute Ergebnisse und sind somit häufig anwendbar.


Quellen

Footnotes

  1. wikipedia.org 2 3 4

  2. educba.com 2

  3. ionos.de 2 3 4

  4. geeksforgeeks.com

  5. ibm.com 2 3 4

  6. wikipedia.org

  7. wikipedia.org

  8. wikipedia.org