Glossario

Softmax

Scopri come Softmax trasforma i punteggi in probabilità per i compiti di classificazione nell'IA, favorendo il riconoscimento delle immagini e il successo dell'NLP.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

Softmax è una funzione di attivazione cruciale comunemente utilizzata nello strato di uscita delle reti neurali (NN), in particolare per i problemi di classificazione multiclasse. Il suo ruolo principale è quello di convertire un vettore di punteggi grezzi (spesso chiamati logit) generati dallo strato precedente in una distribuzione di probabilità su più classi potenziali. Ogni valore in uscita rappresenta la probabilità che l'input appartenga a una classe specifica e, cosa importante, queste probabilità si sommano a 1, rendendo l'output facilmente interpretabile come livelli di fiducia per risultati mutuamente esclusivi.

Come funziona Softmax

Concettualmente, la funzione Softmax prende i punteggi grezzi in uscita da uno strato della rete neurale e li trasforma. Lo fa innanzitutto esponenziando ogni punteggio, il che rende tutti i valori positivi ed enfatizza i punteggi più grandi in modo più significativo. Poi normalizza i punteggi esponenziati dividendoli per la somma di tutti i punteggi esponenziati. Questa fase di normalizzazione garantisce che i valori risultanti siano compresi tra 0 e 1 e che la somma complessiva sia 1, creando di fatto una distribuzione di probabilità tra le diverse classi. La classe corrispondente al valore di probabilità più alto viene solitamente scelta come predizione finale del modello. Questo processo è fondamentale nei modelli di deep learning (DL) che si occupano di classificazione.

Caratteristiche principali

  • Distribuzione di probabilità: Gli output rappresentano le probabilità per ogni classe, con una somma sempre pari a 1.
  • Focus multi-classe: È stato progettato specificamente per gli scenari in cui un input può appartenere solo a una delle diverse classi possibili (mutuamente esclusive).
  • Interpretazione dell'output: Rende intuitivo l'output del modello, rappresentando il livello di confidenza per ogni classe.
  • Differenziabilità: Liscio e differenziabile, che consente di utilizzarlo efficacemente con gli algoritmi di ottimizzazione basati sul gradiente, come la discesa del gradiente durante l'addestramento del modello.

Softmax vs. funzioni di attivazione correlate

È importante distinguere Softmax da altre funzioni di attivazione:

  • Sigmoide: Sebbene anche la Sigmoid fornisca valori compresi tra 0 e 1, è tipicamente utilizzata per la classificazione binaria (un neurone di uscita) o per la classificazione multi-label (neuroni di uscita multipli in cui ogni uscita rappresenta una probabilità indipendente e la somma non è necessariamente uguale a 1). Softmax viene utilizzato quando le classi si escludono a vicenda. Maggiori dettagli sono disponibili in risorse come gli appunti di Stanford CS231n.
  • ReLU (Unità Lineare Rettificata): La ReLU e le sue varianti, come la Leaky ReLU o la SiLU, sono utilizzate principalmente negli strati nascosti delle reti neurali per introdurre la non linearità. Non producono output di tipo probabilistico adatti allo strato di classificazione finale. DeepLearning.AI offre corsi che spiegano le funzioni di attivazione nelle reti neurali.

Applicazioni nell'IA e nell'apprendimento automatico

Softmax è ampiamente utilizzato in diversi ambiti dell 'AI e del Machine Learning (ML):

Considerazioni

Pur essendo potente, Softmax può essere sensibile a punteggi di input molto grandi, portando potenzialmente all'instabilità numerica (overflow o underflow). I moderni framework di deep learning come PyTorch e TensorFlow implementano versioni numericamente stabili di Softmax per mitigare questi problemi. La comprensione del suo comportamento è fondamentale per una formazione e un'interpretazione efficace dei modelli, spesso facilitata da piattaforme come Ultralytics HUB per la gestione di esperimenti e implementazioni.

Leggi tutto