Glossario

Sigmoide

Scopri il potere della funzione sigmoide nell'IA. Scopri come consente la non linearità, aiuta la classificazione binaria e guida i progressi dell'intelligenza artificiale!

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

La funzione sigmoide è una funzione di attivazione molto utilizzata nell'apprendimento automatico (ML) e in particolare nelle reti neurali (NN). Si caratterizza per la sua curva a forma di "S", mappando matematicamente qualsiasi valore di ingresso in un'uscita compresa tra 0 e 1. Questa proprietà la rende particolarmente utile per convertire gli output grezzi (logits) di un modello in probabilità, più facili da interpretare. Storicamente, la Sigmoide è stata una scelta popolare per gli strati nascosti delle NN, anche se è stata ampiamente sostituita da funzioni come ReLU a questo scopo nelle moderne architetture di deep learning (DL) a causa di alcune limitazioni.

Come funziona Sigmoid

La funzione Sigmoide prende qualsiasi numero reale e lo schiaccia nell'intervallo (0, 1). Ingressi negativi di grandi dimensioni producono uscite vicine allo 0, ingressi positivi di grandi dimensioni producono uscite vicine all'1 e un ingresso di 0 produce un'uscita di 0,5. Si tratta di una funzione non lineare, il che è fondamentale perché l'impilamento di più livelli lineari in una rete neurale non è privo di non linearità. Si tratta di una funzione non lineare, il che è fondamentale perché l'impilamento di più livelli lineari in una rete neurale priva di non linearità porterebbe semplicemente a un'altra funzione lineare, limitando la capacità del modello di apprendere schemi complessi presenti in dati come immagini o testi. La sigmoide è anche differenziabile, una proprietà necessaria per l'addestramento di reti neurali che utilizzano metodi di ottimizzazione basati sul gradiente come la retropagazione e la discesa del gradiente.

Applicazioni della Sigmoide

L'applicazione principale della sigmoide oggi è nello strato di uscita dei modelli di classificazione binaria. Poiché il suo output è naturalmente compreso tra 0 e 1, è ideale per rappresentare la probabilità che un input appartenga alla classe positiva.

  1. Diagnosi medica: nell'analisi delle immagini mediche, un modello potrebbe analizzare le caratteristiche di una scansione (ad esempio, un dataset di tumori cerebrali) e utilizzare un livello di output Sigmoid per prevedere la probabilità che sia presente una condizione specifica (ad esempio, una neoplasia). Un output superiore a una certa soglia (spesso 0,5) indica una previsione positiva. Questo output probabilistico aiuta i medici a capire la fiducia del modello. Vedi esempi nella ricerca sull'intelligenza artificiale in radiologia.
  2. Rilevamento dello spam: Nell'elaborazione del linguaggio naturale (NLP), una funzione Sigmoide può essere utilizzata nel livello finale di un modello progettato per la classificazione del testo, ad esempio per identificare se un'e-mail è spam o meno. Il modello elabora il contenuto dell'email e fornisce una probabilità (tramite la Sigmoide) che l'email sia spam. Si tratta di un classico problema di classificazione binaria comune nelle applicazioni NLP.

Sigmoid può essere utilizzato anche in compiti di classificazione multi-label, dove un input può appartenere a più categorie contemporaneamente (ad esempio, un articolo di cronaca etichettato con "politica", "economia" ed "Europa"). In questo caso, viene utilizzato un neurone di uscita Sigmoid separato per ogni etichetta potenziale, stimando la probabilità che quella specifica etichetta sia rilevante, indipendentemente dalle altre. Questo contrasta con la classificazione multiclasse (in cui si applica una sola etichetta, come ad esempio la classificazione di un'immagine come "gatto", "cane" o "uccello"), che in genere utilizza la funzione Softmax.

Sigmoide e funzioni di attivazione correlate

Per capire la Sigmoide spesso bisogna confrontarla con altre funzioni di attivazione:

  • ReLU (Unità Lineare Rettificata): La ReLU emette direttamente l'input se positivo, e zero altrimenti. È computazionalmente più semplice ed evita il problema del gradiente che svanisce per gli ingressi positivi, il che la rende la scelta preferita per gli strati nascosti della maggior parte delle moderne NN, tra cui molte Ultralytics YOLO come YOLOv8. Varianti come Leaky ReLU risolvono il problema del "neurone morente" di ReLU.
  • Tanh (Tangente iperbolica): Tanh è matematicamente correlata alla Sigmoide ma schiaccia gli input nell'intervallo (-1, 1). Il suo risultato è centrato sullo zero, il che a volte può aiutare nell'ottimizzazione rispetto al risultato non centrato sullo zero di Sigmoid (da 0 a 1). Tuttavia, come Sigmoid, soffre del problema del gradiente che svanisce.
  • Softmax: Utilizzato nello strato di uscita per i problemi di classificazione multiclasse. A differenza di Sigmoid (che fornisce probabilità indipendenti per compiti binari o multi-label), Softmax produce una distribuzione di probabilità su tutte le classi, assicurando che le probabilità siano pari a 1. Questo lo rende adatto quando le classi sono mutuamente esclusive.
  • SiLU (Sigmoid Linear Unit) / Swish: Una funzione di attivazione più recente che moltiplica l'input per la sigmoide dell'input. Spesso si comporta meglio di ReLU nei modelli più profondi ed è utilizzata in architetture come EfficientNet e alcune varianti di YOLO . Dimostra come la Sigmoid continui a essere importante come componente all'interno di funzioni più recenti. Consulta la documentazione di PyTorch per l'implementazione di SiLU.

Vantaggi e limiti

Vantaggi:

  • Interpretazione probabilistica: L'intervallo di uscita (0, 1) è intuitivo per rappresentare le probabilità nella classificazione binaria.
  • Gradiente regolare: A differenza delle funzioni con variazioni brusche (come le funzioni a gradini), la Sigmoide ha una derivata liscia e ben definita, che facilita l'apprendimento basato sul gradiente.

Limitazioni:

  • Gradienti che svaniscono: Per valori di ingresso molto alti o molto bassi, il gradiente della funzione Sigmoide diventa estremamente piccolo (vicino allo zero). Durante la retropropagazione, questi piccoli gradienti possono essere moltiplicati per molti livelli, facendo svanire i gradienti dei livelli precedenti e interrompendo di fatto l'apprendimento. Questo è uno dei motivi principali per cui è meno favorita per gli strati nascosti profondi.
  • Uscita non centrata sullo zero: L'intervallo di uscita (0, 1) non è centrato sullo zero. Questo può talvolta rallentare la convergenza degli algoritmi di discesa del gradiente rispetto alle funzioni centrate sullo zero come Tanh.
  • Costo computazionale: L'operazione esponenziale coinvolta la rende leggermente più costosa dal punto di vista computazionale rispetto a funzioni più semplici come ReLU.

Uso e disponibilità moderni

Sebbene oggi sia meno comune negli strati nascosti delle reti profonde, la sigmoide rimane una scelta standard per gli strati di uscita nei compiti di classificazione binaria e multi-label. È anche un componente fondamentale dei meccanismi di regolazione delle reti neurali ricorrenti (RNN), come le LSTM e le GRU, che controllano il flusso di informazioni.

Sigmoid è facilmente reperibile in tutti i principali quadri di apprendimento profondo, tra cui PyTorch (come torch.sigmoid) e TensorFlow (come tf.keras.activations.sigmoid). Piattaforme come Ultralytics HUB supporta modelli che utilizzano diverse funzioni di attivazione, permettendo agli utenti di treno e distribuire sofisticato visione computerizzata soluzioni.

Leggi tutto