Neuronale Netze erklärt
Die grundlegenden Ideen hinter neuronalen Netzen sind nicht so schwer zu begreifen, wie Sie vielleicht glauben.
Foto: Gorodenkoff | shutterstock.com
Nicht erst seitdem der Generative-AI-Hype um sich greift, fließen enorme gedankliche und monetäre Ressourcen in den Bereich der neuronalen Netzwerke. Die sind die wichtigste Komponente, wenn es darum geht, zu verstehen, was künstliche Intelligenz (KI) ist und wie sie funktioniert.
Auch für Softwareentwickler und andere IT-Profis stellt sich Knowhow in Sachen neuronale Netze zunehmend als nützlich und wichtig heraus – schließlich geht es dabei um einen Innovationsbereich, der vermutlich alle Wirtschaftsbranchen in den kommenden Jahrzehnten wesentlich prägen wird.
In diesem Artikel beschäftigen wir uns mit den Grundlagen neuronaler Netzwerke und gehen dabei auf ihre gängigsten Ausprägungen ein.
Das Perceptron
Alle neuronalen Netze teilen eine grundlegende Eigenschaft: Es handelt sich um eine Gruppe von Netzwerkknoten (Nodes), die miteinander in Beziehung stehen. Aus technischer Perspektive wäre die Bezeichnung Graph eigentlich korrekter, denn die Eigenschaften der Nodes und die Art und Weise, wie ihre Edges miteinander verbunden sind, variiert stark. Dabei stellt ein einzelner Knoten die simpelste Struktur dar.
Ganz generell versuchen neuronale Netze, sich der Funktionsweise des menschlichen Gehirns anzunähern. Das früheste, mathematische Konzept, das davon inspiriert wurde, ist das Perceptron. Dabei ist es wichtig im Hinterkopf zu behalten, dass sich neuronale Netze und das menschliche Gehirn ganz wesentlich voneinander unterscheiden, insbesondere, wenn es um das “Verstehen” geht. Das können Software-Neuronen nicht.
Im Allgemeinen versteht man unter einem “Neuron” einen Knoten, der einen oder mehrere Inputs annimmt, eine Entscheidung über den zu generierenden Output trifft und diesen anschließend entweder an den nächsten Knoten oder als finalen Output weiterleitet.
Neuronale Netze und das menschliche Gehirn
Die Analogie zum menschlichen Gehirn kann zu Verwirrung führen. Neuronale Netze weisen im Gegensatz zum Gehirn kein “Bewusstsein” auf – sind aber dennoch enorm leistungsfähige algorithmische Modelle. Jedes Problem, das mit einer Verlustfunktion auf eine Reihe von Inputs und Outputs reduziert werden kann, eignet sich für neuronale Netzwerke – unter Einbeziehung enormer Datenmengen versteht sich.
Ein einfaches Perceptron mit zwei Inputs und einem Output.
Foto: IDG
Jeder Input wird dabei mit einer Gewichtung (“Weight”) multipliziert. Auf diese Weise lässt sich der Einfluss der Inputs justieren, der schließlich addiert und einem Bias hinzugefügt wird. Der Bias ermöglicht, den Gesamteinfluss eines Knotens abzustimmen. Ein mathematisches Diagramm des einschichtigen Perceptron-Modells finden Sie hier.
Der resultierende Wert (“Value”) wird schließlich der Aktivierungsfunktion übergeben. Diese Funktion kann viele Formen annehmen – in einem Perceptron handelt es sich um eine Schwellenwertfunktion (oft die Heaviside-Step-Funktion). Diese generiert im Wesentlichen den Output 1, wenn der Wert hoch genug ist – ansonsten 0. Anders ausgedrückt: Diese Funktion fungiert als “Gate”. Der einfache On/Off Output ist ein charakteristisches Merkmal des Perceptron. Auf Node-Ebene ist dieses Grund-Layout universell für neuronale Netze, allerdings kann die Zahl der Inputs und Outputs variieren. Die Informationen, die in ein Neuron eingespeist werden, werden oft als dessen “Features” bezeichnet.
Um Verwirrung vorzubeugen: Das Perceptron wird im Regelfall isoliert verwendet, soll heißen als Single-Node-Netz. Mehrere Perceptrons lassen sich zudem in einem einzelnen Layer kombinieren. Kommen mehrere Layer zum Einsatz, spricht man von einem Feedforward-Netzwerk (dazu später mehr).
Loss Functions und Machine Learning
Perceptrons – und neuronale Netze im Allgemeinen – brauchen eine Möglichkeit, um ihre “Weights” und “Biases” feinabzustimmen und ihre Performance zu optimieren. Letztere wird durch eine Verlustfunktion (“Loss Function”) gemessen. Diese Funktion teilt dem Netz mit, wie es bei einer Berechnung abgeschnitten hat. Diese Information wird anschließend genutzt, um den respektive die Nodes feinabzustimmen. Allgemein kommt bei der Anpassung von Gewichtung und Bias der Gradient-Descent-Algotithmus (Gradientenabstieg) zur Anwendung.
Die Modifikation von “Weights” und “Biases” bildet das Herzstück beim maschinellen Lernen in neuronalen Netzen.
Foto: IDG
Im Folgenden betrachten wir verschiedene weitere Formen von neuronalen Netzwerken, die auf dem Perceptron-Modell aufbauen – und darüber hinausgehen.
Feedforward-Netzwerke
Feedforward-Netze bieten im Vergleich zu Perceptrons ein deutlich höheres Maß an Flexibilität, sind dabei aber dennoch relativ simpel aufgebaut. Im Wesentlichen unterscheidet sich ein Feedforward-Netz von einem Perceptron durch eine ausgefeiltere Aktivierungsfunktion, die in der Regel mehr als einen Layer umfasst und bei die Knoten nicht nur 0 oder 1 ausgeben, sondern eine dynamische Variable.
Die Form des Gradientenverfahrens, die bei solchen Netzwerken verwendet wird, ist ebenfalls komplexer – im Regelfall kommt hier Backpropagation zum Einsatz. Diese betrachtet das Netz wie eine große, multivariate Kalkulationsgleichung und nutzt partielle Differenzierung, um es feinabzustimmen.
So funktioniert Feedforward Learning.
Foto: IDG
Das obenstehende Schaubild visualisiert ein prototypisches Feedforward-Netzwerk. Es zeichnet sich durch einen Input-Layer und zwei darauf folgende Neuronen-Layer aus. Dabei können die Nodes und Layer auf höchst unterschiedliche Art und Weise miteinander verbunden sein. In unserem konkreten Fall handelt es sich um vollständig verbundene oder “dichte” (“dense”) Layer, weil der Output der Nodes jeweils an die Nodes der nächsten Schicht gesendet wird. Die inneren Layer eines neuronalen Netzwerks werden auch als “hidden” (versteckt) bezeichnet. Wichtig: Feedforward-Netzwerke schieben Input und Output stets nach “vorne” und niemals rückwärts.
Recurrent Neural Networks (RNNs)
Im Fall rekurrenter neuronaler Netze verhält es sich anders: Hier können sich die Daten zwischen den einzelnen Schichten auch rückwärts bewegen. Das eröffnet vielfältige Möglichkeiten, im Rahmen von RNNs anspruchsvollere Lerntechniken einzusetzen – was jedoch auch für mehr Komplexität sorgt. Diese Neural-Network-Form bezeichnet man auch als zyklischen Graphen. Man könnte auch davon sprechen, dass rekurrente neuronale Netze eine Form des Feedbacks beinhalten.
Das zyklische Muster der Datenbewegung in einem RNN.
Foto: IDG
Gehirn vs. RNN
Involvierte Strukturen wie RNNs dehnen die Neuronen-Analogie deutlich aus. Die Art der Rückwärtsbewegung, wie sie in einem rekurrenten neuronalen Netz stattfindet, kommt in biologischen Systemen nicht vor.
Ein weiteres Merkmal von RNNs ist der sogenannte “hidden state”. Das bedeutet, dass Netzwerkknoten einige Daten intern speichern können, während sie laufen – im Grunde eine Art Machine Memory. Weil die Schichten in einem RNN wiederholt durchlaufen werden können, ermöglicht “hidden state” dem Netzwerk, aus den Daten Erkentnisse über langfristige Auswirkungen zu ziehen.
Rekurrente neuronale Netze werden heute auf breiter Basis eingesetzt und auf vielfältige Weise implementiert. Am gebräuchlichsten ist dabei wohl das Long-Short-Term-Memory (LSTM)-Netzwerk. Diese RNN-Form kombiniert relativ komplexe Knoten mit einer Reihe von Gates und Internal State, um zu bestimmen, was wertvoll ist (“forget gate”) und wie der Input und Output aussehen soll (“input and output gates”). Rekurrente neuronale Netze eignen sich besonders gut für sequenzielle Daten wie Zeitreihen.
Convolutional Neural Networks (CNNs)
Convolutional Neural Networks sind darauf konzipiert, Datenraster zu verarbeiten – insbesondere Bilder. Entsprechend stellen CNNs eine wichtige Komponente dar, wenn es darum geht, generative KI-Modelle wie Stable Diffusion zu entwickeln.
CNNs verwenden Matrixfilter, die sich wie eine Art Fenster über die zweidimensionalen Quelldaten bewegen, Daten extrahieren und diese miteinander in Beziehung setzen. Im Ergebnis entsteht ein detailliertes, zusammenhängendes Bild der Daten. Deswegen eignen sich Convolutional Neural Networks auch in besonderem Maße dazu, Bilder zu verarbeiten.
Dabei folgen die meisten CNNs einem zweistufigen Prozess: Auf die “Filterarbeit” folgt ein “Flattening”, das in ein Feedforward-Netzwerk eingespeist wird. Die Filterphase erfolgt dabei häufig auf der Grundlage eines Datenrasters. Obwohl also ein Gradient-Descent-Algorithmus zur Anwendung kommt, um auf der Grundlage einer Verlustfunktion zu lernen, ist der Gesamtprozess nicht mit einem neuronalen Netz vergleichbar.
Ein weiterer wichtiger Aspekt bei CNNs ist das sogenannte “Pooling”, bei dem die in der Filterphase erzeugten Daten aus Effizienzgründen komprimiert werden. Das dient dazu, die relevanten Aspekte des Outputs zu erhalten und gleichzeitig die Dimensionalität der Daten zu reduzieren.
Eine verallgemeinerte Ansicht des typischen Datenflusses in einem CNN.
Foto: IDG
Transformer-Netzwerke
Transformers sind im GenAI-Zeitalter ein brandheißes Thema, schließlich bilden sie die architektonische Grundlage für Large Language Models. Transformer-Netzwerke ermöglichen einen “Attention Mechanism” und nutzen dazu eine Encoder-Decoder-Struktur. Der Attention Mechanism markiert einen Durchbruch im Bereich Language Processing, weil er KI-Modellen ermöglicht, sich auf das Wesentliche “zu fokussieren”. Transformers sind äußerst leistungsfähig, aber auch enorm komplex. Zudem erfordern sie erhebliche Rechenressourcen.
Adversarial Networks
Eine der interessantesten, neueren Ideen im Bereich neuronale Netze ist das Adversarial Network, bei dem zwei Modelle gegeneinander antreten. Ein Modell versucht dabei, Vorhersagen zu treffen, das andere, herauszufinden, welche Prognosen falsch sind.
Auf hoher Ebene betrachtet, handelt es sich dabei um einen ausgeklügelten Loss-Mechanismus, bei dem das gegnerische Modell als Verlustfunktion fungiert. (fm)
Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.
Hier finden Sie den kompletten Artikel: