Künstliche neuronale Netze (KNN), inspiriert von der Funktionsweise des menschlichen Gehirns, haben sich zu einem Eckpfeiler moderner künstlicher Intelligenz (KI) entwickelt. Diese komplexen Systeme ermöglichen es Computern, Aufgaben zu bewältigen, die einst als ausschliesslich menschliche Domäne galten. Dieser Artikel beleuchtet die Funktionsweise neuronaler Netze, insbesondere den Prozess des "Feuerns" von Neuronen, und untersucht die vielfältigen Anwendungen und Auswirkungen dieser Technologie.
Grundlagen neuronaler Netze
Aufbau und Funktionsweise
Künstliche neuronale Netze sind Modelle, die in ihrer Entwicklung ursprünglich durch das biologische Vorbild natürlicher Neurone inspiriert wurden. Sie bestehen aus miteinander verknüpften Knoten, die simulierten Neuronen bzw. Verbänden von Neuronen, sogenannten Assemblies, entsprechen. Diese Knoten kommunizieren miteinander über gewichtete Verbindungen, welche simulierten Synapsen entsprechen. Der Einfluss von Knoten aufeinander hängt von der Stärke ihrer Verbindung ab. Verbindungen können ein positives oder ein negatives Gewicht haben und damit sowohl exzitatorische als auch inhibitorische Synapsen nachahmen. Verändern sich die Verbindungsgewichte, spricht man von Lernen.
Die Knoten lassen sich zu Schichten zusammenfassen. In der Regel verfügen neuronale Netze über eine Input- und eine Outputschicht, in denen Aktivierungen entweder als Inputmuster erzeugt oder als Reaktion des Netzes abgelesen werden. Die meisten Modelle beinhalten dazwischen noch eine oder mehrere Schichten, sogenannte Hidden Layers, die einer komplexeren Verarbeitung dienen.
Das Neuron als Recheneinheit
Knoten sind als simulierte Neurone kleine Recheneinheiten. Sie wandeln einen Input x in einen Output o um. Der Input ist ein Vektor aus Aktivierungsstärken oder Feuerraten. Dieser wird an den simulierten Synapsen gewichtet und schließlich aufsummiert, sodass ein einzelner Wert, der Netzinput, übrigbleibt. Um aus diesem die Outputaktivierung zu berechnen, wird eine Aktivierungsfunktion zwischengeschaltet, welche jedem Netzinput eine Outputstärke zuordnet. Dies kann zum Beispiel eine lineare Funktion, eine Sigmoidfunktion oder eine Schwellwertfunktion sein.
Das "Feuern" eines Neurons
Eine Schwellwertfunktion implementiert die Aktivierungsschwelle, die jedes einzelne natürliche Neuron auszeichnet. Bis zu einer bestimmten Inputstärke bleibt das Neuron inaktiv, bei darüber hinausgehendem Input entwickelt es ein Aktionspotential, es „feuert“. Dieser Schwellwert ist für jedes Neuron individuell und variiert über Neuone hinweg. An dieser Stelle ist es wichtig, das Knoten in Netzen oftmals nicht einzelne Neurone simulieren, sondern eigentlich viele Neurone, sogenannte Neuronenverbände (neural assemblies). Entsprechend unscharf wird die Aktivierungsschwelle des gesamten Knotens, denn einige Neurone feuern leichter und einige schwerer. Eine Sigmoidfunktion fasst diese individuellen Schwellwerte zusammen, indem sie die Aktivierungsstärke nicht mehr sprungartig, sondern soft, abhängig von der Anzahl der bereits feuernden Neurone, abbildet.
Lesen Sie auch: Ursachen, Symptome und Behandlungen von Motoneuron-Erkrankungen
Analogie zum menschlichen Gehirn
Das menschliche Gehirn besteht aus etwa 86 Milliarden Neuronen, die über Synapsen miteinander kommunizieren. Künstliche neuronale Netze simulieren diesen biologischen Prozess, indem sie mathematische Modelle verwenden, um die Art und Weise zu replizieren, wie Neuronen feuern und Signale übertragen. Im Gehirn stärken oder schwächen Synapsen die Verbindungen zwischen Neuronen. In neuronalen Netzen werden die Gewichte während des Trainings angepasst, um die Leistung zu optimieren. Sowohl das Gehirn als auch neuronale Netzwerke lernen aus Erfahrung. Das Gehirn passt sich durch Neuroplastizität an, während neuronale Netzwerke sich durch Backpropagation verbessern, eine Methode, die Fehler durch Anpassung der Gewichte minimiert.
Lernprozesse in neuronalen Netzen
Lernregeln
Die einfachste Lernregel, die sogenannte Hebb’sche Regel, besagt zum Beispiel, dass die Verbindung zwischen zwei Neuronen dann gestärkt wird, wenn diese gemeinsam aktiv sind. Dadurch werden assoziative Lernvorgänge erzielt.
Tiefes Lernen
Tiefes Lernen ist eine Hauptfunktion eines KNN. Bei einer vorhandenen Netzstruktur bekommt jedes Neuron ein zufälliges Anfangsgewicht zugeteilt. Das Ergebnis dieser Berechnung wird an die nächsten Neuronen der nächsten Schicht oder des nächsten Layers weitergegeben, man spricht auch von einer „Aktivierung der Neuronen“. Natürlich sind, wie bei jedem maschinellen Lernverfahren, nicht alle Ergebnisse (Outputs) korrekt und es treten Fehler auf. Diese Fehler sind berechenbar, ebenso wie der Anteil eines einzelnen Neurons am Fehler. Im nächsten Durchlauf wird der Fehler erneut gemessen und angepasst. Dieser Prozess ist dem menschlichen Entscheidungsprozess sehr ähnlich.
Backpropagations-Verfahren
Backpropagations-Verfahren ist ein überwachtes Lernverfahren, mit dem der Fehler im Gesamtsystem zunächst bestimmt und dann schrittweise rückwärts durch die Schichten des neuronalen Netzes, durch Anpassung der Kantengewichte, solange minimiert wird, bis er unter einem vorgegebenen Grenzwert liegt.
Anpassung der Gewichte
Während des Trainings werden die Kantengewichte so angepasst, dass das neuronale Netz bei Eingabe eines Werts die passende bzw. erwartete Ausgabe berechnet. Diese Anpassung der Gewichte entspricht dem „Lernen“ des neuronalen Netzwerks. Die Hebbsche Lernregel ist eine Regel, die zur Anpassung der Gewichte je Kante herangezogen wird.
Lesen Sie auch: Fliegen und Drohnen im Fokus
Neuronale Netzwerkarchitekturen
Es gibt unzählig viele Typen von neuronalen Netzwerk-Architekturen. Hier sind einige der wichtigsten:
Perzeptron
Das einfachste und älteste neuronale Netz. Es nimmt die Eingabeparameter, addiert diese, wendet die Aktivierungsfunktion an und schickt das Ergebnis an die Ausgabeschicht. Das Ergebnis ist binär, also entweder 0 oder 1 und damit vergleichbar mit einer Ja- oder Nein-Entscheidung. Die Entscheidung erfolgt, indem man den Wert der Aktivierungsfunktion mit einem Schwellwert vergleicht. Bei Überschreitung des Schwellwertes, wird dem Ergebnis eine 1 zugeordnet, hingegen 0 wenn der Schwellwert unterschritten wird. Darauf aufbauend wurden weitere Neuronale Netzwerke und Aktivierungsfunktionen entwickelt, die es auch ermöglichen mehrere Ausgaben mit Werten zwischen 0 und 1 zu erhalten. Am bekanntesten ist die Sigmoid-Funktion, in dem Fall spricht man auch von Sigmoid-Neuronen. Der Ursprung dieser neuronalen Netze liegt in den 1950 Jahren.
Feedforward-Netzwerke
Sie zeichnen sich dadurch aus, dass die Schichten lediglich mit der nächst höheren Schicht verbunden sind. Es gibt keine zurückgerichteten Kanten. In einfachen Feedforward Netzen fließen alle Daten nur in eine Richtung, von der Eingabe über allfällige verdeckte Schichten zur Ausgabe. Es gibt keine Rückkopplungsschleifen.
Faltende Neuronale Netze (CNN)
Faltende Neuronale Netze oder auch Convolutional Neural Networks (CNN), sind Künstliche Neuronale Netzwerke, die besonders effizient mit 2D- oder 3D-Eingabedaten arbeiten können. Der große Unterschied zu den klassischen neuronalen Netzen liegt in der Architektur der CNNs, die auch den Namen „Convolution“ oder „Faltung“ erklärt. Bei CNNs basiert die verborgene Schicht auf einer Abfolge von Faltungs- und Poolingoperationen. Bei der Faltung wird ein sogenannter Kernel über die Daten geschoben und währenddessen eine Faltung berechnet, was mit einer Multiplikation vergleichbar ist. Die Neuronen werden aktualisiert. Die anschließende Einführung einer Pooling-Schicht sorgt für eine Vereinfachung der Ergebnisse. Dies sorgt auch dafür, dass die 2D- oder 3D-Eingangsdaten kleiner werden. Setzt man diesen Prozess fort, so erhält man am Ende in der Ausgabeschicht einen Vektor, den „fully connected layer“.
Rekurrente Neuronale Netze (RNN)
Recurrent Neural Networks (RNN) fügen den KNN wiederkehrende Zellen hinzu, wodurch neuronale Netze ein Gedächtnis erhalten. Das erste künstliche, neuronale Netzwerk dieser Art war das Jordan-Netzwerk, bei dem jede versteckte Zelle ihre eigene Ausgabe mit fester Verzögerung - eine oder mehrere Iterationen - erhielt. Natürlich gibt es viele Variationen, wie z.B. die Übergabe des Status an die Eingangsknoten, variable Verzögerungen usw., aber die Grundidee bleibt die gleiche. Diese Art von NN wird insbesondere dann verwendet, wenn der Kontext wichtig ist. In diesem Fall haben Entscheidungen aus früheren Iterationen oder Stichproben einen signifikanten Einfluss auf die aktuellen Iterationen. Da rekurrente Netze jedoch den entscheidenden Nachteil haben, dass sie mit der Zeit instabil werden, ist es mittlerweile üblich, sogenannte Long Short-Term Memory Units (kurz: LSTMs) zu verwenden. Das häufigste Beispiel für solche Abhängigkeiten ist die Textverarbeitung - ein Wort kann nur im Zusammenhang mit vorhergehenden Wörtern oder Sätzen analysiert werden. Ein weiteres Beispiel ist die Verarbeitung von Videos, z.B. beim autonomen Fahren.
Lesen Sie auch: Die Rolle des Zellkörpers in Neuronen
Autoencoder
Autoencoder sind neuronale Netzwerke, die dazu dienen, Daten zu komprimieren und dann wieder möglichst vollständig zu rekonstruieren. Der Encoder vereinfacht die Eingabe und erzeugt eine latente Darstellung der Eingaben. Für Anomalie-Erkennungen wird der Autoencoder mit einem Datenset normaler Daten trainiert. Wird das so kalibrierte Modell dann mit abweichenden Daten versorgt, lassen sich Anomalien erkennen.
Generative Adversarial Networks (GANs)
GANs bestehen aus zwei einander feindlichen neuronalen Netzwerken, dem Generator und dem Diskriminator, die gegeneinander antreten. Sie werden zur Generierung von Daten, wie Bildern, verwendet. Bei diesem deep-learning basiertem generativen Model erzeugt ein Generator Proben, die von einem Diskriminator „auf Echtheit“ bewertet werden.
Anwendungen neuronaler Netze
Künstliche neuronale Netze ähneln der Funktionsweise des menschlichen Gehirns und eignen sich daher hervorragend für alle Bereiche des maschinellen Lernens und der künstlichen Intelligenz. Aufgrund der vielen Vorteile von künstlichen neuronalen Netzen können viele komplexe Probleme in den Bereichen Statistik, Informatik und Wirtschaft von Computern gelöst werden. Typischerweise sind sie prädestiniert für solche Bereiche, bei denen wenig systematisches Wissen vorliegt, aber eine große Menge unpräziser Eingabeinformationen (unstrukturierte Daten) verarbeitet werden müssen, um ein konkretes Ergebnis zu erhalten. Das kann zum Beispiel in der Spracherkennung, Mustererkennung, Gesichtserkennung oder Bilderkennung der Fall sein.
Einige konkrete Beispiele für Anwendungen sind:
- Bilderkennung: Neuronale Netze werden verwendet, um Objekte, Gesichter und Szenen in Bildern zu erkennen.
- Spracherkennung: Sie ermöglichen es Computern, menschliche Sprache zu verstehen und zu verarbeiten.
- Robotik: Neuronale Netze steuern Roboter und ermöglichen es ihnen, komplexe Aufgaben auszuführen.
- Medizinische Bildgebung: Sie unterstützen bei der Diagnose von Krankheiten anhand von medizinischen Bildern.
- Autonome Fahrzeuge: Neuronale Netze sind ein wesentlicher Bestandteil selbstfahrender Autos.
- Empfehlungssysteme: Sie werden verwendet, um personalisierte Empfehlungen für Produkte, Filme oder Musik zu geben.
Herausforderungen und Zukunftsperspektiven
Obwohl neuronale Netze bemerkenswerte Fortschritte erzielt haben, gibt es noch Herausforderungen zu bewältigen:
- Datenabhängigkeit: Neuronale Netze benötigen große Mengen an Trainingsdaten, um effektiv zu lernen.
- Rechenaufwand: Das Training großer neuronaler Netze kann sehr rechenintensiv sein.
- Erklärbarkeit: Die Entscheidungen neuronaler Netze sind oft schwer nachvollziehbar.
- Overfitting: Neuronale Netze können zu spezifisch auf Trainingsdaten lernen und schlecht auf neue Daten generalisieren. Verhindere es durch weniger komplexe Modelle, Regularisierung oder Validierung.
Die Zukunft der neuronalen Netze ist jedoch vielversprechend. Innovationen wie spikende neuronale Netze (die die Timing-Mechanismen des Gehirns besser nachahmen) und neuronale Quantennetzwerke (die das Quantencomputing nutzen) versprechen, die derzeitigen Einschränkungen zu überwinden. Darüber hinaus werden Bemühungen, die Erklärbarkeit zu verbessern und den Ressourcenbedarf zu reduzieren, neuronale Netze zugänglicher und vertrauenswürdiger machen.