Kurs
Aktivierungsfunktionen entscheiden, welche Signale ein neuronales Netz passieren und welche nicht. Wählst du die falsche, lernt dein Modell entweder zu langsam oder kann nicht gut generalisieren. ReLU war jahrelang die vernünftige Standardeinstellung, weil sie schnell ist und für die meisten Aufgaben ausreicht.
GELU (Gaussian Error Linear Unit) hat das geändert. Sie steckt inzwischen hinter einigen der leistungsfähigsten Modelle überhaupt, darunter BERT und GPT.
In diesem Artikel zeige ich dir die Intuition hinter GELU, die Formel, den Vergleich mit anderen Aktivierungsfunktionen und, wo du sie in der Praxis einsetzt.
Wenn du ganz neu bei Aktivierungsfunktionen im Machine Learning bist, lies unseren Einsteigerleitfaden zur Rectified Linear Unit (ReLU).
Was ist die GELU-Aktivierungsfunktion?
GELU, die Gaussian Error Linear Unit, ist eine Aktivierungsfunktion, die Eingaben abhängig von ihrer Größe mit einem glatten, probabilistischen Ansatz gewichtet.
Die meisten Aktivierungsfunktionen entscheiden hart, ob ein Signal durchgelassen oder geblockt wird. ReLU setzt zum Beispiel alle negativen Werte auf null und lässt alles andere unverändert durch. GELU funktioniert anders. Statt eines harten Cutoffs skaliert sie Eingaben kontinuierlich je nach Größe — auch kleine negative Werte können also noch zum Output beitragen.
Der Unterschied zu ReLU ist, dass GELU überall glatt und stetig ist. Es gibt keine scharfe Ecke bei null und keine abrupten Übergänge. Diese Glattheit kann im Training helfen, weil der Optimierer sauberere Gradienteninformationen erhält.
Intuition hinter GELU
Stell dir GELU als Filter vor, der nicht alle Eingaben gleich behandelt.
ReLU ist grob — alles Negative wird konsequent auf null gesetzt. GELU hingegen fragt: „Wie wahrscheinlich ist es, dass dieser Eingabewert nützlich ist?“ Klar große positive Werte gehen nahezu unverändert durch. Kleine oder negative Werte werden herunterskaliert statt komplett abgeschnitten.
Das Ergebnis ist eine glatte Kurve, die weniger relevante Signale dämpft, ohne sie vollständig zu verwerfen.
Stell dir vor, du sichtest einen Stapel Bewerbungen. Ein strenger Filter würde alle ohne Abschluss aussortieren. Ein smarter Filter berücksichtigt auch Grenzfälle, weil relevante Erfahrung das ausgleichen könnte. GELU arbeitet wie dieser smarte Filter. Es fällt keine harten Schnitte, sondern gewichtet jede Eingabe nach ihrer Größe und entscheidet, wie viel davon durchgelassen wird.
Diese graduelle, probabilistische Skalierung macht GELU besonders. Es gibt keine scharfen Übergänge und keine toten Neuronen — nur eine stetige Pass-oder-Dämpfen-Entscheidung für jeden Eingabewert.
GELU-Formel
Die exakte GELU-Formel basiert auf der kumulativen Gaußschen Verteilungsfunktion (CDF) und lautet:

Kumulative Gaußsche Verteilungsfunktion
Dabei ist x der Eingabewert und Φ(x) die Wahrscheinlichkeit, dass eine Zufallsvariable aus der Standardnormalverteilung kleiner oder gleich x ist. Einfach gesagt: Φ(x) zeigt, wie „normal“ bzw. erwartbar der Eingabewert ist — und genau diese Wahrscheinlichkeit nutzt GELU, um die Eingabe zu skalieren.
Je höher die Eingabe, desto näher liegt Φ(x) bei 1 — die Eingabe geht nahezu unverändert durch. Je niedriger die Eingabe, desto näher liegt Φ(x) bei 0 — die Eingabe wird unterdrückt.
Die in der Praxis verwendete Approximation
Das Problem an der exakten Formel: Die Berechnung von Φ(x) ist teuer. Sie beinhaltet die Fehlerfunktion, die keine einfache geschlossene Form hat und in großem Maßstab langsam ist.
Deep-Learning-Frameworks nutzen stattdessen diese Approximation:

GELU-Approximationsformel
Diese Approximation verwendet tanh, was schnell ist und von moderner Hardware gut unterstützt wird. Im für die Praxis relevanten Eingabebereich ist das Ergebnis nahezu identisch zur exakten Formel — daher nutzen PyTorch und TensorFlow standardmäßig diese Variante.
Natürlich musst du dir keine der beiden Formeln merken. Aber zu wissen, dass es die Approximation gibt — und warum — hilft dir zu verstehen, was wirklich passiert, wenn du GELU in deinem Code aufrufst.
GELU vs. andere Aktivierungsfunktionen
Jede Aktivierungsfunktion geht anders mit Eingaben um — und diese Unterschiede zeigen sich im Trainingserfolg deines Modells.
Hier siehst du den Unterschied zunächst visuell, bevor wir ihn im Text erklären:

GELU im Vergleich zu anderen Aktivierungsfunktionen (Grafik)
Sigmoid
Sigmoid quetscht alle Eingaben in den Bereich zwischen 0 und 1. Sie ist glatt, hat aber ein bekanntes Problem: verschwindende Gradienten. Bei sehr großen oder sehr kleinen Eingaben wird der Gradient nahezu null, tiefe Schichten hören auf zu lernen. GELU hat dieses Problem nicht, weil der Gradient über einen breiteren Eingabebereich aussagekräftig bleibt.
Tanh
Tanh ähnelt Sigmoid, ist aber um null zentriert und liefert Ausgaben zwischen -1 und 1. Negative Eingaben werden besser behandelt als bei Sigmoid, doch an den Rändern treten ebenfalls verschwindende Gradienten auf. GELU erzeugt eine glattere Ausgangskurve und besseren Gradientenfluss durch tiefe Netze.
ReLU
ReLU ist schnell und simpel: Positive Eingaben passieren unverändert, negative werden auf null gesetzt. Der harte Cutoff bei null führt zum Problem der „toten Neuronen“ — Neuronen, die langfristig nur negative Eingaben erhalten, werden gar nicht mehr aktualisiert. GELU vermeidet das, indem negative Eingaben skaliert statt abgeschnitten werden.
Leaky ReLU
Leaky ReLU behebt das Problem toter Neuronen, indem ein kleiner Anteil negativer Eingaben durchgelassen wird. Das ist besser als ReLU, aber der Übergang bei null bleibt scharf. GELU erzeugt insgesamt eine glattere Kurve, was in tiefen Architekturen, in denen die Qualität der Gradienten besonders zählt, oft besser funktioniert.
Zusammengefasst hier die Unterschiede zwischen diesen fünf Aktivierungsfunktionen:

GELU im Vergleich zu anderen Aktivierungsfunktionen (Tabelle)
Warum GELU in Transformern genutzt wird
Transformer sind einfach tiefe neuronale Netze. Und je tiefer das Netz, desto wichtiger ist die Qualität der Gradienten.
Modelle wie BERT und GPT stapeln Dutzende Schichten. In dieser Tiefe potenzieren sich selbst kleine Probleme im Gradientenfluss. Liefert deine Aktivierungsfunktion in bestimmten Bereichen instabile oder nahezu null Gradienten, aktualisieren sich frühere Schichten beim Training kaum — und lernen entsprechend wenig.
GELU verhindert das, indem die Gradienten glatt und ungleich null über einen breiteren Eingabebereich bleiben. Es gibt keinen Cutoff wie die Nullgrenze bei ReLU, sodass der Optimierer in jeder Schicht ein klareres Signal erhält — nicht nur nahe am Output.
Es gibt noch einen weiteren Grund, warum GELU gut zu Transformer-Architekturen passt.
Transformer verarbeiten Eingaben mit Aufmerksamkeitsmechanismen, die eine breite Spanne an Aktivierungswerten erzeugen — positiv und negativ. Eine glatte Aktivierungsfunktion kommt mit dieser Spannweite besser zurecht als eine mit harten Übergängen.
Im ursprünglichen BERT-Paper entschieden sich die Autor:innen für GELU statt ReLU und berichteten bessere Ergebnisse auf ihren Benchmarks. GPT folgte dieser Wahl. Seitdem ist GELU in den meisten Transformer-basierten Architekturen zur Standardeinstellung geworden — nicht weil es neu ist, sondern weil es in der Skala dieser Modelle besser funktioniert.
GELU in der Praxis
GELU in deinen Modellen zu verwenden, ist so einfach wie jede andere Aktivierungsfunktion. Sowohl PyTorch als auch TensorFlow unterstützen sie nativ.
PyTorch
In PyTorch kannst du GELU als eigenständiges Modul oder inline in der Modelldefinition einsetzen. Hier ein einfacher Feedforward-Block mit GELU:
import torch
import torch.nn as nn
class FeedForwardBlock(nn.Module):
def __init__(self, input_dim, hidden_dim):
super().__init__()
self.fc1 = nn.Linear(input_dim, hidden_dim)
self.act = nn.GELU()
self.fc2 = nn.Linear(hidden_dim, input_dim)
def forward(self, x):
return self.fc2(self.act(self.fc1(x)))
block = FeedForwardBlock(input_dim=512, hidden_dim=2048)
x = torch.randn(8, 512)
output = block(x)
nn.GELU() sitzt zwischen den beiden linearen Schichten — genau dort, wo du sie im Feedforward-Teil eines Transformers findest. Die Aktivierung läuft nach der ersten Projektion und vor der zweiten.
TensorFlow
In TensorFlow steht GELU über die Keras-API zur Verfügung:
import tensorflow as tf
from tensorflow import keras
model = keras.Sequential([
keras.layers.Dense(2048, input_shape=(512,)),
keras.layers.Activation("gelu"),
keras.layers.Dense(512)
])
x = tf.random.normal((8, 512))
output = model(x)
Du kannst sie auch direkt als String-Argument an eine Dense-Schicht übergeben:
keras.layers.Dense(2048, activation="gelu")
Beide Varianten liefern dasselbe Ergebnis.
Wo GELU im Netz hingehört
GELU kommt — wie jede Aktivierung — direkt nach einer linearen Transformation und vor der nächsten Schicht. In Transformer-Architekturen also im Feedforward-Block zwischen den beiden Dense-Projektionen. In anderen tiefen Netzen platzierst du sie nach der linearen oder konvolutionalen Schicht und lässt sie den Output skalieren, bevor er weitergereicht wird.
Vorteile von GELU
Wenn du bis hier gelesen hast, kennst du die wichtigsten Pluspunkte von GELU im Vergleich zu anderen Aktivierungsfunktionen. Kurz zusammengefasst:
- Glatte Aktivierung: GELU erzeugt eine stetige, differenzierbare Kurve ohne harte Übergänge und liefert dem Optimierer in jedem Schritt klarere Informationen.
- Besserer Gradientenfluss: GELU setzt negative Eingaben nicht auf null, sodass Gradienten auch durch Neuronen mit negativen Werten propagieren können. Das reduziert das Risiko toter Neuronen im Training.
- Bessere Performance in tiefen Modellen: In Architekturen wie Transformern führt der kumulative Effekt glatterer Gradienten häufig zu besseren Trainingsergebnissen als mit simpleren Aktivierungsfunktionen.
Einschränkungen von GELU
GELU ist nicht in jeder Situation die beste Wahl. Hier sind ein paar Einschränkungen, die du kennen solltest:
-
Rechenaufwendiger als ReLU: GELU nutzt entweder die Fehlerfunktion oder eine
tanh-basierte Approximation — beides teurer als die simple Schwellenoperation von ReLU. In großen Modellen mit vielen Schichten summiert sich das. -
Weniger intuitiv: Funktionen wie ReLU sind leicht zu verstehen — positive Werte passieren, negative nicht. GELUs probabilistische Skalierung ist schwerer zu interpretieren.
-
Nicht immer nötig: Bei flachen Netzen oder einfachen Aufgaben bringt GELU oft keinen spürbaren Vorteil. ReLU oder Leaky ReLU liefern bei geringeren Kosten häufig vergleichbare Ergebnisse.
Fazit: Wenn du einen Transformer oder eine andere tiefe Architektur baust, ist GELU eine starke Voreinstellung. In allen anderen Fällen solltest du vor der Entscheidung benchmarken.
Fazit
GELU ist kein Allheilmittel und ersetzt ReLU nicht pauschal. Es ist eine bewusste Designentscheidung, die sich in bestimmten Kontexten lohnt — insbesondere in tiefen Netzen und Transformer-Modellen.
Wenn du mit BERT, GPT oder einem anderen Transformer-basierten Modell arbeitest, nutzt du GELU ohnehin — jetzt weißt du auch, warum.
In allen anderen Fällen ist die Wahl der Aktivierungsfunktion eine Abwägung. Es gibt keinen Sieger für alle Szenarien — wer versteht, was jede Funktion tut, trifft die Entscheidung bewusst statt aus Gewohnheit.
Wenn dich die Unterschiede zwischen Aktivierungsfunktionen immer noch verwirren, melde dich für unseren Machine Learning Engineer Track an und mach dich fit für eine Karriere in Machine Learning und MLOps.
Werde ein ML-Wissenschaftler
FAQs
Was ist die GELU-Aktivierungsfunktion?
GELU (Gaussian Error Linear Unit) ist eine Aktivierungsfunktion für neuronale Netze. Anders als ReLU skaliert GELU Eingaben glatt und probabilistisch in Abhängigkeit von ihrer Größe. Das passt besonders gut zu tiefen Architekturen, in denen die Qualität der Gradienten entscheidend ist.
Worin unterscheidet sich GELU von ReLU?
ReLU setzt alle negativen Eingaben hart auf null, was dazu führen kann, dass Neuronen nicht mehr lernen — das sogenannte „Dying-Neurons“-Problem. GELU verhindert das, indem negative Eingaben schrittweise herunterskaliert statt abgeschnitten werden. Das sorgt für einen glatteren Gradientenfluss und bessere Performance in tiefen Netzen.
Wann sollte ich GELU gegenüber anderen Aktivierungsfunktionen verwenden?
GELU wirkt am besten in tiefen Architekturen, insbesondere in Transformer-Modellen wie BERT und GPT. Bei flachen Netzen oder einfacheren Aufgaben rechtfertigt der zusätzliche Rechenaufwand selten den Wechsel von ReLU. Starte mit ReLU als Benchmark und teste bei Bedarf Alternativen.
Worin unterscheidet sich die exakte GELU-Formel von der Approximation?
Die exakte GELU-Formel nutzt die kumulative Gaußsche Verteilungsfunktion und erfordert die Fehlerfunktion — eine Operation, die in großem Maßstab langsam ist. Die Approximation ersetzt sie durch einen auf tanh basierenden Ausdruck, der schneller ist und von moderner Hardware gut unterstützt wird. In der Praxis liefern beide nahezu identische Ergebnisse, weshalb die meisten Frameworks standardmäßig die Approximation verwenden.
Funktioniert GELU sowohl in PyTorch als auch in TensorFlow?
Ja, beide Frameworks unterstützen GELU. In PyTorch kannst du nn.GELU() als Modul in deiner Modelldefinition verwenden. In TensorFlow kannst du "gelu" als String an das activation-Argument einer Schicht übergeben oder keras.layers.Activation("gelu") nutzen.

