Dans les réseaux de neurones artificiels, la fonction d'activation d'un nœud est une fonction qui calcule la sortie du nœud en fonction de ses entrées individuelles et de leurs poids. Des problèmes non triviaux peuvent être résolus avec seulement quelques nœuds si la fonction d'activation est non linéaire. Les fonctions d'activation sont un composant central des réseaux de neurones, déterminant comment les signaux se propagent à travers les couches et permettant au réseau d'apprendre des motifs complexes dans les données. Elles sont utilisées dans pratiquement tous les modèles modernes de apprentissage automatique, y compris les systèmes de apprentissage profond tels que les grands modèles de langage et les transformateurs.
Les fonctions d'activation peuvent être catégorisées selon leurs propriétés mathématiques, telles que la non-linéarité, la plage et la différentiabilité, qui influencent la stabilité et l'efficacité de l'entraînement. Au fil des années, les chercheurs ont développé de nombreuses fonctions d'activation, chacune avec des avantages et des compromis spécifiques. Le choix de la fonction d'activation peut affecter considérablement les performances d'un modèle, la vitesse de convergence et la capacité à éviter des problèmes comme les gradients disparaissants.
Développement historique
Le concept de fonctions d'activation remonte aux premiers modèles de neurones artificiels, tels que le perceptron introduit par Frank Rosenblatt en 1958, qui utilisait une activation par échelon binaire. Cependant, la fonction échelon n'est pas différentiable, limitant son utilisation dans l'optimisation basée sur les gradients. Dans les années 1980, la fonction sigmoïde logistique est devenue populaire car elle est lisse et différentiable, permettant la rétropropagation. En 1986, David Rumelhart, Geoffrey Hinton et Ronald Williams ont popularisé la rétropropagation, qui repose sur des fonctions d'activation différentiables.
Les années 2010 ont vu un changement vers les unités linéaires rectifiées (ReLU), qui ont aidé à atténuer le problème des gradients disparaissants. ReLU a été utilisée dans le modèle de vision par ordinateur AlexNet en 2012, qui a remporté la compétition ImageNet, et dans le modèle ResNet en 2015, qui a permis l'entraînement de réseaux très profonds. En 2018, l'unité linéaire à erreur gaussienne (GELU) a été introduite et utilisée dans le modèle BERT, une architecture de transformateur fondamentale pour le traitement du langage naturel. Plus récemment, Swish (également connue sous le nom de SiLU) a été proposée en 2017 par des chercheurs de Google, offrant une alternative lisse et non monotone.
Non-linéarité et approximation universelle
Une propriété clé des fonctions d'activation est la non-linéarité. Lorsque la fonction d'activation est non linéaire, un réseau de neurones à deux couches peut être prouvé comme étant un approximateur universel de fonctions, ce qui signifie qu'il peut approximer toute fonction continue sur un domaine compact avec une précision arbitraire. C'est ce qu'on appelle le théorème d'approximation universelle. La fonction d'activation identité ne satisfait pas cette propriété ; lorsque plusieurs couches utilisent la fonction d'activation identité, le réseau entier est équivalent à un modèle à une seule couche, perdant la capacité de représenter des fonctions complexes. Les fonctions d'activation non linéaires permettent aux réseaux de neurones d'apprendre des relations non linéaires dans les données, ce qui est essentiel pour des tâches comme la reconnaissance d'images, le traitement de la parole et la compréhension du langage.
Plage et stabilité de l'entraînement
Les fonctions d'activation ont différentes plages, ce qui affecte l'entraînement basé sur les gradients. Lorsque la plage de la fonction d'activation est finie, les méthodes d'entraînement basées sur les gradients tendent à être plus stables, car les présentations de motifs affectent significativement seulement des poids limités. Par exemple, la fonction sigmoïde produit des valeurs entre 0 et 1, et la fonction tanh produit des valeurs entre -1 et 1. Lorsque la plage est infinie, l'entraînement est généralement plus efficace car les présentations de motifs affectent significativement la plupart des poids, mais des taux d'apprentissage plus petits sont généralement nécessaires pour éviter l'instabilité. ReLU a une plage positive non bornée, ce qui peut conduire à un apprentissage plus rapide mais aussi à des problèmes potentiels comme des neurones morts.
Différentiabilité et optimisation basée sur les gradients
Les fonctions d'activation continûment différentiables sont souhaitables pour permettre les méthodes d'optimisation basées sur les gradients, car elles permettent le calcul des gradients pour la rétropropagation. ReLU n'est pas continûment différentiable à zéro, mais il est toujours possible d'utiliser des sous-gradients ou de définir la dérivée à zéro comme 0 ou 1. La fonction d'activation par échelon binaire n'est pas différentiable à 0 et se différencie à 0 pour toutes les autres valeurs, donc les méthodes basées sur les gradients ne peuvent pas progresser avec elle. Les fonctions d'activation non saturantes, comme ReLU, peuvent être meilleures que les fonctions saturantes car elles sont moins susceptibles de souffrir du problème des gradients disparaissants, où les gradients deviennent extrêmement petits dans les réseaux profonds.
Fonctions d'activation courantes
Sigmoïde (logistique)
La fonction sigmoïde, également connue sous le nom de fonction logistique, est définie comme \( \sigma(x) = \frac{1}{1 + e^{-x}} \). Elle produit des valeurs entre 0 et 1, ce qui la rend utile pour la classification binaire et comme couche de sortie pour les probabilités. Cependant, elle souffre de saturation aux valeurs extrêmes, conduisant à des gradients disparaissants. La sigmoïde a été utilisée dans le modèle de reconnaissance vocale de 2012 développé par Hinton et al.
Tanh (tangente hyperbolique)
La fonction tanh est définie comme \( \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} \), et elle produit des valeurs entre -1 et 1. Elle est centrée sur zéro, ce qui rend souvent l'optimisation plus facile que la sigmoïde. Tanh est couramment utilisée dans les réseaux de neurones récurrents et comme activation de couche cachée.
ReLU (unité linéaire rectifiée)
ReLU est définie comme \( \text{ReLU}(x) = \max(0, x) \). Elle est efficace en calcul et aide à atténuer les gradients disparaissants, car sa dérivée est 1 pour les entrées positives. Cependant, elle peut souffrir de neurones morts, où les unités deviennent inactives de manière permanente. ReLU a été utilisée dans AlexNet et ResNet.
Leaky ReLU et ReLU paramétrique
Leaky ReLU permet une petite pente positive pour les entrées négatives, comme \( \text{LeakyReLU}(x) = \max(0.01x, x) \), pour éviter les neurones morts. La ReLU paramétrique (PReLU) apprend le paramètre de pente pendant l'entraînement, offrant plus de flexibilité.
GELU (unité linéaire à erreur gaussienne)
GELU est une approximation lisse de ReLU, définie comme \( \text{GELU}(x) = x \cdot \Phi(x) \), où \( \Phi \) est la fonction de répartition de la distribution normale standard. Elle a été utilisée dans BERT et de nombreux transformateurs modernes, fournissant des gradients plus lisses et souvent de meilleures performances.
Swish / SiLU
Swish, également connue sous le nom de SiLU (unité linéaire sigmoïde), est définie comme \( \text{Swish}(x) = x \cdot \sigma(x) \). Elle est lisse et non monotone, ce qui a montré une amélioration des performances dans certains réseaux profonds. Swish a été proposée par des chercheurs de Google en 2017.
Softplus
Softplus est une approximation lisse de ReLU, définie comme \( \text{softplus}(x) = \ln(1 + e^x) \). Elle a une plage strictement positive, ce qui la rend adaptée pour prédire les variances dans les autoencodeurs variationnels.
Détails mathématiques
Les fonctions d'activation les plus courantes peuvent être divisées en trois catégories : les fonctions de crête, les fonctions radiales et les fonctions de pli. Une fonction d'activation \( f \) est saturante si \( \lim_{|v| \to \infty} |\nabla f(v)| = 0 \), et non saturante si la limite n'est pas zéro. Les fonctions non saturantes, comme ReLU, sont moins sujettes aux gradients disparaissants.
Fonctions d'activation de crête
Les fonctions de crête sont des fonctions multivariées agissant sur une combinaison linéaire des variables d'entrée. Les exemples incluent :
- Activation linéaire : \( \phi(\mathbf{v}) = a + \mathbf{v}'\mathbf{b} \)
- Activation ReLU : \( \phi(\mathbf{v}) = \max(0, a + \mathbf{v}'\mathbf{b}) \)
- Activation de Heaviside : \( \phi(\mathbf{v}) = 1_{a + \mathbf{v}'\mathbf{b} > 0} \)
- Activation logistique : \( \phi(\mathbf{v}) = (1 + \exp(-a - \mathbf{v}'\mathbf{b}))^{-1} \)
Dans les réseaux de neurones inspirés de la biologie, la fonction d'activation est généralement une abstraction représentant le taux de décharge des potentiels d'action dans la cellule. Dans sa forme la plus simple, cette fonction est binaire, ce qui signifie que le neurone est soit en train de décharger, soit non. Les neurones ne peuvent pas décharger plus vite qu'un certain taux, ce qui motive les fonctions d'activation sigmoïdes dont la plage de sortie est confinée à un intervalle fini.
Fonctions d'activation radiales
Une classe spéciale de fonctions d'activation connues sous le nom de fonctions de base radiales (RBF) est utilisée dans les réseaux RBF. Ces fonctions d'activation peuvent prendre de nombreuses formes, mais elles sont généralement trouvées comme des fonctions gaussiennes : \( \phi(\mathbf{v}) = \exp(-\|\mathbf{v} - \mathbf{c}\|^2 / (2\sigma^2)) \), où \( \mathbf{c} \) est le centre et \( \sigma \) contrôle la largeur. Les réseaux RBF utilisent ces champs récepteurs locaux pour l'approximation de fonctions.
Considérations pratiques
Lors du choix d'une fonction d'activation, les praticiens considèrent des facteurs tels que le coût de calcul, le comportement des gradients et la tâche spécifique. Pour les réseaux profonds, ReLU et ses variantes sont souvent préférées en raison de leur efficacité et de leur capacité à éviter les gradients disparaissants. Pour les couches de sortie, la sigmoïde est utilisée pour la classification binaire, softmax pour la classification multi-classes et l'activation linéaire pour la régression. Dans les transformateurs, GELU est couramment utilisée dans les couches feed-forward, comme on le voit dans des modèles comme BERT et GPT. Le choix de la fonction d'activation peut également interagir avec d'autres techniques telles que la normalisation par lots et le dropout.
Conclusion
Les fonctions d'activation sont fondamentales au fonctionnement des réseaux de neurones, fournissant la non-linéarité qui permet d'apprendre des motifs complexes. Des premières fonctions échelon aux variantes modernes lisses comme GELU et Swish, elles ont évolué pour relever les défis de l'entraînement des modèles profonds. Comprendre leurs propriétés mathématiques aide les chercheurs et les ingénieurs à sélectionner des fonctions appropriées pour des applications spécifiques, contribuant au succès des systèmes d'intelligence artificielle dans divers domaines.