Comprendre Fonction d’activation
Chaque couche cachée applique une fonction d’activation terme à terme à sa sortie linéaire. Le but est structurel plutôt que cosmétique : sans activation, empiler des couches produit une autre application linéaire et la profondeur est gaspillée. Le choix de la fonction détermine ensuite le comportement des gradients pendant l’entraînement, et c’est ce qui le rend décisif en pratique.
ReLU, qui renvoie l’entrée si elle est positive et zéro sinon, est le choix par défaut des couches cachées. Son calcul est trivialement bon marché, et pour les entrées positives sa dérivée vaut exactement un : elle ne rétrécit ni n’amplifie les gradients qui la traversent en sens inverse. C’est cette propriété qui rend entraînables les réseaux très profonds, et c’est l’activation que Chollet utilise partout pour les couches cachées.
Les fonctions plus anciennes, sigmoïde et tanh, compriment leur entrée dans un intervalle borné, et c’est là que réside le problème. Pour de grandes entrées positives ou négatives, la courbe s’aplatit et la dérivée tend vers zéro. Comme la rétropropagation multiplie ces dérivées d’une couche à l’autre, quelques unités saturées poussent les gradients des premières couches vers rien, et l’apprentissage cale. L’adoption de ReLU est largement une réponse à cela.
ReLU a son propre mode de défaillance : une unité dont l’entrée est toujours négative sort zéro et reçoit un gradient nul, elle ne peut donc jamais se rétablir. Des variantes comme la ReLU fuyante, qui donne une petite pente non nulle aux entrées négatives, existent pour y remédier. Les couches de sortie relèvent d’une autre logique, choisies pour correspondre à la cible plutôt que pour faciliter l’optimisation : softmax pour une distribution sur des classes, sigmoïde pour une probabilité indépendante, et aucune activation pour une régression non bornée.
Comment calculer
ReLU(x) = max(0, x); σ(x) = 1/(1 + e⁻ˣ); softmax(x)ᵢ = e^{xᵢ} / Σⱼ e^{xⱼ}
où
- ReLU
- unité linéaire rectifiée, le choix habituel des couches cachées
- σ
- la sigmoïde, qui envoie tout réel dans (0, 1)
- softmax
- normalise un vecteur de scores en une distribution de probabilité de somme 1
Questions fréquentes
Pourquoi ReLU a-t-elle largement remplacé la sigmoïde dans les couches cachées ?
La sigmoïde sature : pour des entrées éloignées de zéro son gradient est presque nul, et la rétropropagation multiplie ces petits facteurs d’une couche à l’autre, si bien que les premières couches cessent d’apprendre. ReLU a un gradient exactement égal à un pour les entrées positives, le signal passe donc sans s’affaiblir.
Qu’est-ce que le problème de la ReLU mourante ?
Si l’entrée d’une unité est toujours négative, elle sort zéro et son gradient est nul : ses poids ne se mettent jamais à jour et l’unité est définitivement inerte. La ReLU fuyante et ses variantes évitent cela en donnant aux entrées négatives une petite pente non nulle.
Comment choisit-on l’activation de sortie ?
D’après la forme de la cible. Softmax pour des problèmes multiclasses mutuellement exclusifs, sigmoïde pour des problèmes binaires ou multi-étiquettes indépendants, et aucune activation pour une régression non bornée. À la différence des activations cachées, ce choix est dicté par la tâche et non par l’optimisation.
En résumé
Les fonctions d’activation sont ce qui rend la profondeur digne d’intérêt, et leur comportement en gradient décide si un réseau profond s’entraîne tout court. ReLU est le choix par défaut sensé pour les couches cachées ; l’activation de sortie est fixée par la tâche de prédiction.