Glossario

GELU (Unità lineare di errore gaussiano)

Scopri come la funzione di attivazione GELU migliora i modelli di trasformatori come il GPT-4, aumentando il flusso del gradiente, la stabilità e l'efficienza.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

La GELU (Gaussian Error Linear Unit) è un tipo di funzione di attivazione comunemente utilizzata nelle moderne reti neurali, in particolare nelle architetture Transformer. Proposta da Dan Hendrycks e Kevin Gimpel nell'articolo"Gaussian Error Linear Units (GELUs)", mira a combinare le proprietà di dropout, zoneout e ReLU (Rectified Linear Unit) per migliorare le prestazioni del modello. A differenza di ReLU, che taglia bruscamente i valori negativi, GELU fornisce una curva più dolce, ponderando gli input in base alla loro entità piuttosto che al loro segno.

Come funziona GELU

La funzione GELU modula l'ingresso in base al suo valore, decidendo di fatto se "attivare" un neurone. Moltiplica l'input per il valore della funzione di distribuzione cumulativa gaussiana (CDF) standard applicata a quell'input. Intuitivamente, questo significa che gli input più lontani dallo zero (sia positivi che negativi) hanno maggiori probabilità di essere conservati, mentre gli input più vicini allo zero hanno maggiori possibilità di essere azzerati. Questo approccio probabilistico introduce una forma di regolarizzazione stocastica simile al dropout ma determinata dal valore stesso dell'input, portando a una funzione non lineare che può catturare modelli più complessi nei dati.

GELU rispetto ad altre funzioni di attivazione

La GELU offre vantaggi rispetto alle funzioni di attivazione più semplici, contribuendo alla sua adozione nei modelli più avanzati:

  • ReLU: ReLU è computazionalmente semplice ma può soffrire del problema del "ReLU morente", in cui i neuroni diventano inattivi per gli input negativi, ostacolando potenzialmente l'apprendimento. La curva liscia di GELU permette ai gradienti di fluire più facilmente, soprattutto per i valori negativi, attenuando potenzialmente questo problema.
  • Leaky ReLU: Mentre Leaky ReLU risolve il problema del ReLU morente consentendo un gradiente piccolo e non nullo per gli ingressi negativi, mantiene una semplice relazione lineare nel dominio negativo. GELU offre una trasformazione più complessa e non lineare.
  • SiLU (Swish): SiLU (Sigmoid Linear Unit) è un'altra funzione di attivazione morbida che spesso ha prestazioni simili a GELU. La scelta tra GELU e SiLU può dipendere dall'architettura e dal set di dati specifici, spesso determinati attraverso test empirici o la messa a punto di iperparametri.

Applicazioni e significato

GELU è diventato una scelta popolare in molti modelli avanzati di deep learning grazie alle sue ottime prestazioni empiriche:

  1. Elaborazione del linguaggio naturale (NLP): è ampiamente utilizzata nei modelli basati su trasformatori come i modelli BERT e GPT, contribuendo al loro successo in compiti come la generazione di testi e la comprensione del linguaggio naturale.
  2. Visione artificiale: GELU si trova anche nei Vision Transformers (ViT) e nei modelli di visione successivi. Ad esempio, componenti come il Generalized Efficient Layer Aggregation Network (GELAN) utilizzato in Ultralytics YOLOv9 utilizzano GELU per migliorare l'estrazione delle caratteristiche e l'accuratezza dei compiti di rilevamento degli oggetti, come illustrato nel documento YOLOv9.

La capacità della funzione di fornire una non linearità omogenea e di incorporare l'ampiezza dell'input nelle decisioni di attivazione la rende efficace per l'addestramento di reti profonde. Sebbene sia leggermente più impegnativa dal punto di vista computazionale rispetto a ReLU, i vantaggi in termini di prestazioni ne giustificano spesso l'utilizzo in modelli su larga scala disponibili attraverso framework come PyTorch e TensorFlow.

Leggi tutto