Objectif : choisir une activation et comprendre saturation, gradients et sortie.
| Activation | Expression/idée | Usage et vigilance |
|---|---|---|
| ReLU | max(0, z) | simple, rapide ; neurones morts possibles |
| LeakyReLU | pente faible si z<0 | réduit les unités définitivement nulles |
| tanh | sortie [-1, 1] | centrée, mais sature aux extrêmes |
| sigmoid | sortie [0, 1] | surtout sortie binaire ; saturation |
| GELU | modulation lisse | fréquente dans les Transformers |
La dérivée de ReLU vaut 1 pour z>0 et 0 pour z<0. Une unité qui reçoit toujours des
pré-activations négatives ne transmet plus de gradient : elle est « morte ».
BCEWithLogitsLoss.CrossEntropyLoss.softmax(z_i) = exp(z_i) / Σ_j exp(z_j) transforme K logits en nombres positifs dont la
somme vaut 1. Ajouter une constante identique à tous les logits ne change pas les
probabilités. Les implémentations stables soustraient le maximum avant l'exponentielle.
Utilisez ReLU comme baseline pour un MLP/CNN, GELU pour un Transformer, et ne placez une activation de sortie que si la perte ou l'interface l'exige explicitement.
Pourquoi les activations doivent-elles être non linéaires ? Quelle activation produit des probabilités exclusives ?
Sinon tout le réseau se réduit à une transformation affine. Softmax produit une distribution sur des classes exclusives.
Calculez ReLU et sigmoïde pour z = {-2, 0, 2}, puis le softmax stable de [1000, 1001, 999]. Associez ensuite une sortie à quatre tâches : binaire, multiclasse, multilabel et
régression non bornée. Réussite : aucune double activation avant une perte sur logits.
Lecture : la fonction de perte dicte souvent le format numérique attendu. Avec les pertes stables qui reçoivent des logits, la sigmoïde ou le softmax servent à l'interprétation, pas à l'entrée de la perte. Le piège principal est donc la double activation, qui détériore les gradients et peut donner des probabilités trompeuses.