Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

SiLU (Sigmoid Linear Unit)

SiLU, chiamata anche Swish, moltiplica un input per la sua sigmoide per ottenere un’attivazione regolare con auto-gating. Include la matematica, le origini e un confronto con ReLU.

La Sigmoid Linear Unit (SiLU) è una funzione di attivazione definita come SiLU(x) = x · σ(x), dove σ è la funzione sigmoide. Lascia quasi invariati gli input positivi grandi, porta gli input negativi grandi vicino a zero e varia dolcemente tra i due estremi, raggiungendo un minimo di circa −0.278 in x ≈ −1.278. SiLU è la stessa funzione di Swish con β = 1 e i due nomi sono usati in modo intercambiabile. È un'opzione predefinita comune nei modelli convoluzionali per la visione e, nel blocco SwiGLU, attiva anche i livelli feed-forward di molti modelli linguistici di grandi dimensioni (LLM).

Definizione e proprietà#

SiLU moltiplica ogni input per un gate, σ(x), compreso tra 0 e 1 e calcolato a partire dall'input stesso: per questo si chiama auto-gate. La sua derivata è σ(x) · (1 + x · (1 − σ(x))) e, insieme, queste formule conferiscono a SiLU quattro proprietà che distinguono il suo comportamento durante l'addestramento da quello di ReLU:

  • Sempre liscia: la curva e la sua derivata sono continue, senza spigoli in corrispondenza dello zero; così piccole variazioni dei pesi producono piccole variazioni dell'output, una caratteristica adatta alla discesa del gradiente.
  • Gradiente per gli input negativi: un'unità il cui input è negativo riceve comunque un piccolo gradiente e continua quindi ad apprendere. Le unità ReLU i cui input restano negativi non ricevono alcun gradiente e possono smettere di apprendere definitivamente: questo problema è noto come ReLU morente.
  • Non monotona: l'output diminuisce leggermente mentre x cresce da valori molto negativi fino a circa −1.28, poi aumenta; la funzione non è quindi monotona.
  • Limitata inferiormente, illimitata superiormente: gli output non scendono mai sotto circa −0.278 e gli input positivi passano senza saturarsi, come accade con ReLU; si evita così il problema del gradiente evanescente tipico di sigmoide e tanh nelle reti profonde.

Il codice PyTorch seguente calcola SiLU e i gradienti di SiLU e ReLU in cinque punti.

import torch
import torch.nn.functional as F

x = torch.tensor([-4.0, -1.28, 0.0, 1.0, 4.0], requires_grad=True)

# SiLU(x) = x * sigmoid(x), a confronto con ReLU sugli stessi input
silu = F.silu(x)
relu = F.relu(x)

# Gradiente di ogni funzione di attivazione rispetto al proprio input
silu_grad = torch.autograd.grad(silu.sum(), x)[0]
relu_grad = torch.autograd.grad(relu.sum(), x)[0]

print("SiLU output:  ", [round(v, 4) for v in silu.tolist()])
print("SiLU gradient:", [round(v, 4) for v in silu_grad.tolist()])
print("ReLU gradient:", relu_grad.tolist())

Stampa gli output di SiLU [-0.0719, -0.2785, 0.0, 0.7311, 3.9281], i gradienti di SiLU [-0.0527, -0.0003, 0.5, 0.9277, 1.0527] e i gradienti di ReLU [0.0, 0.0, 0.0, 1.0, 1.0]. In −4, ReLU produce 0 e non trasmette alcun gradiente, mentre SiLU ne trasmette ancora −0.0527. In −1.28, SiLU raggiunge il suo minimo di −0.2785 con un gradiente quasi esattamente pari a 0; in 4, il suo gradiente supera leggermente 1.

Origine del nome#

Hendrycks e Gimpel hanno chiamato x · σ(x) Sigmoid Linear Unit nel loro articolo del 2016 che introduceva GELU: vi compariva come variante di GELU basata sulla sigmoide, meno efficace di GELU ma generalmente migliore di ReLU ed ELU. Nel 2017, Elfwing, Uchibe e Doya hanno poi usato SiLU per l'approssimazione di funzioni con reti neurali nell'apprendimento per rinforzo. Nello stesso anno, alcuni ricercatori di Google hanno riscoperto x · σ(βx) tramite una ricerca automatizzata di funzioni di attivazione, l'hanno chiamata Swish e hanno riferito che sostituire ReLU aumentava l'accuratezza top-1 su ImageNet dello 0,9% per Mobile NASNet-A e dello 0,6% per Inception-ResNet-v2. PyTorch ha aggiunto nn.SiLU nella versione 1.7, usando il nome precedente.

SiLU a confronto con altre funzioni di attivazione#

  • ReLU: max(0, x) è meno costosa da calcolare, produce zeri esatti e ha un gradiente costante pari a 1 per gli input positivi. SiLU aggiunge una sigmoide per elemento, ottenendo in cambio una curva più regolare e gradienti anche sul lato negativo.
  • GELU: x · Φ(x), dove Φ è la funzione di distribuzione cumulativa normale standard. Le due curve hanno la stessa forma e la SiLU scalata x · σ(1.702x approssima GELU con un errore massimo di circa 0.02. GELU è la scelta abituale nei Transformer come BERT e ViT, mentre SiLU è più comune nei rilevatori basati su CNN.
  • Sigmoide: σ(x) da sola comprime gli input nell'intervallo da 0 a 1 e si satura a entrambe le estremità, quindi viene usata come livello di output per le probabilità. SiLU la usa soltanto come gate.
  • Hard-Swish: x · ReLU6(x + 3) / 6 è un'approssimazione di SiLU introdotta con MobileNetV3. Sostituisce il gate sigmoide con uno lineare a tratti, evitando l'esponenziale sull'hardware mobile.
  • SwiGLU: unità lineare con gate che moltiplica elemento per elemento SiLU(xW) per una seconda proiezione xV. Costituisce il blocco feed-forward di LLaMA e di molti altri LLM.

Dove si usa SiLU#

SiLU, con il nome Swish, è la funzione di attivazione usata in tutto EfficientNet ed è comune nei moderni rilevatori di oggetti in tempo reale. I modelli Ultralytics YOLO usano SiLU da quando YOLOv5 v4.0 ha sostituito LeakyReLU e Hardswish con SiLU, nel gennaio 2021; in YOLO26, ogni blocco Conv è composto da convoluzione, normalizzazione del batch e SiLU.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning