Activation Function

[activèiscion fànction]

Funzione non-lineare applicata dentro una rete neurale. Senza, una rete profonda equivarrebbe a una rete a un solo strato.

L'activation function è quella funzione non-lineare che si applica all'output di ogni neurone di una rete. Sembra dettaglio: invece è quello che rende le reti neurali capaci di imparare cose complicate.

Senza activation non-lineari, una rete a 100 strati equivale matematicamente a una rete a 1 strato. Hai sprecato tutto. Tutto il "deep" nel deep learning è inutile senza non-linearità.

Le activation che vedi davvero:

  • ReLU: max(0, x). Il classico. Semplicissima, veloce, funziona.
  • Sigmoid: comprime in (0,1). Antica, sopravvive solo come output binario.
  • Tanh: comprime in (-1,1). Vecchia, surclassata da ReLU.
  • GELU: variante "morbida" di ReLU. Standard nei Transformer (BERT, GPT).
  • SiLU / Swish: x · sigmoid(x). Usata in Llama, Mistral, modelli recenti.
  • SwiGLU: variante con gating, ancora migliore. Usata in Llama 2/3, PaLM.
  • Softmax: per output multi-classe. Trasforma logits in probabilità. Sempre l'ultimo strato di un classificatore.

Perché tutte queste varianti? Cercando la migliore: che passi bene il gradiente all'indietro (no backprop morta), che sia veloce da calcolare, che spinga il modello a imparare meglio.

In pratica oggi: nei Transformer si usa GELU o SwiGLU, in CNN classiche ReLU, sigmoid solo all'ultimo strato per output binari.