Neuronales Netz
Ein von biologischen Gehirnen inspiriertes Rechenmodell, das aus vernetzten künstlichen Neuronen besteht und Muster in Daten erkennen kann.
Mathematische Funktionen in neuronalen Netzen, die Nicht-Linearität einführen – ohne sie könnte ein Netz nur lineare Zusammenhänge lernen, egal wie viele Layers es hat.
Aktivierungsfunktionen sind der Grund, warum neuronale Netze komplexe Muster lernen können. Ohne sie wäre ein Netz nur eine lineare Transformation – egal wie viele Layers.
Wie funktioniert es?
Jedes Neuron berechnet eine gewichtete Summe seiner Eingaben. Die Aktivierungsfunktion entscheidet dann, was das Neuron weitergibt – ähnlich wie biologische Neuronen “feuern” oder nicht.
Die wichtigsten Funktionen:
ReLU: f(x) = max(0, x) → Negativ = 0, Positiv = x
Sigmoid: f(x) = 1 / (1 + e^-x) → Quetscht auf 0-1
Softmax: Normalisiert auf Wahrscheinlichkeiten (Summe = 1)
GELU: f(x) = x · Φ(x) → Glatte Version von ReLU (Standard in GPT/BERT)
Welche verwenden? ReLU als Default, GELU für Transformer, Softmax im Output Layer für Klassifikation.
max(0, x) – einfach, schnell, kann aber “sterben” (Dead Neurons)max(0.01x, x) – verhindert tote Neuronenx · Φ(x) – Standard in GPT, BERT, ViTSigmoid und Tanh quetschen Werte in einen kleinen Bereich. Bei vielen Layers werden die Gradienten winzig → tiefe Netze lernen nicht. ReLU löst das, weil der Gradient für positive Werte immer 1 ist.
Vorteile:
Nachteile:
Vorteile:
Nachteile:
Vorteile:
Nachteile:
In einem Convolutional Neural Network (CNN) für die Bildklassifikation wird häufig ReLU als Aktivierungsfunktion in den versteckten Schichten verwendet. Dies ermöglicht es dem Netzwerk, komplexe Muster zu lernen, während Softmax im letzten Layer verwendet wird, um die Klassenzugehörigkeit zu bestimmen.
In einem LSTM-Netzwerk zur Textgenerierung könnte die Sigmoid-Funktion verwendet werden, um zu entscheiden, ob ein bestimmter Zustand beibehalten oder verworfen werden soll. ReLU oder GELU könnten in den versteckten Schichten eingesetzt werden, um die Lernfähigkeit des Modells zu verbessern.
Hier ist ein einfaches Beispiel in Python mit NumPy, um verschiedene Aktivierungsfunktionen zu implementieren:
import numpy as np
def relu(x):
return np.maximum(0, x)
def sigmoid(x):
return 1 / (1 + np.exp(-x))
def softmax(x):
e_x = np.exp(x - np.max(x))
return e_x / e_x.sum(axis=0)
def gelu(x):
return 0.5 * x * (1 + np.tanh(np.sqrt(2 / np.pi) * (x + 0.044715 * np.power(x, 3))))
# Beispielanwendung
input_data = np.array([-2, -1, 0, 1, 2])
print("ReLU:", relu(input_data))
print("Sigmoid:", sigmoid(input_data))
print("Softmax:", softmax(input_data))
print("GELU:", gelu(input_data))
Dieses Snippet zeigt, wie man die gängigsten Aktivierungsfunktionen in Python implementiert und anwendet.
Aktivierungsfunktionen sind wie Entscheidungsschwellen: Ein Neuron sammelt Signale und die Aktivierungsfunktion entscheidet, ob und wie stark es 'feuert' – ähnlich wie biologische Neuronen.
ReLU (Rectified Linear Unit): Standard in modernen Netzen – einfach und effektiv
Sigmoid/Softmax: Für Wahrscheinlichkeiten im Output Layer (0-1)
GELU: Standard in Transformern (GPT, BERT) – glattere Version von ReLU
Klassifikation
Softmax im Output Layer für Wahrscheinlichkeitsverteilung über Klassen
Textgenerierung
GELU in Transformer Hidden Layers, Softmax für Token-Vorhersage
Bildverarbeitung
ReLU in CNNs für schnelles Training und gute Gradientenflüsse
Ohne sie wäre ein neuronales Netz nur eine lineare Transformation – egal wie viele Layers. Erst die Nicht-Linearität ermöglicht es, komplexe Muster wie Sprache oder Bilder zu lernen.
ReLU als Default für die meisten Netze. GELU für Transformer. Softmax im Output Layer für Klassifikation. Sigmoid für binäre Entscheidungen.
Zu den häufigsten Aktivierungsfunktionen gehören die ReLU (Rectified Linear Unit), Sigmoid und Tanh. Jede hat ihre Vor- und Nachteile, abhängig von der spezifischen Anwendung und dem Netzwerkdesign.
Die Wahl der Aktivierungsfunktion kann die Konvergenzgeschwindigkeit und die Fähigkeit des Modells, komplexe Muster zu lernen, erheblich beeinflussen. Eine ungeeignete Funktion kann zu Problemen wie dem Verschwinden des Gradienten führen.