Réseaux neuronaux

Les réseaux neuronaux reflètent le comportement du cerveau humain, permettant aux programmes informatiques de reconnaître des modèles et de résoudre des problèmes courants dans les domaines de l’IA, de l’apprentissage automatique et de l’apprentissage profond.

Qu’est-ce que les réseaux neuronaux ?

Les réseaux neuronaux, également appelés réseaux neuronaux artificiels (ANN) ou réseaux neuronaux simulés (SNN), constituent un sous-ensemble de l’apprentissage automatique et sont au cœur des algorithmes d’apprentissage profond. Leur nom et leur structure sont inspirés du cerveau humain, imitant la façon dont les neurones biologiques se signalent les uns aux autres.

Les réseaux neuronaux artificiels (ANN) sont composés de couches de nœuds, 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 individuel est supérieure à la valeur seuil spécifiée, ce nœud est activé, envoyant des données à la couche suivante du réseau. Dans le cas contraire, aucune donnée n’est transmise à la couche suivante du réseau.

Diagramme visuel d'une couche d'entrée, de couches cachées et d'une couche de sortie d'un réseau neuronal à anticipation

Les réseaux neuronaux s’appuient sur des données d’apprentissage pour apprendre et améliorer leur précision au fil du temps. Cependant, une fois que ces algorithmes d’apprentissage sont réglés avec précision, ils constituent des outils puissants en informatique et en intelligence artificielle, nous permettant de classer et de regrouper des données à une vitesse élevée. Les tâches de reconnaissance vocale ou de reconnaissance d’images peuvent prendre quelques minutes au lieu de quelques heures, par rapport à l’identification manuelle par des experts humains. L’un des réseaux neuronaux les plus connus est l’algorithme de recherche de Google.

Comment fonctionnent les réseaux neuronaux ?

Pensez à chaque nœud individuel 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 à quelque chose comme ceci :

Formule mathématique utilisée pour déterminer la sommation
.

Formule mathématique utilisée pour déterminer la sortie

Une fois qu’une couche d’entrée est déterminée, des poids sont attribués. Ces poids aident à déterminer l’importance de toute variable donnée, les plus grandes contribuant de manière 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. Ensuite, la sortie est passée par 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, transmettant les données à la couche suivante du réseau. Ainsi, la sortie d’un nœud devient l’entrée du nœud suivant. Ce processus de passage des données d’une couche à la couche suivante définit ce réseau neuronal comme un réseau feedforward.

Décomposons ce à quoi pourrait ressembler un seul nœud en utilisant des valeurs binaires. Nous pouvons appliquer ce concept à un exemple plus tangible, comme celui de savoir si vous devez aller surfer (Oui : 1, Non : 0). La décision d’y aller ou de ne pas y aller est notre résultat prédit, ou y-hat. Supposons que trois facteurs influencent votre prise de décision :

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

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

  • X1 = 1, puisque les vagues sont en train de pomper
  • X2 = 0, puisque la foule est sortie
  • X3 = 1, puisqu’il n’y a pas eu de récente attaque de requin

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

  • W1 = 5, puisque les grosses houles ne viennent pas souvent
  • W2 = 2, puisque vous êtes habitué à la foule
  • W3 = 4, puisque vous avez peur des requins

Enfin, nous supposerons également une valeur seuil de 3, ce qui se traduirait par une valeur de biais de -3. Avec toutes les différentes entrées, nous pouvons commencer à brancher des valeurs dans la formule pour obtenir la sortie souhaitée.

Y-chapeau = (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 iriez surfer ; mais si nous ajustons les poids ou le seuil, nous pouvons obtenir différents résultats du modèle. Lorsque nous observons une décision, comme dans l’exemple ci-dessus, nous pouvons voir comment un réseau neuronal 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 neuronaux exploitent les neurones sigmoïdes, qui se distinguent par des valeurs comprises entre 0 et 1. Étant donné que les réseaux neuronaux 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 entre 0 et 1 réduira l’impact de tout changement donné d’une seule variable sur la sortie de tout nœud donné, et par la suite, la sortie du réseau neuronal.

Lorsque nous commençons à réfléchir à des cas d’utilisation plus pratiques pour les réseaux neuronaux, comme la reconnaissance ou la classification d’images, nous nous appuierons sur l’apprentissage supervisé, ou des ensembles de données étiquetées, pour former l’algorithme. À mesure que nous formons le modèle, nous souhaitons évaluer sa précision à l’aide d’une fonction de coût (ou de perte). Cette fonction est également appelée communément l’erreur quadratique moyenne (EQM). Dans l’équation ci-dessous,

  • i représente l’indice de l’échantillon,
  • y-hat est le résultat prédit,
  • y est la valeur réelle, et
  • m est le nombre d’échantillons.
Formule mathématique utilisée pour déterminer la fonction de coût

En fin de compte, l’objectif est de minimiser notre fonction de coût pour garantir la justesse de l’ajustement pour toute observation donnée. Lorsque le modèle ajuste ses poids et son biais, il utilise la fonction de coût et l’apprentissage par renforcement pour atteindre le point de convergence, ou le minimum local. Le processus par lequel l’algorithme ajuste ses poids se fait par descente de gradient, ce qui 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.

Graphe linéaire illustrant le point de convergence

Voir cet article de IBM Developer pour une explication plus approfondie des concepts quantitatifs impliqués dans les réseaux neuronaux.

La plupart des réseaux neuronaux profonds sont feedforward, ce qui signifie qu’ils circulent dans une seule direction, de l’entrée vers la sortie. Cependant, vous pouvez également former votre modèle par rétropropagation, c’est-à-dire aller 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 d’ajuster les paramètres du ou des modèles de manière appropriée.

Types de réseaux neuronaux

Les réseaux neuronaux 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, ce qui suit serait représentatif des types de réseaux neuronaux les plus courants que vous rencontrerez pour ses cas d’utilisation courants :

Le perceptron est le réseau neuronal le plus ancien, créé par Frank Rosenblatt en 1958. Il possède un seul neurone et constitue la forme la plus simple de réseau neuronal :

Schéma simple d'un perceptron utilisant des lignes et un cercle bleu

Les réseaux neuronaux à anticipation, ou perceptrons multicouches (MLP), sont ceux sur lesquels nous nous sommes principalement concentrés dans le cadre de cet article. Ils sont constitués d’une couche d’entrée, d’une ou plusieurs couches cachées et d’une couche de sortie. Bien que ces réseaux neuronaux soient aussi communément appelés 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 former, et ils constituent la base de la vision par ordinateur, du traitement du langage naturel et d’autres réseaux neuronaux.

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

Les réseaux neuronaux récurrents (RNN) sont identifiés par leurs boucles de rétroaction. Ces algorithmes d’apprentissage sont principalement exploités lors de l’utilisation de données de séries temporelles pour faire des prédictions sur les résultats futurs, comme les prédictions boursières ou les prévisions de ventes.

Réseaux neuronaux vs apprentissage profond

L’apprentissage profond et les réseaux neuronaux ont tendance à être utilisés de manière interchangeable dans la conversation, ce qui peut prêter à confusion. Par conséquent, il est bon de noter que le « deep » dans deep learning fait juste référence à la profondeur des couches dans un réseau neuronal. Un réseau neuronal composé de plus de trois couches – qui comprendraient les entrées et les sorties – peut être considéré comme un algorithme d’apprentissage profond. Un réseau neuronal qui ne comporte que deux ou trois couches n’est qu’un réseau neuronal de base.

Pour en savoir plus sur les différences entre les réseaux neuronaux et d’autres formes d’intelligence artificielle, comme l’apprentissage automatique, veuillez lire l’article de blog « IA vs apprentissage automatique vs apprentissage profond vs réseaux neuronaux : Quelle est la différence ? »

Histoire des réseaux neuronaux

L’histoire des réseaux neuronaux 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 neuronaux, dont la popularité a connu des hauts et des bas au fil des ans :

1943 : Warren S. McCulloch et Walter Pitts publient « Un calcul logique des idées immanentes à l’activité nerveuse (PDF, 1K KB) (le lien réside en dehors d’IBM) » Cette recherche cherchait à comprendre comment le cerveau humain pouvait produire des schémas complexes par le biais de cellules cérébrales connectées, ou neurones. L’une des principales idées issues de ces travaux a été la comparaison des neurones avec un seuil binaire à la logique booléenne (c’est-à-dire des énoncés 0/1 ou vrai/faux).

1958 : Frank Rosenblatt est crédité du développement du perceptron, documenté dans sa recherche, « The Perceptron : Un modèle probabiliste pour le stockage et l’organisation de l’information dans le cerveau » (PDF, 1,6K Ko) (le lien réside en dehors d’IBM). Il pousse un peu plus loin les travaux de McCulloch et Pitt en introduisant des poids dans l’équation. En s’appuyant sur un IBM 704, Rosenblatt est parvenu à faire en sorte qu’un ordinateur apprenne à distinguer les 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 neuronaux au sein de sa thèse de doctorat (PDF, 7,8 Mo) (le lien réside en dehors d’IBM).

1989 : Yann LeCun a publié un article (PDF, 5,5K Ko) (le lien réside en dehors d’IBM) illustrant comment l’utilisation de contraintes dans la rétropropagation et son intégration dans l’architecture du réseau neuronal peuvent être utilisées pour former des algorithmes. Cette recherche a exploité avec succès un réseau neuronal pour reconnaître les chiffres du code postal écrits à la main fournis par le service postal américain.

Les réseaux neuronaux et IBM Cloud

Depuis des décennies, IBM est un pionnier dans le développement des technologies d’IA et des réseaux neuronaux, mis en évidence par le développement et l’évolution d’IBM Watson. Watson est désormais une solution de confiance pour les entreprises qui cherchent à appliquer des techniques avancées de traitement du langage naturel et d’apprentissage profond à leurs systèmes en utilisant une approche par paliers éprouvée pour l’adoption et la mise en œuvre de l’IA.

Watson utilise le cadre Apache Unstructured Information Management Architecture (UIMA) et le logiciel DeepQA d’IBM pour mettre à la disposition des applications de puissantes capacités d’apprentissage profond. En utilisant des outils tels qu’IBM Watson Studio et Watson Machine Learning, votre entreprise peut mettre en production de manière transparente vos projets d’IA open-source tout en déployant et en exécutant vos modèles sur n’importe quel cloud.

Pour plus d’informations sur la façon de démarrer avec la technologie d’apprentissage profond, explorez IBM Watson Studio.

Signez-vous pour un IBMid et créez votre compte IBM Cloud.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *