GELU

Manche Signale in einem neuronalen Netz sollen durchgelassen werden, andere nicht. GELU entscheidet das nicht mit einem harten Schnitt, sondern mit einer weichen Gewichtung: Je wahrscheinlicher ein Wert positiv ist, desto stärker wird er weitergeleitet. Dieses Verhalten macht GELU zur Standard-Aktivierungsfunktion in Transformern wie BERT und GPT-2.

Was Aktivierungsfunktionen leisten

In jedem neuronalen Netz berechnet eine Schicht zunächst eine gewichtete Summe ihrer Eingaben. Ohne weiteren Schritt wäre das gesamte Netz eine lineare Abbildung. Egal wie viele Schichten hintereinander geschaltet werden: Das Ergebnis ließe sich immer durch eine einzige Matrixmultiplikation ersetzen. Das Netz könnte nur lineare Zusammenhänge abbilden.

Aktivierungsfunktionen brechen diese Linearität auf. Sie transformieren die Ausgabe jeder Schicht durch eine nichtlineare Funktion. Erst dadurch kann ein Netz komplexe Muster erkennen: Kanten in Bildern, syntaktische Strukturen in Sätzen, Zusammenhänge zwischen Variablen in tabellarischen Daten.

Beispiel: Ein Feed-Forward-Netz mit drei Schichten, aber ohne Aktivierungsfunktion, kann nur eine Gerade durch Datenpunkte legen. Mit einer nichtlinearen Aktivierungsfunktion zwischen den Schichten kann dasselbe Netz beliebig gekrümmte Entscheidungsgrenzen erlernen.

Beispiel: In einem Sprachmodell verarbeitet die Aktivierungsfunktion die Zwischenergebnisse der Feed-Forward-Blöcke. Ohne sie wäre der gesamte Transformer-Block eine lineare Transformation, die Wortbedeutungen nur verschieben und skalieren könnte, aber nicht kontextabhängig mischen.

ReLU als Vorgänger

Vor GELU war ReLU (Rectified Linear Unit) die dominierende Aktivierungsfunktion. Ihr Prinzip: Positive Werte werden unverändert durchgelassen, negative Werte auf null gesetzt. Mathematisch: ReLU(x) = max(0, x).

ReLU löste ein praktisches Problem. Ältere Funktionen wie der Tangens hyperbolicus (tanh) oder die Sigmoidfunktion hatten in den Randbereichen extrem kleine Gradienten. Während des Trainings verschwanden die Lernsignale in tiefen Netzen fast vollständig. ReLU beseitigte dieses Problem für positive Werte: Der Gradient ist dort konstant 1.

Beispiel: Bei einem Eingabewert von 3,7 gibt ReLU exakt 3,7 zurück. Bei einem Wert von -2,1 gibt ReLU exakt 0 zurück. Es gibt keinen Übergangsbereich.

Dieser harte Schnitt bei null erzeugt jedoch ein eigenes Problem: Neuronen, die einmal einen negativen Wert empfangen, geben dauerhaft null aus. Der Gradient wird ebenfalls null, das Neuron lernt nicht mehr weiter. Dieses Phänomen heißt "dying neurons". In der Praxis betrifft es bei schlecht initialisierten Netzen einen signifikanten Anteil der Neuronen.

Beispiel: In einem Netz mit 768 Neuronen pro Schicht können nach einigen Trainingsschritten 10 bis 30 Prozent der Neuronen dauerhaft inaktiv sein, wenn die Lernrate zu hoch gewählt wurde. Diese Neuronen belegen Speicher und Rechenzeit, tragen aber nichts zum Ergebnis bei.

Wie GELU mathematisch funktioniert

GELU multipliziert jeden Eingabewert x mit der Wahrscheinlichkeit, dass eine standardnormalverteilte Zufallsvariable kleiner oder gleich x ist. Formal:

GELU(x) = x · Φ(x)

Dabei ist Φ(x) die kumulative Verteilungsfunktion (CDF) der Standardnormalverteilung. Für große positive x nähert sich Φ(x) dem Wert 1, das Ergebnis ist nahezu x selbst. Für große negative x nähert sich Φ(x) dem Wert 0, das Ergebnis wird nahezu null. Im Bereich um null liegt ein glatter, S-förmiger Übergang.

Beispiel: Für x = 2,0 ist Φ(2,0) ≈ 0,977. GELU(2,0) = 2,0 × 0,977 = 1,954. Der Wert wird fast vollständig durchgelassen.

Beispiel: Für x = -1,0 ist Φ(-1,0) ≈ 0,159. GELU(-1,0) = -1,0 × 0,159 = -0,159. Der Wert wird stark gedämpft, aber nicht auf null gesetzt. Das unterscheidet GELU von ReLU.

In der Praxis wird die exakte CDF-Berechnung durch eine Approximation ersetzt. Die gebräuchlichste Näherungsformel verwendet den Tangens hyperbolicus:

GELU(x) ≈ 0,5 · x · (1 + tanh(√(2/π) · (x + 0,044715 · x³)))

Diese Approximation weicht von der exakten GELU-Funktion um maximal 0,004 ab und ist auf GPUs effizient berechenbar.

Fachliche Einordnung: Die Verwendung der Normalverteilungs-CDF ist nicht willkürlich. Hendrycks und Gimpel (2016) argumentieren, dass die stochastische Regularisierung durch Dropout konzeptionell ähnlich ist: Beide Mechanismen gewichten Neuronen basierend auf ihrem Wert. GELU integriert diesen Gedanken direkt in die Aktivierungsfunktion, statt ihn als separaten Dropout-Schritt zu implementieren.

Unterschiede zwischen ReLU und GELU im Detail

Der zentrale Unterschied liegt im Verhalten bei und nahe null. ReLU hat an der Stelle x = 0 einen Knick: Links davon ist die Funktion exakt null, rechts davon steigt sie linear an. Der Gradient springt von 0 auf 1. GELU hat an derselben Stelle einen glatten Übergang. Der Gradient verändert sich kontinuierlich.

Beispiel: Bei x = 0 gibt ReLU den Wert 0 mit Gradient 0 (oder undefiniert) zurück. GELU gibt den Wert 0 zurück, aber mit einem Gradienten von etwa 0,5. Das Neuron kann also auch bei einem aktuellen Wert von null noch Lernsignale empfangen.

Eingabewert x
ReLU: max(0, x)
GELU: x · Φ(x)
x < 0: Ausgabe = 0Gradient = 0 (tot)
x < 0: Ausgabe ≈ kleinGradient > 0 (aktiv)
Dying Neurons möglich
Alle Neuronen lernfähig

Ein weiterer Unterschied betrifft die Rechenkosten. ReLU erfordert pro Neuron einen einzigen Vergleich (x > 0?). GELU erfordert mehrere Multiplikationen, eine Kubierung und eine tanh-Berechnung. Auf modernen GPUs ist dieser Mehraufwand vernachlässigbar, weil die tanh-Funktion in Hardware beschleunigt wird. Auf CPUs oder eingebetteten Systemen kann er jedoch relevant sein.

Wo GELU in Transformer-Architekturen sitzt

In einem Transformer-Block folgt auf den Attention-Mechanismus ein Feed-Forward-Netz (FFN). Dieses FFN besteht typischerweise aus zwei linearen Schichten mit einer Aktivierungsfunktion dazwischen:

FFN(x) = W2 · GELU(W1 · x + b1) + b2

Die erste lineare Schicht projiziert den Eingabevektor (z.B. Dimension 768 bei BERT-base) auf eine höhere Dimension (z.B. 3072, also Faktor 4). GELU wird auf jeden der 3072 Werte einzeln angewendet. Die zweite lineare Schicht projiziert zurück auf die ursprüngliche Dimension.

Beispiel: In BERT-base durchläuft jedes Embedding zwölf Transformer-Blöcke. In jedem Block wird GELU auf 3072 Werte angewendet. Bei einer Eingabesequenz von 512 Positionen berechnet ein einziger Forward Pass 512 × 12 × 3072 = 18.874.368 GELU-Aktivierungen.

Beispiel: GPT-2 Large hat 36 Schichten mit einer FFN-Dimension von 5120. Pro Position und Schicht werden 5120 GELU-Werte berechnet. Bei einer Sequenzlänge von 1024 ergibt das pro Forward Pass über 188 Millionen GELU-Operationen.

Varianten und Weiterentwicklungen

GELU hat mehrere Nachfolger inspiriert, die das Grundprinzip der weichen Gewichtung beibehalten, aber in Details variieren.

SwiGLU

SwiGLU (Swish-Gated Linear Unit) kombiniert eine Swish-Aktivierung mit einem Gating-Mechanismus. Statt einer einzelnen Aktivierungsfunktion verwendet SwiGLU zwei parallele lineare Projektionen, von denen eine durch Swish aktiviert und dann elementweise mit der anderen multipliziert wird:

SwiGLU(x) = Swish(W1 · x) ⊙ (W2 · x)

Shazeer (2020) zeigte, dass SwiGLU bei gleicher Parameteranzahl bessere Ergebnisse als GELU liefert. LLaMA und PaLM verwenden SwiGLU in ihren FFN-Blöcken.

Beispiel: LLaMA-2 (70B) verwendet SwiGLU mit einer FFN-Dimension von 28672. Die Gating-Multiplikation verdoppelt die Parameteranzahl in der ersten FFN-Schicht gegenüber GELU, aber die bessere Expressivität kompensiert diesen Mehraufwand.

GeGLU

GeGLU (GELU-Gated Linear Unit) verwendet GELU statt Swish als Aktivierung im Gating-Mechanismus. Die Unterschiede zu SwiGLU sind in der Praxis gering, aber messbar.

Beispiel: In Vergleichstests auf dem C4-Datensatz lag GeGLU in der Perplexity zwischen Standard-GELU (schlechter) und SwiGLU (besser). Der Unterschied zwischen GeGLU und SwiGLU betrug typischerweise weniger als 0,5 Perplexity-Punkte.

GELU-Approximationen

Verschiedene Frameworks verwenden leicht unterschiedliche GELU-Implementierungen. PyTorch bietet sowohl die exakte Berechnung über die Error Function (erf) als auch die tanh-Approximation an. Beide Varianten liefern in der Praxis identische Trainingsergebnisse, aber die tanh-Version ist auf älterer GPU-Hardware schneller.

Warum GELU in der Praxis bessere Ergebnisse liefert

Die empirische Überlegenheit von GELU gegenüber ReLU in Transformer-Architekturen lässt sich auf mehrere Faktoren zurückführen.

Erstens: Glatte Gradienten. Der kontinuierliche Gradient von GELU vermeidet abrupte Änderungen während der Backpropagation. Das stabilisiert das Training, besonders bei tiefen Netzen mit vielen Schichten.

Zweitens: Probabilistische Gewichtung. GELU unterdrückt kleine negative Werte nicht vollständig, sondern reduziert sie proportional. Das ermöglicht dem Netz, auch aus schwachen Signalen Information zu extrahieren.

Drittens: Implizite Regularisierung. Die stochastische Interpretation von GELU (Gewichtung nach Normalverteilung) wirkt ähnlich wie eine schwache Form von Dropout. Das kann Überanpassung an Trainingsdaten reduzieren, ohne einen separaten Regularisierungsschritt einzuführen.

Beispiel: Hendrycks und Gimpel (2016) testeten GELU gegen ReLU auf MNIST, CIFAR-10 und mehreren NLP-Benchmarks. GELU übertraf ReLU konsistent, wenn auch mit geringem Abstand (oft unter einem Prozentpunkt Accuracy-Unterschied). Der Vorteil vergrößerte sich mit zunehmender Modelltiefe.

Fachliche Einordnung: Die Überlegenheit von GELU ist nicht in allen Kontexten garantiert. Für Convolutional Neural Networks und flache Architekturen zeigen Studien gemischte Ergebnisse. Der stärkste Vorteil tritt bei tiefen Transformer-Architekturen auf, bei denen die Gradientenstabilität über viele Schichten hinweg kritisch ist. Für ressourcenbeschränkte Anwendungen auf Mobilgeräten oder eingebetteten Systemen kann ReLU aufgrund der geringeren Rechenkosten die bessere Wahl bleiben.

Grenzen und offene Fragen

GELU hat sich als robuste Standardwahl etabliert, ist aber keine universelle Lösung.

Die Rechenkosten sind höher als bei ReLU. In Szenarien mit extrem begrenztem Rechenbudget (Edge-Geräte, Echtzeit-Inferenz auf CPUs) kann der Mehraufwand relevant sein. Quantisierte Modelle verwenden manchmal vereinfachte Aktivierungsfunktionen, um die Inferenz zu beschleunigen.

Die theoretische Begründung für die Überlegenheit von GELU ist nicht vollständig geklärt. Die Normalverteilungsannahme, auf der GELU basiert, hat keinen zwingenden physikalischen oder mathematischen Grund. Andere glatte Funktionen wie Swish (x · σ(x)) oder Mish (x · tanh(softplus(x))) zeigen ähnliche Ergebnisse.

Beispiel: Ramachandran et al. (2017) suchten mit automatisierten Methoden nach optimalen Aktivierungsfunktionen und fanden Swish (x · sigmoid(x)), das GELU ähnelt, aber unabhängig entdeckt wurde. Beide Funktionen haben einen glatten Übergang bei null und erlauben kleine negative Ausgaben.

Neuere Gating-basierte Varianten wie SwiGLU zeigen in großen Sprachmodellen bessere Ergebnisse als reines GELU. Der Trend geht zu Aktivierungsfunktionen, die mehr Parameter und mehr Expressivität in die Feed-Forward-Blöcke einbringen. Ob GELU langfristig als Standard bestehen bleibt oder von Gating-Varianten vollständig abgelöst wird, ist offen.

Beispiel: In der Chinchilla-Studie (Hoffmann et al., 2022) wurde GELU als Aktivierungsfunktion beibehalten. In der LLaMA-Studie (Touvron et al., 2023) wurde SwiGLU verwendet. Beide Modelle erreichten State-of-the-Art-Ergebnisse in ihren jeweiligen Größenklassen. Die Wahl der Aktivierungsfunktion war nicht der entscheidende Faktor für die Leistungsunterschiede.


Karl Kratz · 28.09.2025

Technologie Künstliche Intelligenz Neural Networks