L'unité linéaire d'erreur gaussienne, ou GELU, est une fonction d'activation très performante largement utilisée dans les réseaux neuronaux (RN) modernes, en particulier dans les modèles de transformateurs. Proposée dans l'article"Gaussian Error Linear Units (GELUs)" par Dan Hendrycks et Kevin Gimpel, la GELU introduit une approche probabiliste de l'activation des neurones, s'écartant de la nature déterministe de fonctions comme la ReLU. Elle pondère les entrées en fonction de leur magnitude plutôt que de les classer par signe, combinant ainsi les propriétés de dropout, zoneout et ReLU.
Comparaison avec d'autres fonctions d'activation
GELU offre des caractéristiques distinctes par rapport aux autres fonctions d'activation courantes :
- ReLU (Rectified Linear Unit): ReLU est simple à calculer (la sortie est égale à l'entrée si elle est positive, zéro dans le cas contraire). La GELU est plus lisse et non monotone (elle peut diminuer à mesure que l'entrée augmente pour les valeurs négatives), ce qui peut parfois aider à capturer des modèles plus complexes. Cependant, la GELU nécessite plus de calculs que la ReLU.
- Sigmoïde et Tanh: ces fonctions écrasent les entrées dans une plage fixe (0 à 1 pour Sigmoïde, -1 à 1 pour Tanh). Bien qu'elles soient utiles dans certains contextes (comme les couches de sortie pour les probabilités), elles peuvent souffrir du problème du gradient qui s'évanouit dans les réseaux profonds. GELU, comme ReLU, n'a pas de limite supérieure, ce qui atténue ce problème pour les valeurs positives.
- SiLU (Sigmoid Linear Unit) / Swish: SiLU est une autre fonction d'activation lisse et non monotone qui multiplie l'entrée par sa sigmoïde. Elle partage des similitudes avec GELU en termes de forme et de performance, et est souvent considérée comme une alternative proche. Les deux ont donné de bons résultats empiriques.
Avantages de la GELU
- Lisse : Sa courbe lisse permet une meilleure dynamique de descente de gradient par rapport au point vif de ReLU.
- Non-monotonie : Permet une approximation plus complexe de la fonction.
- Interprétation probabiliste : Incorpore la magnitude de l'entrée dans la décision d'activation de manière stochastique.
- Performance de pointe : Fréquemment utilisé dans les modèles les plus performants, notamment les transformateurs.
Inconvénients et considérations
- Coût de calcul : Le calcul de la FCD gaussienne est plus coûteux que les opérations simples de ReLU. Des approximations efficaces sont souvent utilisées dans la pratique.
- Complexité : Légèrement plus complexe à comprendre et à mettre en œuvre à partir de zéro par rapport à des fonctions plus simples comme ReLU.
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 :
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 calculs 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. Tu peux explorer différents modèles et les entraîner à l'aide d'outils comme Ultralytics HUB.
Comment fonctionne GELU
GELU détermine la sortie d'un neurone en multipliant la valeur d'entrée par la valeur de la fonction de distribution cumulative (FDC) gaussienne standard appliquée à cette entrée. Cela signifie que l'activation est stochastique et dépend de la valeur d'entrée elle-même. Contrairement à ReLU, qui coupe nettement les valeurs négatives, GELU fournit une courbe plus douce. Les entrées dont l'amplitude est plus importante ont plus de chances d'être préservées, tandis que les entrées plus proches de zéro ont plus de chances d'être réduites à zéro. Cette pondération lisse et probabiliste permet des représentations plus riches et potentiellement un meilleur flux de gradient pendant la rétropropagation, ce qui est crucial pour la formation des réseaux profonds.