Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Softmax

Esplora la funzione Softmax nell'intelligenza artificiale. Scopri come converte i logit in probabilità per la classificazione multi-classe utilizzando Ultralytics e le reti neurali.

Softmax è una funzione matematica fondamentale nel campo dell'intelligenza artificiale, che funge specificamente da fase finale in molti algoritmi di classificazione. Trasforma un vettore di numeri grezzi, spesso chiamati logit, in un vettore di probabilità. Questa trasformazione assicura che i valori di output siano tutti positivi e che la loro somma sia esattamente pari a uno, creando in modo efficace una distribuzione di probabilità valida . Grazie a questa proprietà, Softmax è la funzione di attivazione standard utilizzata nel livello di output delle reti neurali progettate per la classificazione multi-classe , in cui il sistema deve scegliere una singola categoria tra più di due opzioni mutuamente esclusive.

La meccanica di Softmax

In un tipico flusso di lavoro di deep learning (DL), i livelli di una rete eseguono complesse moltiplicazioni e addizioni di matrici. L'output del livello finale, prima dell' attivazione, consiste in punteggi grezzi noti come logit. Questi valori possono variare da infinito negativo a infinito positivo, rendendoli difficili da interpretare direttamente come livelli di confidenza.

Softmax risolve questo problema eseguendo due operazioni principali:

  1. Esponenziazione: calcola l'esponenziale di ciascun numero inserito. Questo passaggio garantisce che tutti i valori siano non negativi (poiché $e^x$ è sempre positivo) e penalizza i valori significativamente inferiori al massimo, evidenziando al contempo i punteggi più alti.
  2. Normalizzazione: somma questi valori esponenziali e divide ogni singolo esponenziale per questa somma totale. Questo processo di normalizzazione scala i numeri in modo che rappresentino parti di un tutto, consentendo agli sviluppatori di interpretarli come punteggi di affidabilità percentuali.

Applicazioni nel mondo reale

La capacità di fornire probabilità chiare rende Softmax indispensabile in vari settori industriali e attività di machine learning (ML).

  • Classificazione delle immagini: nella visione artificiale, i modelli utilizzano Softmax per classificare le immagini. Ad esempio, quando il modello di classificazione Ultralytics analizza una foto, può produrre punteggi per classi come "Golden Retriever", "Pastore tedesco" e "Barboncino". Softmax converte questi punteggi in probabilità (ad esempio, 0,85, 0,10, 0,05), indicando un'elevata certezza che l'immagine contenga un Golden Retriever. Ciò è fondamentale per applicazioni che vanno dall'organizzazione automatizzata delle foto alla diagnosi medica nell'ambito dell' IA in ambito sanitario.
  • Elaborazione del linguaggio naturale (NLP): Softmax è il motore alla base della generazione di testo nei modelli linguistici di grandi dimensioni (LLM). Quando un modello come Transformer genera una frase, prevede la parola successiva (token) calcolando un punteggio per ogni parola nel suo vocabolario. Softmax trasforma questi punteggi in probabilità, consentendo al modello di selezionare la parola successiva più probabile e rendendo possibile una traduzione automatica fluida e un'intelligenza artificiale conversazionale.
  • Apprendimento per rinforzo: gli agenti nell' apprendimento per rinforzo utilizzano spesso Softmax per selezionare le azioni. Invece di scegliere sempre l'azione con il valore più alto, un agente potrebbe utilizzare le probabilità per esplorare diverse strategie, bilanciando esplorazione e sfruttamento in ambienti come il controllo robotico o i giochi.

Esempio di codice Python

L'esempio seguente mostra come caricare un modello di classificazione YOLO26 pre-addestrato e accedere ai punteggi di probabilità generati tramite Softmax.

from ultralytics import YOLO

# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")

# Run inference on a sample image
results = model("https://ultralytics.com/images/bus.jpg")

# The model applies Softmax internally. Access the top prediction:
# The 'probs' attribute contains the probability distribution.
top_prob = results[0].probs.top1conf.item()
top_class = results[0].names[results[0].probs.top1]

print(f"Predicted Class: {top_class}")
print(f"Confidence (Softmax Output): {top_prob:.4f}")

Distinguere Softmax dai concetti correlati

Sebbene Softmax sia dominante negli scenari multi-classe, è importante distinguerlo da altre funzioni matematiche utilizzate nell'addestramento dei modelli e nella progettazione dell'architettura:

  • Sigmoid: anche la funzione Sigmoid ridimensiona i valori tra 0 e 1, ma tratta ogni output in modo indipendente. Ciò rende Sigmoid ideale per la classificazione binaria (sì/no) o multi-label in cui le classi non sono mutuamente esclusive (ad esempio, un'immagine può contenere sia una "Persona" che uno "Zaino"). Softmax forza le probabilità a sommare uno, facendo competere le classi tra loro.
  • ReLU (Rectified Linear Unit): ReLU viene utilizzato principalmente negli strati nascosti di una rete per introdurre non linearità. A differenza di Softmax, ReLU non limita gli output a un intervallo specifico (semplicemente restituisce zero per gli input negativi e l'input stesso per quelli positivi ) e non genera una distribuzione di probabilità.
  • Argmax: mentre Softmax fornisce le probabilità per tutte le classi, la funzione Argmax viene spesso utilizzata in combinazione per selezionare l'indice singolo con la probabilità più alta. Softmax fornisce la "soft" certezza, mentre Argmax fornisce la decisione finale "hard".

Integrazione avanzata

Nelle moderne pipeline ML, Softmax viene spesso calcolato implicitamente all'interno delle funzioni di perdita. Ad esempio, la perdita di entropia incrociata combina Softmax e log-verosimiglianza negativa in un unico passaggio matematico per migliorare la stabilità numerica durante l' addestramento. Piattaforme come Ultralytics gestiscono automaticamente queste complessità, consentendo agli utenti di addestrare modelli robusti senza implementare manualmente queste operazioni matematiche .

Unitevi alla comunità di Ultralytics

Entra nel futuro dell'AI. Connettiti, collabora e cresci con innovatori globali

Iscriviti ora