Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Sigmoide

Esplora il ruolo della funzione sigmoide nell'apprendimento automatico. Scopri come questa funzione di attivazione consente la classificazione binaria in modelli come Ultralytics .

La funzione sigmoide è un componente matematico fondamentale ampiamente utilizzato nei campi del machine learning (ML) e del deep learning (DL). Spesso definita come "funzione di schiacciamento", accetta come input qualsiasi numero reale e lo mappa su un valore compreso tra 0 e 1. Questa caratteristica curva a forma di "S" la rende incredibilmente utile per convertire i risultati grezzi del modello in probabilità interpretabili. Nel contesto di una rete neurale (NN), la funzione sigmoide agisce come funzione di attivazione, introducendo una non linearità che consente ai modelli di apprendere modelli complessi al di là delle semplici relazioni lineari. Sebbene sia stata in gran parte sostituita da altre funzioni nei livelli nascosti profondi, rimane una scelta standard per i livelli di output nelle attività di classificazione binaria .

La meccanica del sigmoide nell'intelligenza artificiale

Fondamentalmente, la funzione sigmoide trasforma i dati di input, spesso denominati logit, in un intervallo normalizzato. Questa trasformazione è fondamentale per le attività il cui obiettivo è prevedere la probabilità di un evento. Limitando l'output tra 0 e 1, la funzione fornisce un punteggio di probabilità chiaro.

  • Regressione logistica: nella modellizzazione statistica tradizionale, Sigmoid è il motore alla base della regressione logistica. Consente ai data scientist di stimare la probabilità di un risultato binario, ad esempio se un cliente abbandonerà o rimarrà.
  • Classificazione binaria: per le reti neurali progettate per distinguere tra due classi (ad esempio, "gatto" e "cane"), l'ultimo strato spesso impiega un'attivazione sigmoide. Se l'output è superiore a una soglia (comunemente 0,5), il modello prevede la classe positiva.
  • Classificazione multi-etichetta: A differenza dei problemi multi-classe in cui le classi sono mutuamente esclusive, i compiti multi-etichetta consentono a un'immagine o a un testo di appartenere a più categorie contemporaneamente. In questo caso, Sigmoid viene applicato in modo indipendente a ciascun nodo di output, consentendo a un modello di detect "macchina" e una "persona" nella stessa scena senza conflitti.

Differenze fondamentali rispetto ad altre funzioni di attivazione

Mentre Sigmoid era una volta l'impostazione predefinita per tutti gli strati, i ricercatori hanno scoperto dei limiti come il problema del gradiente che svanisce, dove i gradienti diventano troppo piccoli per aggiornare efficacemente i pesi nelle reti profonde. Ciò ha portato all'adozione di alternative per gli strati nascosti .

  • Sigmoid vs. ReLU (Rectified Linear Unit): ReLU è più veloce dal punto di vista computazionale ed evita i gradienti che svaniscono emettendo direttamente l'input se positivo e zero in caso contrario. È la scelta preferita per i livelli nascosti nelle architetture moderne come YOLO26, mentre Sigmoid è riservato al livello di output finale in compiti specifici.
  • Sigmoid vs. Softmax: entrambi mappano gli output su un intervallo 0-1, ma hanno scopi diversi. Sigmoid tratta ogni output in modo indipendente, rendendolo ideale per attività binarie o multi-label. Softmax forza tutti gli output a sommare 1, creando una distribuzione di probabilità utilizzata per la classificazione multi-classe in cui solo una classe è corretta.

Applicazioni nel mondo reale

L'utilità della funzione sigmoide si estende a vari settori in cui è richiesta la stima della probabilità.

  1. Diagnosi medica: i modelli di IA utilizzati nell' analisi delle immagini mediche utilizzano spesso output sigmoidi per prevedere la probabilità della presenza di una malattia in una radiografia o in una risonanza magnetica. Ad esempio, un modello potrebbe produrre un output di 0,85, indicando un'85% di probabilità di un tumore, aiutando i medici nella diagnosi precoce.
  2. Rilevamento dello spam: i sistemi di filtraggio delle e-mail utilizzano modelli di elaborazione del linguaggio naturale (NLP) con classificatori sigmoidi per determinare se un messaggio in arrivo è "spam" o "non spam". Il modello analizza le parole chiave e i metadati, generando un punteggio che determina se l'e-mail finisce nella casella di posta in arrivo o nella cartella della posta indesiderata.

Attuazione pratica

È possibile osservare come Sigmoid trasforma i dati utilizzando PyTorch, una libreria molto diffusa per la creazione di modelli di deep learning. Questo semplice esempio mostra l'effetto di "schiacciamento" su una serie di valori di input.

import torch
import torch.nn as nn

# Create a Sigmoid layer
sigmoid = nn.Sigmoid()

# Define input data (logits) ranging from negative to positive
input_data = torch.tensor([-5.0, -1.0, 0.0, 1.0, 5.0])

# Apply Sigmoid to squash values between 0 and 1
output = sigmoid(input_data)

print(f"Input: {input_data}")
print(f"Output: {output}")
# Output values near 0 for negative inputs, 0.5 for 0, and near 1 for positive inputs

Per coloro che desiderano addestrare modelli che utilizzano questi concetti senza scrivere codice di basso livello, Ultralytics offre un'interfaccia intuitiva per gestire i set di dati e addestrare modelli all'avanguardia come YOLO26. Gestendo automaticamente le complessità architetturali, consente agli utenti di concentrarsi sulla raccolta di dati di addestramento di alta qualità per le loro specifiche applicazioni di visione artificiale.

Unitevi alla comunità di Ultralytics

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

Iscriviti ora