Sigmoid

[sìgmoid]

Funzione a forma di S che comprime qualunque numero tra 0 e 1. Storica, oggi sopravvive come output di problemi binari.

La sigmoid è la più antica delle activation function. Formula: 1 / (1 + e^(-x)). Prende qualunque numero e lo comprime tra 0 e 1, con una bella curva a S.

Perché è importante storicamente: è stata l'activation principale dagli anni '80 ai primi 2010. Reti neurali, regressione logistica, primi modelli di deep learning: tutti con sigmoid.

Perché oggi non si usa più dentro le reti profonde:

  • Vanishing gradient: per input grandi (positivi o negativi), la derivata della sigmoid è quasi zero. Il gradiente muore. I primi strati di una rete profonda non imparano più.
  • Output non centrato in zero: sempre tra 0 e 1, mai negativo. I gradienti dei pesi a valle sono tutti dello stesso segno, ottimizzazione lenta.
  • Lenta da calcolare: l'esponenziale costa più di un max(0,x) della ReLU.

Dove sopravvive ancora:

  • Output binario: classificare "spam o non spam", "positivo o negativo". Sigmoid finale dà la probabilità.
  • Multi-label classification: una sigmoid per ogni etichetta, ognuna indipendente.
  • Gating in LSTM/GRU: controlla flussi di informazione. Anche se RNN sono fuori moda, qualche cosa si fa ancora.
  • SiLU/Swish: x * sigmoid(x), usata internamente in modelli moderni.

Insomma: sigmoid è il nonno delle activation function. Lo rispettiamo, ma per costruire ChatGPT non l'abbiamo invitato.