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.
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.
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.
La GELU offre vantaggi rispetto alle funzioni di attivazione più semplici, contribuendo alla sua adozione nei modelli più avanzati:
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.