Un aperçu complet des réseaux de neurones artificiels (ANN)
Publié: 2020-07-17Même si vous ne travaillez pas dans le domaine de la science des données ou du génie logiciel, il est difficile d'éviter de se retrouver devant le terme réseaux de neurones artificiels.
Les réseaux de neurones artificiels (ANN) sont omniprésents. Ils sont utilisés dans les chatbots, l'imagerie médicale, la planification média et une tonne d'autres domaines. Mais avons-nous demandé avec une profonde curiosité : qu'est-ce qu'un réseau de neurones artificiels et que peut-il vraiment accomplir ?
Nous sommes tous tombés sur la définition commune selon laquelle les réseaux de neurones artificiels reproduisent le fonctionnement du système neuronal humain. Cela explique le principe de fonctionnement, mais la plupart d'entre nous ne savent toujours pas ce qui rend un ANN si spécial ou pour quels problèmes il est idéal. Pour clarifier les choses, voici le guide le plus complet et pourtant accessible que vous trouverez sur les réseaux de neurones artificiels.
Qu'est-ce qu'un réseau de neurones artificiels ?
Lorsqu'une douzaine de termes tels que l'intelligence artificielle, l'apprentissage automatique, l'apprentissage en profondeur et les réseaux de neurones, il est facile de se perdre. La bifurcation réelle entre ces verticales n'est pas si compliquée.
L'IA est l'ensemble universel qui est l'objet à portée de main. C'est l'étude systématique du fonctionnement et de la fabrication des programmes intelligents. L'apprentissage automatique est un sous-ensemble de l'IA qui se concentre sur la façon dont les machines peuvent apprendre par elles-mêmes. L'apprentissage en profondeur est un autre sous-ensemble de ML qui se concentre sur la façon dont les couches de réseaux de neurones peuvent être utilisées pour générer des sorties. Vous pouvez utiliser cette visualisation pour naviguer dans la hiérarchie :

Alors, qu'est-ce qu'un réseau de neurones artificiels ? La réponse est exactement comment les médias populaires le vantent. C'est un système de traitement de données et de génération de sortie qui reproduit le système neuronal pour démêler les relations non linéaires dans un grand ensemble de données. Les données peuvent provenir de voies sensorielles et peuvent se présenter sous la forme de texte, d'images ou d'audio.
La meilleure façon de comprendre le fonctionnement d'un réseau neuronal artificiel est de comprendre comment fonctionne un réseau neuronal naturel à l'intérieur du cerveau et d'établir un parallèle entre eux. Les neurones sont le composant fondamental du cerveau humain et sont responsables de l'apprentissage et de la rétention des connaissances et des informations telles que nous les connaissons. Vous pouvez les considérer comme l'unité de traitement dans le cerveau. Ils prennent les données sensorielles en entrée, les traitent et donnent les données de sortie utilisées par d'autres neurones. L'information est traitée et transmise jusqu'à ce qu'un résultat décisif soit atteint.
Le réseau neuronal de base dans le cerveau est relié par des synapses. Vous pouvez les visualiser comme les nœuds terminaux d'un pont qui relie deux neurones. Ainsi, la synapse est le point de rencontre de deux neurones. Les synapses sont une partie importante de ce système car la force d'une synapse déterminerait la profondeur de la compréhension et la rétention des informations.
Lorsque vous pratiquez une activité, vous renforcez ces relations synaptiques. Voici comment vous pouvez visualiser le réseau de neurones dans votre cerveau :
Toutes les données sensorielles que votre cerveau collecte en temps réel sont traitées par ces réseaux de neurones. Ils ont un point d'origine dans le système. Et à mesure qu'ils sont traités par les neurones initiaux, la forme traitée d'un signal électrique sortant d'un neurone devient l'entrée d'un autre neurone. Ce traitement de la micro-information à chaque couche de neurones est ce qui rend ce réseau efficace et efficient. En reproduisant ce thème récurrent du traitement des données sur le réseau neuronal, les RNA sont capables de produire des résultats supérieurs.
Dans un ANN, tout est conçu pour reproduire ce même processus. Ne vous inquiétez pas de l'équation mathématique. Ce n'est pas l'idée clé à comprendre en ce moment. Toutes les données entrant avec l'étiquette 'X' dans le système ont un poids de 'W' pour générer un signal pondéré. Cela reproduit le rôle de la force d'un signal synaptique dans le cerveau. La variable de biais est attachée pour contrôler les résultats de la sortie de la fonction.
Ainsi, toutes ces données sont traitées dans la fonction et vous vous retrouvez avec une sortie. Voilà à quoi ressemblerait un réseau de neurones à une couche ou un perceptron. L'idée d'un réseau de neurones artificiels tourne autour de la connexion de plusieurs combinaisons de ces neurones artificiels pour obtenir des sorties plus puissantes. C'est pourquoi le cadre conceptuel typique du réseau neuronal artificiel ressemble beaucoup à ceci :
Nous définirons bientôt la couche cachée, en approfondissant le fonctionnement d'un réseau de neurones artificiels. Mais en ce qui concerne une compréhension rudimentaire d'un réseau de neurones artificiels, vous connaissez maintenant les premiers principes.
Ce mécanisme est utilisé pour déchiffrer de grands ensembles de données. La sortie tend généralement à être un établissement de causalité entre les variables saisies en entrée qui peut être utilisé pour la prévision. Maintenant que vous connaissez le processus, vous pouvez pleinement apprécier la définition technique ici :
"Un réseau calqué sur le cerveau humain en créant un système neuronal artificiel via un algorithme informatique de reconnaissance de formes qui apprend, interprète et classe les données sensorielles."
Comment fonctionnent et apprennent les réseaux de neurones artificiels ?
Préparez-vous, les choses sont sur le point de devenir intéressantes ici. Et ne vous inquiétez pas - vous n'avez pas à faire une tonne de maths en ce moment.
La magie opère d'abord à la fonction d'activation. La fonction d'activation effectue un traitement initial pour déterminer si le neurone sera activé ou non. Si le neurone n'est pas activé, sa sortie sera la même que son entrée. Rien ne se passe alors. Ceci est essentiel à avoir dans le réseau de neurones, sinon le système sera obligé de traiter une tonne d'informations qui n'ont aucun impact sur la sortie. Vous voyez, le cerveau a une capacité limitée mais il a été optimisé pour l'utiliser au mieux.
Une propriété centrale commune à tous les réseaux de neurones artificiels est le concept de non-linéarité. La plupart des variables étudiées possèdent une relation non linéaire dans la vie réelle.
Prenez par exemple le prix du chocolat et le nombre de chocolats. Supposons qu'un chocolat coûte 1 $. Combien coûteraient 100 chocolats ? Probablement 100 $. Combien coûteraient 10 000 chocolats ? Pas 10 000 $ ; parce que soit le vendeur ajoutera le coût d'utilisation d'un emballage supplémentaire pour assembler tous les chocolats, soit il réduira le coût puisque vous lui retirez une grande partie de son inventaire en une seule fois. C'est le concept de non-linéarité.
Une fonction d'activation utilisera des principes mathématiques de base pour déterminer si l'information doit être traitée ou non. Les formes les plus courantes de fonctions d'activation sont la fonction d'étape binaire, la fonction logistique, la fonction tangente hyperbolique et les unités linéaires rectifiées. Voici la définition de base de chacun d'entre eux :
- Fonction d' étape binaire : Cette fonction active un neurone en fonction d'un seuil. Si la fonction a le résultat final qui est supérieur ou inférieur à une valeur de référence, le neurone est activé.
- Fonction logistique : Cette fonction a un résultat final mathématique sous la forme d'une courbe en « S » et est utilisée lorsque les probabilités sont le critère clé pour déterminer si le neurone doit être activé. Ainsi, à tout moment, vous pouvez calculer la pente de cette courbe. La valeur de cette fonction est comprise entre 0 et 1.
La pente est calculée à l'aide d'une fonction différentielle. Le concept est utilisé lorsque deux variables n'ont pas de relation linéaire. La pente est la valeur d'une tangente qui touche la courbe au point exact où la non-linéarité entre en jeu. Le problème avec la fonction logistique est qu'elle n'est pas bonne pour traiter des informations avec des valeurs négatives. - Fonction tangente hyperbolique : elle est assez similaire à la fonction logistique, sauf que ses valeurs sont comprises entre -1 et +1. Ainsi, le problème d'une valeur négative non traitée dans le réseau disparaît.
- Unités linéaires rectifiées (ReLu) : Les valeurs de cette fonction sont comprises entre 0 et l'infini positif. ReLu simplifie certaines choses - si l'entrée est positive, cela donnera la valeur de 'x'. Pour toutes les autres entrées, la valeur serait '0'. Vous pouvez utiliser un Leaky ReLu qui a des valeurs comprises entre l'infini négatif et l'infini positif. Il est utilisé lorsque la relation entre les variables en cours de traitement est vraiment faible et peut être complètement omise par la fonction d'activation.
Vous pouvez maintenant vous référer aux deux mêmes diagrammes d'un perceptron et d'un réseau de neurones. Quelle est la différence, à part le nombre de neurones ? La principale différence est la couche cachée. Une couche cachée se situe juste entre la couche d'entrée et la couche de sortie dans un réseau de neurones. Le travail de la couche cachée est d'affiner le traitement et d'éliminer les variables qui n'auront pas un fort impact sur la sortie.
Si le nombre d'instances dans un jeu de données où l'impact de la modification de la valeur d'une variable d'entrée est perceptible sur la variable de sortie, la couche masquée affichera cette relation. La couche cachée permet à l'ANN de transmettre facilement des signaux plus forts à la couche de traitement suivante.
Même après avoir fait tous ces calculs et compris le fonctionnement de la couche cachée, vous vous demandez peut-être comment un réseau de neurones artificiels apprend-il réellement ? Commençons par la question fondamentale de ce qu'est l'apprentissage. Apprendre, dans les termes les plus simples, c'est établir une causalité entre deux choses (activités, processus, variables, etc.). Lorsque vous « apprenez » à lancer une balle courbe, vous établissez une causalité entre l'action physique consistant à lancer la balle d'une certaine manière et à faire en sorte que la trajectoire de la balle se courbe d'une certaine manière.

Or, cette causalité est très difficile à établir. Rappelez-vous que la corrélation n'est pas égale à la causalité ? Il est assez facile de déterminer quand deux variables évoluent dans la même direction. Il est très difficile de dire avec une certitude absolue quelle variable est à l'origine du mouvement dans quelle variable. Évidemment, nous sommes souvent capables d'établir cela intuitivement ; mais comment faire en sorte qu'un algorithme comprenne l'intuition ?
Vous utilisez une fonction de coût. Mathématiquement, c'est la différence au carré entre la valeur réelle de l'ensemble de données et la valeur de sortie de l'ensemble de données. Vous pouvez également considérer le degré d'erreur. Nous le mettons au carré parce que parfois la différence peut être négative.
Vous pouvez marquer chaque cycle de traitement d'entrée à sortie avec la fonction de coût. Votre travail et celui de l'ANN consiste à minimiser la fonction de coût à sa valeur la plus basse possible. Vous y parvenez en ajustant les poids dans l'ANN. (Vous vous souvenez des relations synaptiques, alias les poids ? C'est de cela que nous parlons). Il existe plusieurs façons de procéder, mais pour autant que vous compreniez le principe, vous utiliseriez simplement différents outils pour l'exécuter.
A chaque cycle, nous cherchons à minimiser la fonction de coût. Le processus de passage de l'entrée à la sortie est appelé propagation vers l'avant. Et le processus d'utilisation des données de sortie pour minimiser la fonction de coût en ajustant le poids dans l'ordre inverse de la dernière couche cachée à la couche d'entrée est appelé propagation vers l'arrière.
Vous pouvez continuer à ajuster ces pondérations en utilisant soit la méthode Brute Force, qui est inefficace lorsque l'ensemble de données est trop volumineux, soit Batch-Gradient Descent, qui est un algorithme d'optimisation. Vous avez maintenant une compréhension intuitive de la façon dont un réseau de neurones artificiels apprend.
Réseaux de neurones récurrents (RNN) vs réseaux de neurones convolutionnels (CNN)
Comprendre ces deux formes de réseaux de neurones peut également être votre introduction à deux facettes différentes de l'application de l'IA : la vision par ordinateur et le traitement du langage naturel. Dans leur forme la plus simple, ces deux branches de l'IA aident une machine à identifier visuellement des objets et à comprendre le contexte des données linguistiques. Comme vous pouvez l'imaginer, il existe déjà des applications utilisées de ces branches dans les voitures autonomes et les assistants virtuels comme Siri.
Maintenant, chacune de ces branches a son propre réseau de neurones établi. La PNL est fortement dépendante des réseaux de neurones récurrents. La différence entre un RNN et un ANN est que dans un ANN, chaque signal d'entrée est considéré comme indépendant du signal d'entrée suivant. Ainsi, les données d'entrée qui existent entre deux nœuds, en elles-mêmes, n'ont aucune relation.
En réalité, ce n'est pas le cas. Lorsque nous communiquons, chaque mot ouvre la voie contextuelle pour le mot suivant. Par conséquent, la nature fondamentale du langage est qu'il crée des interdépendances entre les informations entrées plus tôt et les informations entrées plus tard. Les RNN sont sensibles à cela en exécutant une mémoire parallèle qui établit la relation entre ces entrées pour effacer le contexte.
Les réseaux de neurones convolutifs sont idéalement utilisés pour la vision par ordinateur. Outre les fonctions d'activation généralement utilisées, ils ajoutent une fonction de pooling et une fonction de convolution. Une fonction de convolution, en termes plus simples, montrerait comment l'entrée d'une image et l'entrée d'une deuxième image (un filtre) donneront une troisième image (le résultat). Vous pouvez imaginer cela en le visualisant comme une image filtrée (un nouvel ensemble de valeurs de pixels) reposant sur votre image d'entrée (ensemble original de valeurs de pixels) pour obtenir une image résultante (valeurs de pixels modifiées).
Une fonction de regroupement prendra la valeur maximale ou minimale, selon la fonction ajoutée, pour faciliter le traitement de cet ensemble d'informations. Voici comment vous pouvez les visualiser :


Fonction mutualisation
5 applications des réseaux de neurones artificiels
Ce dont nous avons parlé jusqu'à présent se passait sous le capot. Nous pouvons maintenant effectuer un zoom arrière et voir ces ANN en action pour apprécier pleinement leur lien avec notre monde en évolution :
1. Personnalisez les recommandations sur les plateformes e-commerce
L'une des premières applications des ANN a consisté à personnaliser les expériences de la plate-forme de commerce électronique pour chaque utilisateur. Vous souvenez-vous des recommandations vraiment efficaces sur Netflix ? Ou les bonnes suggestions de produits Amazon ? Ils sont le résultat de l'ANN.
Il y a une tonne de données utilisées ici : vos achats passés, des données démographiques, des données géographiques et les données qui montrent ce que les personnes achetant le même produit ont ensuite acheté. Tous ces éléments servent d'entrées pour déterminer ce qui pourrait fonctionner pour vous. En même temps, ce que vous achetez vraiment aide l'algorithme à être optimisé. À chaque achat, vous enrichissez l'entreprise et l'algorithme qui habilite l'ANN. Dans le même temps, chaque nouvel achat effectué sur la plateforme améliorera également la capacité de l'algorithme à vous recommander les bons produits.
2. Exploiter le traitement du langage naturel pour les chatbots conversationnels
Il n'y a pas si longtemps, les chatbox avaient commencé à prendre de l'ampleur sur les sites Web. Un agent s'asseyait d'un côté et vous aidait avec vos requêtes tapées dans la boîte. Ensuite, un phénomène appelé traitement du langage naturel (NLP) a été introduit dans les chatbots et tout a changé.
La PNL utilise généralement des règles statistiques pour reproduire les capacités du langage humain et, comme d'autres applications ANN, s'améliore avec le temps. Vos ponctuations, intonations et énonciations, choix grammaticaux, choix syntaxiques, ordre des mots et des phrases, et même la langue de votre choix peuvent servir d'entrées pour entraîner l'algorithme NLP.
Le chatbot devient conversationnel en utilisant ces entrées pour à la fois comprendre le contexte de vos requêtes et formuler des réponses de la manière qui correspond le mieux à votre style. Le même NLP est également utilisé pour l'édition audio à des fins de vérification de la musique et de la sécurité.
3. Prédire les résultats d'un événement de grande envergure
La plupart d'entre nous suivons les prédictions de résultats faites par des algorithmes alimentés par l'IA lors des élections présidentielles ainsi que de la Coupe du Monde de la FIFA. Étant donné que les deux événements sont échelonnés, cela aide l'algorithme à comprendre rapidement son efficacité et à minimiser la fonction de coût à mesure que les équipes et les candidats sont éliminés. Le véritable défi dans de telles situations est le degré de variables d'entrée. Des candidats aux statistiques des joueurs en passant par les données démographiques et les capacités anatomiques, tout doit être intégré.
Sur les marchés boursiers, les algorithmes prédictifs utilisant les ANN existent depuis un certain temps maintenant. Les actualités et les mesures financières sont les principales variables d'entrée utilisées. Grâce à cela, la plupart des bourses et des banques sont facilement en mesure de négocier des actifs dans le cadre d'initiatives de trading à haute fréquence à des vitesses qui dépassent de loin les capacités humaines.
Le problème avec les marchés boursiers est que les données sont toujours bruyantes. Le caractère aléatoire est très élevé en raison du degré de jugement subjectif qui peut avoir un impact sur le prix d'un titre est très élevé. Néanmoins, les ANN sont utilisés dans les activités de tenue de marché par toutes les grandes banques de nos jours.
4. Sanctions de crédit
Des tables actuarielles étaient déjà utilisées pour déterminer les facteurs de risque associés à chaque demandeur d'assurance. Les ANN ont pris toutes ces données un cran plus haut.
Tous les prêteurs peuvent parcourir les décennies de données qu'ils possèdent avec les pondérations solidement établies dans le système et utiliser vos informations comme données d'entrée pour déterminer le profil de risque approprié associé à votre demande de prêt. Votre âge, votre sexe, votre ville de résidence, votre école d'obtention du diplôme, une industrie d'engagement, votre salaire et votre taux d'épargne sont tous utilisés comme données d'entrée pour déterminer vos cotes de risque de crédit.
Ce qui dépendait auparavant fortement de votre pointage de crédit individuel est maintenant devenu un mécanisme beaucoup plus complet. C'est la raison pour laquelle plusieurs acteurs privés de la fintech se sont lancés dans l'espace des prêts personnels pour gérer les mêmes ANN et prêter à des personnes dont les profils sont jugés trop risqués par les banques.
5. Voitures autonomes
Tesla, Waymo et Uber utilisent des ANN similaires. Les intrants et l'ingénierie des produits étaient peut-être différents, mais ils déployaient une informatique visuelle sophistiquée pour faire des voitures autonomes une réalité.
Une grande partie de la conduite autonome concerne le traitement d'informations provenant du monde réel sous la forme de véhicules à proximité, de panneaux de signalisation, de lumières naturelles et artificielles, de piétons, de bâtiments, etc. De toute évidence, les réseaux de neurones alimentant ces voitures autonomes sont plus compliqués que ceux dont nous avons discuté ici, mais ils fonctionnent selon les mêmes principes que ceux que nous avons exposés.
Conclusion
Les ANN deviennent de plus en plus sophistiqués de jour en jour. Les NLP aident maintenant au diagnostic précoce des problèmes de santé mentale, la vision par ordinateur est utilisée dans l'imagerie médicale et les ANN alimentent la livraison par drone. Au fur et à mesure que les ANN deviennent plus complexes et superposés, le besoin d'intelligence humaine dans ce système deviendrait moindre. Même des domaines comme la conception ont commencé à déployer des solutions d'IA avec une conception générative.
L'évolution éventuelle de tous les ANN réunis serait l'intelligence générale - une forme d'intelligence si sophistiquée qu'elle peut apprendre et percevoir toutes les informations connues et inconnues de l'humanité. Bien qu'il s'agisse d'une réalité très lointaine, voire possible, c'est devenu un concept envisageable grâce à la large adoption d'ANN.