Un modèle mental utile
Imaginez un réseau neuronal comme une série de filtres réglables.
Chaque filtre reçoit des nombres de la couche précédente. Il attribue à chaque nombre un niveau d’influence différent, ajoute un décalage, puis transforme le résultat. Une couche transmet ses nombres transformés à la couche suivante. Après plusieurs transformations de ce type, la couche de sortie produit une prédiction, un score ou une valeur générée.
Le schéma habituel ressemble à un réseau, car les valeurs circulent entre les unités :
input values hidden layer output
x₁ ───────────────┐ h₁ ───────────────┐
├──> ├──> score
x₂ ───────────────┘ h₂ ───────────────┘
weighted sums weighted sum
+ activationUne unité est souvent appelée neurone artificiel. Ce nom est historique. En pratique, un neurone est une petite fonction numérique. Sa ressemblance avec un neurone biologique est limitée.
Cette représentation simple montre un réseau à propagation avant entièrement connecté, dans lequel l’information va de l’entrée vers la sortie et chaque unité est connectée à toutes les unités de la couche suivante. Tous les réseaux neuronaux n’utilisent pas exactement cette organisation. Certains réutilisent le même petit filtre sur une image, conservent un état au fil d’une séquence ou permettent à des parties de l’entrée d’interagir grâce à l’attention. Ils restent des réseaux neuronaux, car ils construisent un calcul entraînable à partir d’opérations connectées.
Comment fonctionne un réseau neuronal
Pour un neurone courant, le calcul est le suivant :
output = activation(w₁x₁ + w₂x₂ + ... + wₙxₙ + b)Les valeurs x sont les entrées. Chaque w est un poids qui contrôle l’intensité avec laquelle une entrée influence ce neurone. Le biais b décale le résultat. La fonction d’activation transforme ensuite ce résultat avant qu’il ne poursuive son parcours dans le réseau.
Une fonction d’activation courante est l’unité linéaire rectifiée, ou ReLU :
ReLU(x) = max(0, x)ReLU renvoie zéro pour une entrée négative et laisse une entrée positive inchangée. D’autres fonctions d’activation transforment les valeurs de différentes manières.
L’activation n’est pas un ajout cosmétique. Supposons que chaque couche effectue uniquement des multiplications et des additions. Deux couches de ce type pourraient toujours être réécrites sous la forme d’une seule étape de multiplication et d’addition. Ajouter des couches ne permettrait pas au réseau de représenter une relation non linéaire. Les activations non linéaires entre les couches empêchent cette simplification et permettent au réseau de construire des formes plus variées à partir d’éléments simples.
Lorsque le réseau reçoit une entrée, il effectue une propagation avant :
- L’entrée est représentée sous forme de nombres.
- Chaque couche calcule de nouveaux nombres à partir de la couche précédente.
- La couche de sortie produit le résultat du réseau.
Pendant l’entraînement, le résultat est comparé au résultat souhaité au moyen d’une fonction de perte, qui mesure l’erreur. La rétropropagation calcule efficacement comment une légère modification de chaque poids ou biais modifierait cette perte. Un optimiseur ajuste ensuite ces valeurs, et le processus se répète sur de nombreux exemples.
« Apprendre » signifie modifier ces nombres réglables. Le développeur choisit l’architecture générale et le processus d’entraînement ; l’algorithme d’entraînement trouve les valeurs des paramètres.
Une propagation avant effectuée à la main
Considérons un réseau théorique qui reçoit deux signaux normalisés pour une transaction par carte :
x₁ = 0,8pour indiquer à quel point le montant est inhabituelx₂ = 0,3pour indiquer à quel point l’appareil est inhabituel
Ces valeurs sont illustratives et ne constituent pas un véritable modèle de détection de fraude. Le réseau possède deux unités cachées avec des activations ReLU.
La première unité cachée calcule :
h₁ = ReLU(1.0 × 0.8 − 1.0 × 0.3 − 0.2)
= ReLU(0.3)
= 0.3La seconde calcule :
h₂ = ReLU(−0.5 × 0.8 + 0.5 × 0.3 + 0.1)
= ReLU(−0.15)
= 0L’unité de sortie combine les valeurs cachées :
score = 1.5 × h₁ + 0.5 × h₂ − 0.4
= 1.5 × 0.3 + 0.5 × 0 − 0.4
= 0.05Il s’agit d’une propagation avant complète. Un véritable classifieur pourrait appliquer une autre fonction pour transformer son score brut en probabilité, ou comparer le score à un seuil de décision.
Aucun programmeur n’a eu besoin d’écrire la règle précise représentée par ces poids. L’entraînement les ajusterait à partir des données. Modifier ne serait-ce qu’un seul poids pourrait changer les unités cachées qui sont actives et l’intensité avec laquelle elles influencent le résultat.
Il est tentant d’appeler h₁ « risque lié au montant » et h₂ « risque lié à l’appareil ». Le calcul ne justifie pas ces appellations. Les unités cachées participent souvent à des motifs qui n’ont de sens que combinés, et leur signification peut ne pas être clairement interprétable par une personne.
Pourquoi les réseaux neuronaux sont importants
Les réseaux neuronaux peuvent apprendre des représentations intermédiaires utiles au lieu de dépendre uniquement de caractéristiques spécifiées à l’avance par une personne. Dans un système d’analyse d’images, les premiers calculs peuvent réagir à des motifs visuels locaux, tandis que les calculs ultérieurs les combinent. Dans un système de traitement du langage, de nombreuses couches transforment les représentations du texte en fonction du contexte. Le comportement exact est appris à travers le réseau, plutôt qu’attribué à un neurone nommé en particulier.
La forme flexible de leur fonction rend les réseaux neuronaux utiles pour les images, le langage, l’audio, la prévision, le contrôle et la génération. Cela ne signifie pas qu’ils sont automatiquement les meilleurs pour tous les problèmes. Un modèle plus simple peut être moins coûteux, plus facile à examiner et plus performant lorsque les données sont limitées ou que la relation est simple.
Les résultats mathématiques montrent que certains réseaux neuronaux peuvent approximer de vastes classes de fonctions s’ils disposent d’un nombre suffisant d’unités cachées. Il s’agit d’une affirmation sur ce qu’un réseau peut représenter. Cela ne garantit pas qu’un jeu de données et un entraînement particuliers trouveront une bonne fonction, éviteront de mémoriser les exemples ou se comporteront de manière fiable sur des entrées inconnues.
Idées reçues courantes
Les réseaux neuronaux fonctionnent comme des cerveaux
La terminologie s’inspire de la biologie, mais les neurones artificiels omettent presque toute la structure et le comportement des neurones biologiques. « Opération numérique pondérée » est un modèle mental plus fiable que « cellule cérébrale numérique ».
Chaque neurone décide s’il doit s’activer
Certains modèles anciens utilisaient des seuils, et ReLU ramène effectivement les valeurs négatives à zéro. Mais les unités modernes produisent généralement des activations numériques, et non de simples décisions oui/non.
Davantage de couches rendent toujours un réseau meilleur
Une profondeur supplémentaire modifie ce qu’un réseau peut représenter et l’efficacité avec laquelle il peut représenter certains motifs. Elle peut aussi rendre le modèle plus difficile ou plus coûteux à entraîner. Les performances dépendent de l’architecture, des données, de l’objectif, de l’optimisation et de l’évaluation, et pas uniquement du nombre de couches.
Les couches cachées rendent automatiquement un modèle non linéaire
Une succession de couches linéaires reste linéaire. C’est l’activation non linéaire entre les couches qui empêche la succession de se réduire à une seule transformation linéaire.
Le réseau découvre des règles compréhensibles
Il découvre des valeurs de paramètres qui réduisent son objectif d’entraînement. Ces valeurs peuvent permettre un comportement utile sans correspondre à une règle courte qu’une personne pourrait lire. L’interprétation nécessite des éléments de preuve distincts.
Les réseaux neuronaux et l’apprentissage profond désignent la même chose
L’apprentissage profond désigne généralement l’apprentissage automatique utilisant des réseaux neuronaux qui comportent plusieurs couches de traitement. Il n’existe pas de seuil universel quant au nombre de couches à partir duquel un réseau est « profond », et les réseaux neuronaux comprennent également des modèles peu profonds.
La place des réseaux neuronaux dans l’IA
Les réseaux neuronaux constituent une famille au sein de l’apprentissage automatique. Une architecture de réseau neuronal spécifie la manière dont les calculs sont organisés. L’entraînement produit les poids appris du modèle, qui font partie des paramètres du modèle. L’exécution du réseau entraîné sur une nouvelle entrée est appelée inférence.
De nombreux systèmes décrits comme un modèle d’IA utilisent des réseaux neuronaux, mais ces termes ne sont pas interchangeables. « Modèle d’IA » est plus large. Un transformeur, par exemple, est une architecture de réseau neuronal construite à partir de mécanismes d’attention, d’opérations de propagation avant, de normalisation et de connexions qui acheminent l’information autour des couches.
L’idée essentielle reste la même dans toutes ces conceptions : organiser des calculs différentiables en une structure utile, puis apprendre les valeurs réglables à partir des données.
Pour aller plus loin
Lisez Que sont les poids d’un modèle ? pour distinguer les forces de connexion apprises par le réseau de son architecture. Lisez Que sont les paramètres d’un modèle ? pour découvrir l’ensemble plus large des valeurs réglables, puis utilisez Paramètres du modèle et poids du modèle pour comparer directement les deux termes. Pour voir comment les réseaux neuronaux génèrent du langage, poursuivez avec Qu’est-ce qu’un LLM ?.