Qu'est-ce qu'un réseau de neurones ?
Les réseaux de neurones tentent d'imiter le cerveau humain, en combinant l'informatique et les statistiques pour résoudre des problèmes courants dans le domaine de l'intelligence artificielle
Arrière-plan noir et bleu
Qu'est-ce qu'un réseau de neurones ?

Les réseaux de neurones, également connus sous le nom de réseaux de neurones artificiels (ANN) ou réseaux de neurones simulés (SNN) constituent un sous-ensemble de l'apprentissage automatique et sont au cœur des algorithmes de l'apprentissage en profondeur. Leur nom et leur structure sont inspirés du cerveau humain, imitant la manière dont les neurones biologiques s'envoient des signaux.

Les réseaux de neurones artificiels (ANN) sont constitués de couches nodales, contenant une couche d'entrée, une ou plusieurs couches cachées et une couche de sortie. Chaque nœud, ou neurone artificiel, se connecte à un autre et possède un poids et un seuil associés. Si la sortie d'un nœud est supérieure à la valeur de seuil spécifiée, ce nœud est activé et envoie des données à la couche suivante du réseau. Sinon, aucune donnée n'est transmise à la couche suivante du réseau.

Les réseaux de neurones s'appuient sur des données d'entraînement pour apprendre et améliorer leur précision au fil du temps. Cependant, une fois ces algorithmes d'apprentissage suffisamment affinés, ils constituent de puissants outils pour l'informatique et l'intelligence artificielle, permettant de classer et de regrouper très rapidement les données. Les tâches de reconnaissance de la parole ou de l'image peuvent s'exécuter en quelques minutes seulement, alors qu'une identification manuelle par des experts humains nécessite plusieurs heures. L'un des réseaux de neurones les plus connus est l'algorithme de recherche de Google.

Comment fonctionnent les réseaux de neurones ?

Considérez chaque nœud comme son propre modèle de régression linéaire, composé de données d'entrée, de poids, d'un biais (ou seuil) et d'une sortie. La formule ressemblerait à ceci :

∑wixi + biais = w1x1 + w2x2 + w3x3 + biais

sortie = f(x) = 1 si ∑w1x1 + b>= 0 ; 0 si ∑w1x1 + b < 0

Une fois qu'une couche d'entrée est déterminée, des poids sont attribués. Ces poids permettent de déterminer l'importance d'une variable donnée, les poids les plus importants contribuant de façon plus significative à la sortie par rapport aux autres entrées. Toutes les entrées sont ensuite multipliées par leurs poids respectifs, puis additionnées. Par la suite, la sortie est transmise via une fonction d'activation qui détermine la sortie. Si cette sortie dépasse un seuil donné, elle « déclenche » (ou active) le nœud, et transmet les données à la couche suivante du réseau. La sortie d'un nœud devient alors l'entrée du nœud suivant. Ce processus de transmission des données d'une couche à la couche suivante définit ce réseau de neurones comme un réseau à propagation avant.

Décomposons ce à quoi pourrait ressembler un seul nœud en utilisant des valeurs binaires. Nous pouvons appliquer ce concept à un exemple plus concret : par exemple, vous devez décider si vous allez faire du surf (Oui : 1, Non : 0). La décision d'aller surfer ou non est notre résultat prévu, ou valeur y-hat. Supposons que trois facteurs influencent votre prise de décision :

  1. Les vagues sont-elles bonnes ? (Oui : 1, Non : 0)
  2. La voie est-elle libre ? (Oui : 1, Non : 0)
  3. Y a-t-il eu récemment une attaque de requin ? (Oui : 0, Non : 1)

Ensuite, supposons ce qui suit, ce qui nous donne les entrées suivantes :

  • X1 = 1, car les vagues sont bonnes
  • X2 = 0, car la foule est au rendez-vous
  • X3 = 1, car il n'y a pas eu d'attaque de requin récemment

Maintenant, nous devons attribuer des poids pour déterminer l'importance. Des poids plus importants signifient que certaines variables ont une plus grande importance pour la décision ou le résultat.

  • W1 = 5, car il n'y a pas des vagues tous les jours
  • W2 = 2, car vous êtes habitué à la foule
  • W3 = 4, car vous avez très peur des requins

Enfin, nous supposerons également une valeur de seuil de 3, ce qui se traduit par une valeur de biais de -3. Avec toutes ces entrées, nous pouvons commencer à introduire des valeurs dans la formule pour obtenir le résultat souhaité.

Y-hat = (1*5) + (0*2) + (1*4) – 3 = 6

Si nous utilisons la fonction d'activation du début de cette section, nous pouvons déterminer que la sortie de ce nœud serait 1, puisque 6 est supérieur à 0. Dans ce cas, vous allez surfer, mais si nous ajustons les poids ou le seuil, nous pouvons obtenir des résultats différents du modèle. Lorsque nous observons une décision, comme dans l'exemple ci-dessus, nous pouvons voir comment un réseau de neurones pourrait prendre des décisions de plus en plus complexes en fonction de la sortie des décisions ou des couches précédentes.

Dans l'exemple ci-dessus, nous avons utilisé des perceptrons pour illustrer certaines des mathématiques en jeu ici, mais les réseaux de neurones utilisent des neurones sigmoïdes qui se distinguent par des valeurs comprises entre 0 et 1. Étant donné que les réseaux de neurones se comportent de manière similaire aux arbres de décision, en cascadant les données d'un nœud à l'autre, le fait d'avoir des valeurs x comprises entre 0 et 1 réduira l'impact de tout changement donné d'une seule variable sur la sortie d'un nœud donné, et ensuite, sur la sortie du réseau de neurones.

Lorsque nous commençons à réfléchir à des cas d'utilisation plus pratiques des réseaux de neurones, comme la reconnaissance ou la classification des images, nous nous appuyons sur l'apprentissage supervisé, ou sur des ensembles de données étiquetées, pour former l'algorithme. Au fur et à mesure que nous entraînons le modèle, nous voulons évaluer sa précision à l'aide d'une fonction de coût (ou de perte). C'est ce que l'on appelle généralement l'erreur quadratique moyenne (MSE). Dans l'équation au-dessous,

  • i représente l'index de l'échantillon,
  • y-hat est le résultat prédit,
  • y est la valeur réelle et
  • m est le nombre d'échantillons.

= =1/2 ∑129_(=1)^▒( ̂^(() )−^(() ) )^2

En fin de compte, l'objectif est de minimiser notre fonction de coût afin de garantir l'exactitude de l'ajustement pour toute observation donnée. À mesure que le modèle ajuste ses poids et ses biais, il utilise la fonction de coût et l'apprentissage par renforcement pour atteindre le point de convergence, ou le minimum local. Le méthode utilisée par l'algorithme pour ajuster ses poids est celle de la descente de gradient. Elle permet au modèle de déterminer la direction à prendre pour réduire les erreurs (ou minimiser la fonction de coût). Avec chaque exemple d'entraînement, les paramètres du modèle s'ajustent pour converger progressivement vers le minimum.  

Consultez cet article d'IBM Developer pour obtenir une explication plus approfondie des concepts quantitatifs impliqués dans les réseaux de neurones.

La plupart des réseaux de neurones profonds sont à propagation avant, c'est-à-dire qu'ils fonctionnent dans un seul sens, de l'entrée vers la sortie. Cependant, vous pouvez également entraîner votre modèle par rétropropagation, c'est-à-dire en allant dans la direction opposée, de la sortie vers l'entrée. La rétropropagation nous permet de calculer et d'attribuer l'erreur associée à chaque neurone, ce qui nous permet d'ajuster et de régler les paramètres du ou des modèles de manière appropriée.

Types de réseaux de neurones

Les réseaux de neurones peuvent être classés en différents types, qui sont utilisés à des fins différentes. Bien qu'il ne s'agisse pas d'une liste exhaustive des types de réseaux de neurones, la liste ci-dessous est représentative des types les plus courants de réseaux de neurones que vous rencontrerez dans les cas d'utilisation les plus fréquents :

Le perceptron est le plus ancien réseau de neurones, créé par Frank Rosenblatt en 1958.

Les réseaux de neurones à propagation avant, ou perceptrons multicouches (MLP), sont ceux sur lesquels nous nous sommes principalement concentrés dans cet article. Ils sont constitués d'une couche en entrée, d'une ou de plusieurs couches cachées et d'une couche en sortie. Bien que ces réseaux de neurones soient aussi communément appelés des MLP, il est important de noter qu'ils sont en fait constitués de neurones sigmoïdes, et non de perceptrons, car la plupart des problèmes du monde réel sont non-linéaires. Les données sont généralement introduites dans ces modèles pour les entraîner, et ils constituent la base de la vision par ordinateur, du traitement du langage naturel et d'autres réseaux de neurones.

Les réseaux de neurones convolutifs (CNN) sont similaires aux réseaux à propagation avant, mais ils sont généralement utilisés pour la reconnaissance d'images, la reconnaissance de formes et/ou la vision par ordinateur. Ces réseaux exploitent les principes de l'algèbre linéaire, en particulier la multiplication des matrices, pour identifier les motifs dans une image.

Les réseaux de neurones récurrents (RNN) sont identifiés par leurs boucles de rétroaction. Ces algorithmes d'apprentissage sont principalement exploités lorsqu'on utilise des données de séries chronologiques pour faire des prédictions sur des résultats futurs, comme les prédictions boursières ou les prévisions de ventes.

 

Les réseaux de neurones et l'apprentissage en profondeur

L'apprentissage en profondeur et les réseaux de neurones ont tendance à être utilisés indifféremment, ce qui peut prêter à confusion. Il est bon de savoir que le terme « profondeur » dans l'apprentissage en profondeur fait simplement référence à la profondeur des couches d'un réseau de neurones. Un réseau de neurones constitué de plus de trois couches, comprenant les entrées et la sortie, peut être considéré comme un algorithme d'apprentissage en profondeur. Un réseau de neurones qui ne comporte que deux ou trois couches n'est qu'un réseau de neurones de base.

Pour en savoir plus sur les différences entre les réseaux de neurones et les autres formes d'intelligence artificielle,  comme l'apprentissage automatique, consultez l'article de blogue « Différence entre l'IA, l'apprentissage automatique et l'apprentissage en profondeur ».

Histoire des réseaux de neurones

L'histoire des réseaux de neurones est plus longue que la plupart des gens ne le pensent. Bien que l'idée d'une « machine qui pense » remonte aux Grecs anciens, nous nous concentrerons sur les événements clés qui ont conduit à l'évolution de la pensée autour des réseaux de neurones, dont la popularité a fluctué au fil des ans :

1943 : Warren S. McCulloch et Walter Pitts publient « A logical calculus of the ideas immanent in nervous activity (PDF de 1 Mo) (lien externe à ibm.com) ». Ces recherches visent à comprendre comment le cerveau humain peut produire des schémas complexes grâce à des cellules cérébrales connectées, ou neurones. L'une des principales idées issues de ces travaux était la comparaison des neurones à seuil binaire à la logique booléenne (c'est-à-dire les instructions 0/1 ou vrai/faux).   

1958 : Frank Rosenblatt est crédité du développement du perceptron, documenté dans sa recherche, « The Perceptron : A Probabilistic Model for Information Storage and Organization in the Brain » (lien externe à ibm.com). Rosenblatt va un peu plus loin que McCulloch et Pitt, en ajoutant la notion de poids à l'équation. En s'appuyant sur un IBM 704, Rosenblatt est parvenu à apprendre à un ordinateur à distinguer des cartes marquées à gauche de celles marquées à droite.

1974 : Alors que de nombreux chercheurs ont contribué à l'idée de la rétropropagation, Paul Werbos a été la première personne aux États-Unis à noter son application dans les réseaux de neurones dans sa thèse de doctorat (PDF de 8,1 Mo) (lien externe à ibm.com).

1989 : Yann LeCun publie un article (PDF de 5,7 Mo) (lien externe à ibm.com) illustrant comment l'utilisation de contraintes dans la rétropropagation et son intégration dans l'architecture du réseau de neurones peuvent être utilisées pour entraîner des algorithmes. Cette recherche a permis de mettre à profit un réseau de neurones pour reconnaître les chiffres manuscrits des codes postaux fournis par le service postal américain.

Solutions connexes
IBM Watson Studio

Créez et mettez à l'échelle une IA fiable dans n'importe quel cloud. Automatisez le cycle de vie de l'IA pour ModelOps.

Explorer IBM Watson Studio
Solutions IBM Cloud

Hybride. Ouvert. Résilient. Votre plateforme et votre partenaire pour la transformation numérique.

Explorer les solutions cloud
Ressources L’IA au sein de l’entreprise, 2021 : Libérer les opportunités grâce aux données

Inscrivez-vous à nos livres électroniques pour obtenir des perspectives sur les opportunités, les défis et les leçons tirées de l'intégration de l'IA dans les entreprises.

Pour aller plus loin

Depuis des décennies, IBM est un pionnier dans le développement des technologies d'IA et des réseaux de neurones, comme en témoigne le développement et l'évolution d'IBM Watson. Watson est désormais une solution fiable pour les entreprises qui cherchent à appliquer des techniques avancées de traitement du langage naturel et d'apprentissage en profondeur à leurs systèmes en utilisant une approche par étapes éprouvée pour l'adoption et la mise en œuvre de l'IA.

Explorer l'apprentissage en profondeur avec IBM Watson® Studio