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 , la seconde . En substituant :
Le produit est une matrice, et 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
La sigmoïde écrase toute entrée dans l'intervalle :
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 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 , 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 :
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 :
| Variante | Comportement pour | Intérêt |
|---|---|---|
| Leaky ReLU | pente faible fixe, souvent | supprime le neurone mort |
| PReLU | pente apprise pendant l'entraînement | plus souple, un paramètre de plus |
| ELU | décroissance exponentielle vers | sorties centrées, plus coûteuse |
| GELU | pondération douce par une loi normale | ré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âche | Activation de sortie | Perte associée |
|---|---|---|
| régression | aucune (sortie linéaire) | erreur quadratique moyenne |
| classification binaire | sigmoïde, 1 neurone | entropie croisée binaire |
| classification multiclasse | softmax, 1 neurone par classe | entropie croisée catégorielle |
| classification multi-étiquettes | sigmoïde sur chaque neurone | entropie 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.
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.