Aller au contenu principal

Activations et réseaux feed-forward à portes

« ReLU est obsolète » est une affirmation trop générale ; « n'apprendre que ReLU, la sigmoïde et tanh » est dépassé. Les choix diffèrent aujourd'hui selon l'architecture, l'échelle, la précision, les kernels et le matériel. Les FFNs de Transformers remplacent aussi souvent un chemin direct à deux couches par un chemin à portes (gated), ce qui modifie bien plus qu'une simple fonction élément par élément.

Cette page étudie la non-linéarité et le mélange des canaux à une position ; l’attention échange l’information entre positions. Une porte FFN multiplie des valeurs de canaux, tandis que le routage MoE choisit des réseaux experts pour les tokens ; les deux peuvent coexister. Le processus d’entraînement explique l’actualisation des paramètres par la perte.

Fonctions élément par élément​

NomDéfinition ou rôlePoint fortLimite
ReLUmax⁡(0,x)\max(0,x)économique, zéros exacts, côté positif non saturantgradient nul côté négatif ; cassure en zéro
Leaky/PReLUmax⁡(ax,x)\max(ax,x)conserve le gradient côté négatifajoute une hypothèse ou un paramètre ; sans garantie d’amélioration
GELUxΦ(x)x\Phi(x)pondération lisse selon l’amplitude ; utilisée notamment dans BERTvariantes d'approximation et de kernel ; pas de parcimonie exacte
SiLU/Swishxσ(βx)x\sigma(\beta x)lisse, avec de petites sorties négatives ; β=1\beta=1 est souvent appelé SiLU/Swishrégion non monotone ; coûts de kernel et de quantification
Sigmoidσ(x)\sigma(x)porte sur [0,1][0,1] ou transformation probabilistesature à grande amplitude ; pas un choix général pour les couches cachées profondes
Tanhtanh⁡(x)\tanh(x)fonction bornée et centrée sur zéro, courante dans les états récurrentssature aux deux extrémités

Φ\Phi est la fonction de répartition de la loi normale standard. GELU peut utiliser l’expression exacte en erf ou une approximation en tanh. Différents kernels peuvent produire de petits écarts en précision mixte. L’article sur Swish étudie un paramètre β\beta qui peut être appris ; le SiLU des frameworks fixe couramment β=1\beta=1. Les articles utilisent souvent ces noms de manière quasi interchangeable : précisez donc l’implémentation exacte.

Ici σ(x)=1/(1+e−x)\sigma(x)=1/(1+e^{-x}) et Φ\Phi est la fonction de répartition normale standard. GELU exacte utilise Φ(x)=(1+erf⁡(x/2))/2\Phi(x)=(1+\operatorname{erf}(x/\sqrt2))/2 ; l’expression usuelle en tanh est une approximation. La forme max⁡(ax,x)\max(ax,x) du tableau suppose a≤1a\leq1 ; sans cette restriction, PReLU est définie par morceaux : xx pour une entrée non négative, axax sinon.

Pour SiLU, f′(x)=σ(x)+xσ(x)(1−σ(x))f'(x)=\sigma(x)+x\sigma(x)(1-\sigma(x)). En zéro, ReLU, GELU et SiLU donnent zéro, mais GELU et SiLU ont une dérivée de 1/21/2 ; ReLU n’y possède pas de dérivée unique (l’implémentation choisit une convention). En x=−1x=-1, SiLU vaut environ −0.2689-0.2689 et sa dérivée environ 0.07230.0723. Une porte SwiGLU n’est donc pas une probabilité comprise dans [0,1][0,1] : elle peut être négative ou dépasser un.

Les courbes GELU, ReLU et ELU diffèrent autour de zéro et pour les entrées négatives.Voir l’image en grand

Regardez les entrées négatives : ReLU vaut zéro, GELU passe sous zéro puis s’en rapproche pour des entrées très négatives, tandis qu’ELU avec α = 1 tend vers −1. Le bleu représente GELU standard. Ces formes expliquent les réponses sans classer les performances sur une tâche.

La régularité ne signifie pas une supériorité universelle​

Les fonctions lisses peuvent améliorer certaines trajectoires d’optimisation et certains résultats d’entraînement à grande échelle. Leurs bénéfices restent liés à l’initialisation, à la normalisation, à la largeur, aux données, à l’optimiseur et aux kernels fusionnés. ReLU fournit encore trois contre-exemples pratiques :

  1. Dans les déploiements convolutifs, légers ou quantifiés, des kernels simples et des zéros exacts peuvent compter davantage.
  2. Avec peu de données ou de petits modèles, l’erreur est souvent dominée par les données et la régularisation.
  3. Une référence stable avec ReLU peut révéler que le bénéfice d’une porte complexe vient seulement de paramètres supplémentaires.

Une meilleure moyenne dans un article ne fait pas d’une fonction le choix par défaut pour toutes les tâches.

GLUs et FFNs à portes​

Un FFN classique de Transformer s'écrit

FFN⁡(x)=W2ϕ(W1x+b1)+b2.\operatorname{FFN}(x)=W_2\phi(W_1x+b_1)+b_2.

Une unité linéaire à porte (GLU) multiplie deux projections. Sous une forme simplifiée :

GLU⁡(x)=A(x)⊙σ(B(x)).\operatorname{GLU}(x)=A(x)\odot\sigma(B(x)).

Les variantes courantes dans les Transformers incluent

GEGLU⁡(x)=Wo(GELU⁡(Wgx)⊙Wvx),\operatorname{GEGLU}(x)=W_o\left(\operatorname{GELU}(W_gx)\odot W_vx\right), SwiGLU⁡(x)=Wo(SiLU⁡(Wgx)⊙Wvx).\operatorname{SwiGLU}(x)=W_o\left(\operatorname{SiLU}(W_gx)\odot W_vx\right).

ReGLU remplace la fonction par ReLU dans la branche de porte. Une couche à portes comporte trois projections principales (Wg,Wv,WoW_g,W_v,W_o), contre une projection d’entrée et une de sortie pour le FFN simple. À largeur intermédiaire identique, les paramètres et le calcul augmentent. Les comparaisons à nombre de paramètres égal réduisent donc généralement la largeur intermédiaire de la couche à portes. Le ratio dépend du comptage des biais et des embeddings, ainsi que des contraintes d’alignement ; aucun ratio fixe n’est universel.

Un FFN sans biais allant de la largeur dd à dd via une largeur mm contient 2dm2dm poids. Un FFN à portes de largeur intermédiaire gg contient 3dg3dg poids ; l’égalité donne donc g=2m/3g=2m/3. Pour d=6,m=12d=6,m=12, choisir g=8g=8 donne 144 poids dans les deux cas. Les projections de porte et de valeur vont chacune de 6 à 8 caractéristiques ; leur produit élément par élément reste de longueur 8, puis la projection de sortie revient à 6. C’est l’argument local de comptage de GLU Variants Improve Transformer, pas une garantie de latence mesurée identique.

Exemples d'architectures datées​

  • L’architecture originale de BERT utilise GELU.
  • PaLM indique utiliser SwiGLU.
  • Le rapport d’architecture de Llama 3 utilise aussi SwiGLU, avec RMSNorm, RoPE et GQA dans un bloc complet.
  • ConvNeXt montre que les ConvNets modernes peuvent aussi utiliser GELU ; les activations lisses ne sont pas réservées aux Transformers.

Ces exemples documentés ne prouvent pas que GELU ou SwiGLU domine à toute échelle, dans toute modalité ou sur tout matériel. Lorsque plusieurs composants changent ensemble, le bénéfice global ne peut pas être attribué entièrement à l’activation.

Les activations de sortie relèvent d'une décision distincte​

  • La classification binaire entraîne couramment un logit ; la sigmoïde intervient pour l’interpréter comme une probabilité.
  • Le multiclasse exclusif utilise des logits avec Softmax.
  • Le multilabel utilise des sigmoïdes indépendantes.
  • La régression peut employer une transformation linéaire, à valeurs positives ou bornée, selon le domaine des valeurs de la cible.

Pour la stabilité numérique, les pertes d’entraînement reçoivent généralement les logits directement, plutôt que de calculer manuellement une sigmoïde ou un Softmax puis un logarithme.

Modes de défaillance​

SymptômeCause potentielleVérification
unités bloquées à zéroReLU morte, taux d’apprentissage excessif, décalage du biais ou des entréeshistogrammes d’activation, gradients, taux plus faible ou contrôle par Leaky
gradients quasi nulssaturation de Sigmoid/Tanh, longues chaînes, mauvaise mise à l’échelledistributions des pré-activations, normalisation, initialisation
portes effondréesdéséquilibre d’échelle porte/valeur ou saturationnormes des branches, distributions des portes, référence sans porte
NaNs en précision mixtevaleurs extrêmes, approximation/kernel, mise à l’échelle de la pertecontrôle fp32, assertions de valeurs finies, implémentation stable
fonction « nouvelle » plus lenteabsence de kernel fusionné, projections supplémentaires, bande passante mémoiredébit de bout en bout, pas uniquement les FLOPs
dégradation post-quantificationplage non linéaire et échantillon de calibration inadéquatsévaluation réelle du modèle quantifié sur le matériel cible

Sélection contrôlée​

  1. Fixez d’abord le découpage des données, la famille d’initialisation, l’optimiseur, le nombre de pas et la règle d’arrêt.
  2. Pour comparer les FFN simples ReLU/GELU/SiLU, gardez des largeurs et nombres de paramètres explicites et interprétables.
  3. Pour GEGLU/SwiGLU, indiquez la largeur intermédiaire, le total des paramètres, les FLOPs et le pic mémoire.
  4. Répétez l’entraînement avec plusieurs graines aléatoires ; présentez la moyenne, la dispersion et les échecs.
  5. Mesurez le débit de bout en bout avec le dtype, le compilateur et le matériel cibles.
  6. Définissez les seuils de qualité, latence, mémoire et stabilité avant les résultats, sans choisir les métriques après coup.

Règles de mise à jour et biais​

Cette note privilégie les réseaux denses, les Transformers et l’entraînement sur GPU. Les modèles impulsionnels (spiking), les activations périodiques, les représentations neuronales implicites, les splines apprises, les portes symboliques ou logiques et les accélérateurs spécialisés peuvent exiger des critères entièrement différents. Demandez-vous si une nouvelle fonction modifie la représentation, l'optimisation, le budget ou le kernel avant de l'ajouter à un inventaire d'activations.

Explorer les liensOuvrir le réseau