Glossaire

GELU (unité linéaire d'erreur gaussienne)

Découvre comment la fonction d'activation GELU améliore les modèles de transformateurs tels que GPT-4, en stimulant le flux de gradient, la stabilité et l'efficacité.

Entraîne les modèles YOLO simplement
avec Ultralytics HUB

En savoir plus

GELU (Gaussian Error Linear Unit) est un type de fonction d'activation couramment utilisé dans les réseaux neuronaux modernes, en particulier dans les architectures Transformer. Proposée par Dan Hendrycks et Kevin Gimpel dans l'article"Gaussian Error Linear Units (GELUs)", elle vise à combiner les propriétés de dropout, zoneout et ReLU (Rectified Linear Unit) pour améliorer les performances du modèle. Contrairement à ReLU, qui coupe nettement les valeurs négatives, GELU fournit une courbe plus douce, en pondérant les entrées en fonction de leur magnitude plutôt que de leur signe.

Comment fonctionne GELU

La fonction GELU module l'entrée en fonction de sa valeur, décidant ainsi d'activer ou non un neurone. Elle multiplie l'entrée par la valeur de la fonction de distribution cumulative (FDC) gaussienne standard appliquée à cette entrée. Intuitivement, cela signifie que les entrées les plus éloignées de zéro (qu'elles soient positives ou négatives) ont plus de chances d'être préservées, tandis que les entrées les plus proches de zéro ont plus de chances d'être éliminées. Cette approche probabiliste introduit une forme de régularisation stochastique similaire à l'exclusion mais déterminée par la valeur d'entrée elle-même, ce qui conduit à une fonction non linéaire qui peut capturer des modèles plus complexes dans les données.

GELU vs. autres fonctions d'activation

GELU offre des avantages par rapport aux fonctions d'activation plus simples, ce qui contribue à son adoption dans les modèles de pointe :

  • ReLU : ReLU est simple sur le plan informatique mais peut souffrir du problème de "ReLU mourant", où les neurones deviennent inactifs pour les entrées négatives, ce qui peut entraver l'apprentissage. La courbe lisse de GELU permet aux gradients de s'écouler plus facilement, en particulier pour les valeurs négatives, ce qui peut atténuer ce problème.
  • Leaky ReLU : Le Leaky ReLU résout le problème de la ReLU mourante en autorisant un petit gradient non nul pour les entrées négatives, mais il maintient une simple relation linéaire dans le domaine négatif. GELU offre une transformation non linéaire plus complexe.
  • SiLU (Swish) : SiLU (Sigmoid Linear Unit) est une autre fonction d'activation lisse qui donne souvent des résultats similaires à ceux de GELU. Le choix entre GELU et SiLU peut dépendre de l'architecture et de l'ensemble de données spécifiques, souvent déterminés par des tests empiriques ou le réglage des hyperparamètres.

Applications et importance

GELU est devenu un choix populaire dans de nombreux modèles d'apprentissage profond avancés en raison de ses solides performances empiriques :

  1. Traitement du langage naturel (NLP) : Il est largement utilisé dans les modèles basés sur les transformateurs tels que les modèles BERT et GPT, contribuant à leur succès dans des tâches telles que la génération de texte et la compréhension du langage naturel.
  2. Vision par ordinateur : La GELU se retrouve également dans les transformateurs de vision (ViT) et les modèles de vision ultérieurs. Par exemple, des composants tels que le Generalized Efficient Layer Aggregation Network (GELAN) utilisé dans Ultralytics YOLOv9 emploient GELU pour améliorer l'extraction des caractéristiques et la précision des tâches de détection d'objets, comme l'explique en détail l'article sur YOLOv9.

La capacité de la fonction à fournir une non-linéarité lisse et à incorporer l'ampleur de l'entrée dans les décisions d'activation la rend efficace pour la formation des réseaux profonds. Bien qu'elle soit légèrement plus gourmande en calcul que ReLU, ses avantages en termes de performances justifient souvent son utilisation dans les modèles à grande échelle disponibles via des frameworks tels que PyTorch et TensorFlow.

Tout lire