Aller au contenu principal

Module 2 — Fonctions d'activation : ReLU, sigmoïde, tanh, GELU

La fonction d'activation est le composant le plus discret d'un réseau et l'un des plus décisifs. Ce module explique d'abord pourquoi elle est structurellement indispensable, puis pourquoi le choix par défaut a changé au milieu des années 2010.

Sans non-linéarité, la profondeur ne sert à rien

Voici la démonstration à connaître, car elle justifie l'existence même de ces fonctions. Supposons un réseau à deux couches sans activation. La première calcule h=W1x+b1h = W_1 x + b_1, la seconde y=W2h+b2y = W_2 h + b_2. En substituant :

y=W2(W1x+b1)+b2=(W2W1)x+(W2b1+b2)y = W_2(W_1 x + b_1) + b_2 = (W_2 W_1)x + (W_2 b_1 + b_2)

Le produit W2W1W_2 W_1 est une matrice, et W2b1+b2W_2 b_1 + b_2 un vecteur. Le réseau à deux couches est donc un réseau à une seule couche, avec d'autres paramètres. Empilez-en cent, le résultat reste une transformation linéaire.

La conséquence est nette : sans activation non linéaire, la profondeur est un coût de calcul sans aucun gain de capacité. C'est la fonction d'activation, et elle seule, qui rend l'empilement fécond.

Les trois activations historiques

Courbes de trois fonctions d'activation entre -3 et 3. La ReLU vaut zéro pour les entrées négatives puis croît linéairement. La sigmoïde forme un S entre 0 et 1. La tangente hyperbolique forme un S entre -1 et 1, centré en zéro.01ReLUsigmoïdetanh
Utilisez les boutons pour isoler une courbe. On voit d'un coup d'œil ce qui distingue la ReLU : elle ne sature pas du côté positif, là où sigmoïde et tanh s'aplatissent aux deux extrémités.

La sigmoïde écrase toute entrée dans l'intervalle ]0,1[]0, 1[ :

σ(x)=11+ex\sigma(x) = \frac{1}{1 + e^{-x}}

Elle a dominé les années 1990 pour son interprétation probabiliste. Deux défauts l'ont écartée des couches cachées. D'abord la saturation : dès que x|x| dépasse 4 ou 5, la courbe est presque plate, donc sa dérivée est quasi nulle et le gradient ne passe plus — c'est le sujet du module 6. Ensuite, sa sortie n'est pas centrée en zéro, ce qui rend les mises à jour de poids systématiquement biaisées dans une direction et ralentit la convergence.

La tangente hyperbolique corrige le second défaut en produisant des sorties dans ]1,1[]-1, 1[, centrées en zéro. Elle est strictement préférable à la sigmoïde en couche cachée, mais elle sature toujours aux deux extrémités.

ReLU, et pourquoi elle a tout changé

La ReLU est d'une simplicité déconcertante :

ReLU(x)=max(0,x)\text{ReLU}(x) = \max(0, x)

Elle est devenue le choix par défaut, et ses avantages sont concrets. Elle ne sature pas du côté positif : sa dérivée y vaut exactement 1, donc le gradient traverse sans s'atténuer, ce qui rend praticables des réseaux très profonds. Elle est triviale à calculer — une comparaison, là où la sigmoïde demande une exponentielle. Et elle produit une activation creuse : les neurones à sortie négative sont inactifs, ce qui donne des représentations plus économes.

Son défaut porte un nom : le neurone mort. Si les poids amènent un neurone à recevoir systématiquement des entrées négatives, sa sortie est toujours nulle, sa dérivée toujours nulle, et il ne se met plus jamais à jour. Il est définitivement perdu. Un taux d'apprentissage trop élevé en produit des quantités.

D'où les variantes, qui laissent tous passer un filet de gradient du côté négatif :

VarianteComportement pour x<0x < 0Intérêt
Leaky ReLUpente faible fixe, souvent 0,01x0{,}01xsupprime le neurone mort
PReLUpente apprise pendant l'entraînementplus souple, un paramètre de plus
ELUdécroissance exponentielle vers 1-1sorties centrées, plus coûteuse
GELUpondération douce par une loi normaleréférence des transformeurs

La GELU mérite une attention particulière : c'est l'activation des architectures modernes de traitement du langage, dont les transformeurs du cours 12. Au lieu de couper net à zéro, elle pondère l'entrée par la probabilité qu'une variable normale lui soit inférieure, ce qui donne une transition lisse au voisinage de zéro. En pratique elle apporte un gain régulier mais modeste, pour un coût de calcul un peu supérieur.

La couche de sortie ne se choisit pas, elle se déduit

Point de méthode important : pour les couches cachées, l'activation est un hyperparamètre ; pour la couche de sortie, elle est imposée par la tâche.

TâcheActivation de sortiePerte associée
régressionaucune (sortie linéaire)erreur quadratique moyenne
classification binairesigmoïde, 1 neuroneentropie croisée binaire
classification multiclassesoftmax, 1 neurone par classeentropie croisée catégorielle
classification multi-étiquettessigmoïde sur chaque neuroneentropie croisée binaire

La distinction entre les deux dernières lignes est une source d'erreurs fréquente. La softmax normalise les sorties pour qu'elles somment à 1 : elle suppose que les classes sont exclusives. Si une observation peut porter plusieurs étiquettes à la fois — une photographie contenant un chien et un vélo — il faut une sigmoïde indépendante par étiquette, jamais une softmax.

Que choisir en pratique

Commencez par ReLU dans les couches cachées : c'est le défaut raisonnable, rapide et éprouvé. Si vous observez des neurones morts, passez à Leaky ReLU. Sur une architecture à base de transformeurs, utilisez GELU, qui est la convention du domaine. N'employez la sigmoïde et la tanh en couche cachée que pour une raison précise — une porte de réseau récurrent, par exemple, sujet du cours 11. Et rappelez-vous que le gain à optimiser l'activation reste faible devant celui d'une meilleure architecture ou de meilleures données.

En résumé

  • Sans activation non linéaire, un empilement de couches se réduit à une seule couche : la profondeur n'apporte alors rien.
  • Sigmoïde et tanh saturent aux extrémités, ce qui bloque le gradient ; la tanh est au moins centrée en zéro.
  • ReLU ne sature pas du côté positif, se calcule instantanément et produit des activations creuses, au risque du neurone mort que corrigent Leaky ReLU et ses variantes.
  • L'activation de sortie est déduite de la tâche ; softmax pour des classes exclusives, sigmoïdes indépendantes pour des étiquettes multiples.

Module suivant : la propagation avant et le calcul de la perte, c'est-à-dire ce qui se passe exactement quand une donnée traverse le réseau.