La ReLU è probabilmente l'activation function più usata della storia del deep learning. Formula: max(0, x). Cioè: se l'input è positivo lo lasci passare, se è negativo lo butti via.
Sembra niente. È stata una rivoluzione. Prima di ReLU si usavano sigmoid e tanh, che soffrivano di vanishing gradient nelle reti profonde. ReLU non ha questo problema (per input positivi la derivata è sempre 1, il gradiente passa intatto).
Vantaggi:
- Veloce: un confronto con zero, nessuna esponenziale.
- No vanishing gradient dalla parte positiva.
- Sparse: tanti neuroni si spengono (output zero). Aiuta a generalizzare.
Problemi:
- Dying ReLU: se un neurone riceve sempre input negativi, è morto, gradiente zero, non impara più. Capita più di quel che si pensa.
- Non centrata: come la sigmoid, output sempre ≥ 0.
Varianti che risolvono parzialmente i problemi:
- Leaky ReLU: invece di zero per input negativi, dà 0.01 * x. Niente più neuroni morti.
- PReLU: come Leaky ma il coefficiente lo impara la rete.
- ELU: usa esponenziale per la parte negativa. Più morbida.
- GELU / SiLU / SwiGLU: versioni "smooth", standard nei Transformer.
Storia: ReLU è stata popolarizzata da Krizhevsky con AlexNet nel 2012, l'inizio del boom del deep learning. Esiste da prima ma quel paper l'ha resa lo standard.