D· AI-utvecklaredeep-learning· ca 45 min· grundläggande — ändras sällan· verifierad 2026-09-20
Aktiveringsfunktioner
Kunna jämföra ReLU, GELU, sigmoid och tanh, och förklara döda neuroner och försvinnande gradienter.
Förkunskaper
Intuition
Utan aktiveringsfunktion är ett djupt nät bara en lång kedja av matrismultiplikationer — vilket är en enda linjär funktion. Aktiveringen är det som gör djupet meningsfullt.
| Funktion | Formel | Egenskap |
|---|---|---|
| ReLU | max(0, x) | snabb, standard i dolda lager; kan «dö» |
| GELU | x·Φ(x) | mjuk ReLU, standard i transformers |
| sigmoid | 1/(1+e⁻ˣ) | 0–1, för binär sannolikhet i sista lagret |
| tanh | (eˣ−e⁻ˣ)/(eˣ+e⁻ˣ) | −1–1, centrerad kring noll |
| softmax | eˣⁱ/Σeˣʲ | fördelning över klasser, sista lagret |
Två klassiska problem: sigmoid och tanh har derivata nära noll när x är stort eller litet → gradienten dör i djupa nät (försvinnande gradient). ReLU har derivata 0 för negativa x → en neuron som alltid får negativ insignal slutar uppdateras helt (död neuron).
Kod
import numpy as np
relu = lambda x: np.maximum(0, x)
leaky_relu = lambda x, a=0.01: np.where(x > 0, x, a * x)
sigmoid = lambda x: 1 / (1 + np.exp(-x))
tanh = np.tanh
gelu = lambda x: 0.5 * x * (1 + np.tanh(np.sqrt(2/np.pi) * (x + 0.044715 * x**3)))
x = np.array([-3.0, -0.5, 0.0, 0.5, 3.0])
for namn, f in [("relu", relu), ("gelu", gelu), ("sigmoid", sigmoid), ("tanh", tanh)]:
print(f"{namn:8s}", np.round(f(x), 3))
# relu [0. 0. 0. 0.5 3. ]
# gelu [-0.004 -0.154 0. 0.346 2.996]
# sigmoid [0.047 0.378 0.5 0.622 0.953]
# tanh [-0.995 -0.462 0. 0.462 0.995]
# derivatan av sigmoid vid x = ±5:
d = lambda x: sigmoid(x) * (1 - sigmoid(x))
print(np.round(d(np.array([-5.0, 0.0, 5.0])), 5)) # [0.00665 0.25 0.00665]
Därav regeln: ReLU/GELU i dolda lager, sigmoid eller softmax bara i utgången — och då oftast inbyggt i loss-funktionen (CrossEntropyLoss tar logits).
Behärskning innebär
- Jämför ReLU, GELU, sigmoid och tanh
- Förklarar försvinnande gradienter och döda neuroner
- Väljer aktivering efter lagrets roll
Logga in för att göra övningarna och bygga upp din behärskning.
Källor
- Dive into Deep Learning (CC BY-SA 4.0) — CC BY-SA 4.0
- arXiv — Gaussian Error Linear Units (GELUs) — arXiv (öppen åtkomst; licens per artikel)