Learn how the Gaussian Error Linear Unit (GELU) improves deep learning. Discover its role in Transformers, BERT, and LLMs to enhance neural network performance.
L'unité linéaire d'erreur gaussienne (GELU) est une fonction d'activation sophistiquée qui joue un rôle central dans les performances des systèmes d'intelligence artificielle (IA) modernes, en particulier ceux basés sur l'architecture Transformer. Contrairement aux fonctions traditionnelles qui appliquent un seuil rigide et déterministe aux entrées des neurones, la GELU introduit un aspect probabiliste inspiré des propriétés de la distribution gaussienne. En pondérant les entrées en fonction de leur amplitude plutôt que de simplement les filtrer, GELU offre une non-linéarité plus fluide qui facilite l'optimisation des modèles d'apprentissage profond (DL). Cette caractéristique unique permet aux réseaux de modéliser plus efficacement des modèles de données complexes, contribuant ainsi de manière significative au succès des modèles de base massifs.
Au cœur de tout réseau neuronal, les fonctions d'activation déterminent si un neurone « s'active » en fonction de son signal d'entrée. Les fonctions plus anciennes, telles que l' unité linéaire rectifiée (ReLU), fonctionnent comme un interrupteur, produisant une sortie nulle pour toute entrée négative et l'entrée elle-même pour les valeurs positives. Bien qu'efficace, cette coupure nette peut entraver la dynamique d'apprentissage.
GELU améliore ce principe en adaptant l'entrée à la fonction de distribution cumulative d'une distribution gaussienne. Intuitivement, cela signifie que lorsque la valeur d'entrée diminue, la probabilité que le neurone abandonne augmente, mais cela se produit progressivement plutôt que brusquement. Cette courbure crée une fonction lisse et non monotone qui est différenciable en tous points. Cette régularité facilite une meilleure rétropropagation des gradients, contribuant ainsi à atténuer des problèmes tels que celui de la disparition des gradients, qui peut bloquer l'entraînement des réseaux profonds.
Le paysage d'optimisation plus fluide fourni par GELU en a fait le choix par défaut pour certaines des applications les plus avancées en matière d'apprentissage automatique (ML).
Pour bien comprendre le GELU, il faut souvent le distinguer d'autres fonctions d'activation courantes qui figurent dans le Ultralytics .
La mise en œuvre de GELU est simple grâce à l'utilisation de bibliothèques modernes d'apprentissage profond telles que PyTorch. L'exemple suivant montre comment appliquer la fonction à un tensor données d'entrée.
import torch
import torch.nn as nn
# Initialize the GELU activation function
gelu_activation = nn.GELU()
# Create sample input data including negative and positive values
input_data = torch.tensor([-3.0, -1.0, 0.0, 1.0, 3.0])
# Apply GELU to the inputs
output = gelu_activation(input_data)
# Print results to see the smoothing effect on negative values
print(f"Input: {input_data}")
print(f"Output: {output}")
Pour les développeurs qui souhaitent exploiter ces fonctions d'activation avancées dans leurs propres projets de vision par ordinateur, Ultralytics simplifie l'ensemble du flux de travail. Elle fournit une interface unifiée pour annoter les données, former des modèles à l'aide d'architectures telles que YOLO26 (qui utilise des activations optimisées comme SiLU) et les déployer efficacement dans le cloud ou sur des appareils périphériques.