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 Gaussian Error Linear Unit, o GELU, è una funzione di attivazione ad alte prestazioni ampiamente utilizzata nelle moderne reti neurali (NN), in particolare nei modelli di trasformatori. Proposta nell'articolo"Gaussian Error Linear Units (GELUs)" di Dan Hendrycks e Kevin Gimpel, la GELU introduce un approccio probabilistico all'attivazione dei neuroni, allontanandosi dalla natura deterministica di funzioni come la ReLU. Pondera gli input in base alla loro entità anziché limitarsi a classificarli in base al segno, combinando in modo efficace le proprietà di dropout, zoneout e ReLU.

Come funziona GELU

GELU determina l'uscita di un neurone moltiplicando il valore dell'ingresso per il valore della funzione di distribuzione cumulativa gaussiana (CDF) standard applicata a quell'ingresso. Ciò significa che l'attivazione è stocastica e dipende dal valore dell'ingresso stesso. A differenza di ReLU, che taglia bruscamente i valori negativi, GELU fornisce una curva più dolce. Gli input con grandezze maggiori hanno maggiori probabilità di essere conservati, mentre gli input più vicini allo zero hanno maggiori probabilità di essere azzerati. Questa ponderazione omogenea e probabilistica consente di ottenere rappresentazioni più ricche e un flusso di gradienti potenzialmente migliore durante la retropropagazione, che è fondamentale per l'addestramento delle reti profonde.

Confronto con altre funzioni di attivazione

GELU offre caratteristiche distinte rispetto ad altre funzioni di attivazione comuni:

  • ReLU (Unità Lineare Rettificata): La ReLU è semplice dal punto di vista computazionale (l'output corrisponde all'input se positivo, zero altrimenti). La GELU è più dolce e non monotona (può diminuire all'aumentare dell'input per i valori negativi), il che a volte può aiutare a catturare modelli più complessi. Tuttavia, GELU è più impegnativo dal punto di vista computazionale rispetto a ReLU.
  • Sigmoide e Tanh: queste funzioni schiacciano gli input in un intervallo fisso (da 0 a 1 per la Sigmoide, da -1 a 1 per la Tanh). Sebbene siano utili in alcuni contesti (come gli strati di uscita per le probabilità), possono soffrire del problema del gradiente che svanisce nelle reti profonde. GELU, come ReLU, non ha un limite superiore e attenua questo problema per i valori positivi.
  • SiLU (Sigmoid Linear Unit) / Swish: SiLU è un'altra funzione di attivazione liscia e non monotona che moltiplica l'input per la sua sigmoide. Presenta delle somiglianze con la GELU in termini di forma e prestazioni, tanto da essere spesso considerata una valida alternativa. Entrambe hanno mostrato ottimi risultati empirici.

Vantaggi di GELU

  • Morbidezza: La sua curva liscia consente una migliore dinamica di discesa del gradiente rispetto al punto netto di ReLU.
  • Non monotonicità: Permette di approssimare funzioni più complesse.
  • Interpretazione probabilistica: Incorpora la grandezza dell'input nella decisione di attivazione in modo stocastico.
  • Prestazioni all'avanguardia: Viene spesso utilizzato nei modelli più performanti, soprattutto nei trasformatori.

Svantaggi e considerazioni

  • Costo computazionale: Il calcolo della CDF gaussiana è più costoso delle semplici operazioni di ReLU. Nella pratica si utilizzano spesso approssimazioni efficienti.
  • Complessità: Leggermente più complessa da capire e da implementare da zero rispetto a funzioni più semplici come ReLU.

Applicazioni e significato

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

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. Puoi esplorare vari modelli e addestrarli utilizzando strumenti come Ultralytics HUB.

Leggi tutto