Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Aktivierungsfunktionen und weitere Layer

Ein Neuron „forward“ ist τ(⟨w,x⟩)\tau(\langle w, x \rangle). Beim Perzeptron ist τ=sign⁡\tau = \operatorname{sign}, bei der logistischen Regression τ=σ\tau = \sigma. Allgemein ist τ\tau beliebig – aber ableitbar, sonst funktioniert Backpropagation nicht. Überall differenzierbar muss es dafür nicht sein: ReLU hat bei 0 einen Knick und ist trotzdem die meistbenutzte Aktivierungsfunktion überhaupt. Wie das zusammengeht, klärt der nächste Abschnitt.

Neues Ziel: Funktionen lernen

Bisher war das Ziel Klassifikation. Neues Ziel: Das neuronale Netz soll eine Funktion lernen (Regression), und unser Modell von der Funktion ist stückweise linear. Welches τ\tau ist dafür geeignet?

Ableitung von max⁡(0,y)\max(0, y) nach yy: Für y>0y > 0 ist max⁡(0,y)=y\max(0, y) = y, also ist die Ableitung 1. Für y<0y < 0 ist max⁡(0,y)=0\max(0, y) = 0, also ist die Ableitung 0. Für y=0y = 0 ist die Ableitung nicht definiert – wir definieren sie als 0, das spart Rechnungen. (Dass das erlaubt ist, steckt im Begriff der schwachen Ableitung: Sie darf an einzelnen Punkten beliebig sein.)

Wieso ist ReLU geeignet? Lineare Abbildung + ReLU ist die Projektion auf einen Halbraum, denn ReLU ist genau die Projektion von R\mathbb{R} auf [0,∞)[0, \infty), und ein Halbraum ist eine Seite einer Hyperebene. Ein ReLU-Neuron max⁡(0,⟨w,x⟩+b)\max(0, \langle w, x \rangle + b) ist also null auf der einen Seite der Hyperebene ⟨w,x⟩+b=0\langle w, x \rangle + b = 0 und linear ansteigend auf der anderen. Summiert man mehrere solche „Knickfunktionen“ mit Gewichten, bekommt man stückweise lineare Funktionen, deren Knickstellen auf den Hyperebenen liegen – und mit genug Neuronen kann man damit jede stetige Funktion beliebig gut approximieren. Beispiel an der Tafel; im Kapitel „Netze von Hand bauen“ bauen wir so x2x^2.

Links die ReLU, rechts eine gewichtete Summe von drei verschobenen ReLUs: eine stückweise lineare Funktion mit Knicken an den Verschiebungen.

Links die ReLU, rechts eine gewichtete Summe von drei verschobenen ReLUs: eine stückweise lineare Funktion mit Knicken an den Verschiebungen.

Layer, nochmal

Mehrere Neuronen, die parallel verarbeitet werden, bilden eine Schicht. Ein Linear Layer ist eine Matrix (Zeilen = Gewichtsvektoren) plus Bias. Ein ReLU Layer ist eine Schicht, in der jedes Neuron die Aktivierungsfunktion ReLU nutzt, also Linear Layer + komponentenweises ReLU. In PyTorch: nn.Sequential(nn.Linear(n, m), nn.ReLU()).

Problem bei ReLU: sterbende Neuronen

Wenn ein Neuron immer 0 liefert, weil die Eingabe immer negativ ist, „fließt“ keine Information mehr durch das Neuron während der Backpropagation – die Ableitung ist 0, also ist δ\delta für dieses Neuron 0, also ändern sich seine Gewichte nie wieder. Das Neuron ist tot. Zwei Lösungen:

Lösung 1: Statt τ=max⁡(0,y)\tau = \max(0, y) verwende τ(y)=f(y)[y<0]+g(y)[y≥0]\tau(y) = f(y)[y < 0] + g(y)[y \ge 0] mit passenden f,gf, g, sodass auch für y<0y < 0 die Ableitung nicht null ist. Mit f(y):=α(ey−1)f(y) := \alpha(e^y - 1) und g(y):=yg(y) := y heißt τ\tau ELU (Exponential Linear Unit); mit f(y):=0,01 yf(y) := 0{,}01\,y heißt es Leaky ReLU.

Lösung 2: Statt max⁡(0,y)\max(0, y) verwende ein glattes τ\tau, sodass für y→−∞y \to -\infty gilt τ(y)→0\tau(y) \to 0 und für y→+∞y \to +\infty gilt τ(y)→+∞\tau(y) \to +\infty, aber ohne harten Knick:

τ(y):=y σ(y)(Swish, auch SiLU),τ(y):=y Φ(y)(GELU, Gaussian Error Linear Unit),\tau(y) := y\,\sigma(y) \quad \text{(Swish, auch SiLU)}, \qquad \tau(y) := y\,\Phi(y) \quad \text{(GELU, Gaussian Error Linear Unit)},

wobei Φ\Phi die Verteilungsfunktion der Standardnormalverteilung ist. Beide sind im negativen Bereich nicht strikt null, sondern haben eine kleine Delle unter der Achse, und die Ableitung verschwindet nur asymptotisch. GELU steht in den Transformern der BERT- und GPT-2-Generation und in Vision Transformern; die heutigen großen Sprachmodelle (Llama, Mistral, Qwen) nehmen stattdessen Swish/SiLU, eingebaut in einen gated Feed-Forward-Block, den man SwiGLU nennt.

Welche Aktivierungsfunktionen in der Praxis genutzt wurden, listete paperswithcode – die Seite gibt es nicht mehr, der Link führt auf den Schnappschuss vom Juli 2025 im Internet Archive.

Aktivierungsfunktionen im Vergleich. ELU, Swish und GELU sind im negativen Bereich nicht konstant null.

Aktivierungsfunktionen im Vergleich. ELU, Swish und GELU sind im negativen Bereich nicht konstant null.

Übung

Ein Neuron x↦ReLU(w⋅x+b)x \mapsto \mathrm{ReLU}(w \cdot x + b) mit w=(−1,−1)w = (-1, -1) und b=−3b = -3 sieht nur Trainingsdaten mit nichtnegativen Einträgen.

  1. Zeigen Sie: Die Ausgabe ist für alle diese Daten 0.

  2. Welchen Wert hat der Gradient nach ww und bb dann? Was folgt daraus für das Training?

Antwortprobe: Bei (2) ist die Antwort für ww und bb dieselbe.