Aktivierungsfunktionen
ReLU, GELU, SiLU und warum Sigmoid tiefe Netze zwanzig Jahre lang unbrauchbar machte: die Funktion, die über den Gradientenfluss entscheidet.
Die Idee
Nach jeder gewichteten Summe steht eine kleine Funktion, die das Ergebnis verformt. Sie ist der Grund, warum ein Netz mehr kann als eine Gerade zu ziehen.
Die einfachste und heute übliche lautet: alles Negative wird null, alles Positive bleibt. Sie heißt ReLU.
Die üblichen Funktionen
| Funktion | Verlauf | Heute verwendet für |
|---|---|---|
| ReLU | 0 für negativ, sonst identisch | Standard in CNN und Netzen allgemein |
| GELU | Wie ReLU, aber weich | Transformer |
| SiLU / Swish | Wie GELU, etwas anders geformt | Moderne Bildmodelle, Transformer |
| Sigmoid | Staucht auf 0 bis 1 | Nur am Ausgang bei binärer Klassifikation |
| Tanh | Staucht auf −1 bis 1 | Selten, in rekurrenten Netzen |
| Softmax | Vektor auf Wahrscheinlichkeiten | Immer am Ausgang bei Mehrklassen |
Warum Sigmoid scheitert
import numpy as np
def sigmoid(x): return 1 / (1 + np.exp(-x))
def sigmoid_grad(x): s = sigmoid(x); return s * (1 - s)
for x in [-6, -2, 0, 2, 6]:
print(f"x={x:3d} sigma={sigmoid(x):.4f} Ableitung={sigmoid_grad(x):.4f}")
# x= 0 liefert die groesste Ableitung: 0,25.
# Ueber 20 Schichten: 0,25^20 = 9e-13. Der Gradient ist weg.Die maximale Ableitung des Sigmoids ist 0,25. Jede Schicht dämpft den Gradienten also um mindestens den Faktor vier. ReLU hat im positiven Bereich die Ableitung exakt eins und dämpft dort gar nicht.
Tote Neuronen vermeiden
- He-Initialisierung verwenden, nicht Xavier, wenn ReLU eingesetzt wird.
- Die Lernrate nicht zu groß wählen; ein zu großer Schritt kann ein Neuron dauerhaft in den negativen Bereich schieben.
- Den Anteil der Nullen je Schicht überwachen. Über 90 Prozent ist ein Warnsignal.
- Bei anhaltendem Problem auf GELU oder Leaky ReLU wechseln, die auch im negativen Bereich einen kleinen Gradienten haben.
Die Formeln
Warum GELU in Transformern gewann
Drei Eigenschaften, die zusammen wirken:
- Glatt. Die Ableitung ist überall stetig, was die Optimierung mit adaptiven Verfahren stabilisiert.
- Nicht monoton. Für leicht negative Werte ist GELU minimal negativ statt null. Das erhält einen kleinen Gradienten und verhindert tote Einheiten.
- Selbstregulierend. Der Faktor
Φ(x)lässt sich als Wahrscheinlichkeit lesen, den Eingang durchzulassen: eine deterministische Variante von Dropout.
Der gemessene Unterschied zu ReLU ist klein, meist unter einem Punkt Perplexität, aber er ist konsistent und kostet nichts.
Gated Linear Units
Moderne Sprachmodelle verwenden in der Zwischenschicht meist keine einfache Aktivierung mehr, sondern ein Tor:
Das kostet eine dritte Matrix, weshalb die Zwischenbreite üblicherweise von 4h
auf 8h/3 gesenkt wird, um die Parameterzahl konstant zu halten. Der gemessene
Gewinn rechtfertigt diesen Tausch bei praktisch allen aktuellen Modellen.
Der numerische Punkt bei Softmax
Softmax wird nie allein berechnet, sondern immer zusammen mit dem Logarithmus für
die Kreuzentropie. log_softmax ist numerisch stabil, log(softmax(x)) ist es
nicht, weil kleine Wahrscheinlichkeiten vorher auf null unterlaufen. Siehe
Zahlen im Rechner.
Passende Kurse und Quellen
TensorFlow Playground
Ein neuronales Netz im Browser, mit Reglern für Schichten, Aktivierung und Lernrate. Man sieht in Sekunden, was jede Stellschraube tut.
Für alle, die sehen wollen, was Lernrate, Schichten und Aktivierung tatsächlich bewirken.