Que sont les réseaux de neurones et comment fonctionnent-ils?
Si vous suivez l'actualité de la technologie, vous avez probablement rencontré le concept de les réseaux de neurones (également connu sous le nom de réseaux neuronaux).
En 2016, par exemple, le réseau de neurones AlphaGo de Google a battu l'un des meilleurs joueurs professionnels de Go au monde dans une série 4-1. YouTube a également annoncé qu’il utiliserait les réseaux de neurones pour mieux comprendre ses vidéos. YouTube utilisera les réseaux de neurones pour comprendre réellement les vidéos. YouTube utilisera les réseaux de neurones pour comprendre réellement les vidéos. La recherche sur YouTube peut être frustrante, car YouTube ne voit pas les vidéos comme une personne fait. Récemment, Google a déposé un brevet qui pourrait changer cela. Lire la suite . Des dizaines d'autres histoires peuvent venir à l'esprit.
Mais qu'est-ce qu'un réseau de neurones? Comment ça marche? Et pourquoi est-il si populaire dans l'apprentissage automatique?
Un ordinateur comme un cerveau
Les neuroscientifiques modernes discutent souvent du cerveau en tant que type d'ordinateur. Les réseaux de neurones ont pour objectif de faire le contraire: construire un ordinateur qui fonctionne comme un cerveau.
Bien sûr, nous n’avons qu’une compréhension sommaire des fonctions extrêmement complexes du cerveau, mais en créant une simulation simplifiée de la façon dont le cerveau traite les données, nous pouvons construire un type d’ordinateur qui fonctionne très différemment d’un ordinateur standard..
Les processeurs informatiques traitent les données en série (“en ordre”). Ils effectuent de nombreuses opérations sur un ensemble de données, une à la fois. Traitement parallèle (“traitement de plusieurs flux à la fois”) accélère considérablement l’ordinateur en utilisant plusieurs processeurs en série.
Dans l'image ci-dessous, l'exemple de traitement en parallèle nécessite cinq processeurs différents:
Un réseau neuronal artificiel (appelé ainsi pour le distinguer des réseaux neuronaux du cerveau) a une structure fondamentalement différente. C'est fortement interconnecté. Cela lui permet de traiter les données très rapidement, de tirer des enseignements de ces données et de mettre à jour sa propre structure interne pour améliorer les performances..
Le degré élevé d'interdépendance, cependant, a des effets étonnants. Par exemple, les réseaux de neurones sont très efficaces pour reconnaître des schémas obscurs dans les données..
La capacité d'apprendre
La capacité d'un réseau de neurones à apprendre est sa plus grande force. Avec l'architecture informatique standard, un programmeur doit développer un algorithme qui indique à l'ordinateur quoi faire avec les données entrantes pour s'assurer que l'ordinateur génère la réponse correcte..
Une réponse entrée-sortie pourrait être aussi simple que “lorsque vous appuyez sur la touche A, affichez «A» à l'écran” ou aussi compliqué que d'effectuer des statistiques complexes. Les réseaux de neurones, en revanche, n’ont pas besoin du même type d’algorithmes. Grâce aux mécanismes d'apprentissage, ils peuvent essentiellement concevoir leurs propres algorithmes. 4 Algorithmes d'apprentissage automatique qui façonnent votre vie 4 Algorithmes d'apprentissage automatique qui façonnent votre vie sur ta vie. Ne me crois pas? Vous pourriez être surpris. Lisez plus pour vous assurer qu'ils fonctionnent correctement.
Il est important de noter que, les réseaux de neurones étant des programmes logiciels écrits sur des machines utilisant du matériel de traitement en série standard, la technologie actuelle impose toujours des limites. Construire une version matérielle d’un réseau de neurones est un autre problème entièrement.
Des neurones aux nœuds
Maintenant que nous avons jeté les bases du fonctionnement des réseaux de neurones, nous pouvons commencer à examiner certaines des spécificités. La structure de base d'un réseau de neurones artificiels ressemble à ceci:
Chacun des cercles est appelé un “nœud” et il simule un seul neurone. À gauche, les noeuds d'entrée, au milieu, les noeuds cachés et à droite, les noeuds de sortie..
En termes très simples, les nœuds d’entrée acceptent des valeurs d’entrée, qui peuvent être un 1 ou un 0 binaire, une partie d’une valeur de couleur RVB, l’état d’une pièce d’échecs ou autre. Ces nœuds représentent les informations entrant dans le réseau.
Chaque nœud d'entrée est connecté à un certain nombre de nœuds cachés (parfois à chaque nœud caché, parfois à un sous-ensemble). Les nœuds d'entrée prennent les informations qui leur sont données et les transmettent à la couche cachée..
Par exemple, un noeud d’entrée peut envoyer un signal (“Feu,” dans le langage de neuroscience) s’il reçoit un 1 et reste en sommeil s’il reçoit un zéro. Chaque nœud caché a un seuil: si toutes ses entrées additionnées atteignent une certaine valeur, il se déclenche.
Des synapses aux connexions
Chaque connexion, l'équivalent d'une synapse anatomique, se voit également attribuer un poids spécifique, ce qui permet au réseau de mettre davantage l'accent sur l'action d'un nœud spécifique. Voici un exemple:
Comme vous pouvez le constater, le poids de la connexion B est supérieur à celui des connexions A et C. Supposons que le nœud caché 4 ne se déclenche que s'il reçoit une entrée totale de 2 ou plus. Cela signifie que si 1 ou 3 se déclenchent seuls, 4 ne seront pas déclenchés, mais 1 et 3 ensemble déclencheront le nœud. Le nœud 2 peut également déclencher le nœud lui-même via la connexion B.
Prenons la météo comme exemple pratique. Imaginons que vous conceviez un réseau de neurones simple pour déterminer s’il devrait y avoir un avertissement de tempête.
En utilisant les connexions et les poids ci-dessus, le nœud 4 ne peut se déclencher que si la température est inférieure à 0 F et les vents supérieurs à 30 km / h, ou s’il se déclenche s’il ya plus de 70% de chances de neige. La température serait transmise au nœud 1, les vents au nœud 3 et le risque de neige au nœud 2. Le nœud 4 peut maintenant prendre en compte tous ces éléments pour déterminer le signal à envoyer à la couche de sortie..
Mieux que la simple logique
Bien entendu, cette fonction pourrait simplement être réalisée avec de simples portes logiques ET / OU. Mais des réseaux de neurones plus complexes, comme celui ci-dessous, sont capables d'opérations beaucoup plus complexes.
Les nœuds de couche de sortie fonctionnent de la même manière que ceux de couche masquée: les nœuds de sortie additionnent les entrées de la couche masquée et, s'ils atteignent une certaine valeur, les nœuds de sortie se déclenchent et envoient des signaux spécifiques. A la fin du processus, la couche de sortie enverra un ensemble de signaux indiquant le résultat de l'entrée.
Bien que le réseau présenté ci-dessus soit simple, les réseaux de neurones profonds peuvent comporter de nombreuses couches cachées et des centaines de nœuds..
Correction des erreurs
Le processus, jusqu'à présent, est relativement simple. Mais où les réseaux de neurones brillent vraiment, c'est dans l'apprentissage. La plupart des réseaux de neurones utilisent un processus appelé rétropropagation, qui envoie des signaux en arrière à travers le réseau.
Avant que les programmeurs déploient un réseau de neurones, ils effectuent une phase d’apprentissage dans laquelle il reçoit un ensemble d’entrées avec des résultats connus. Par exemple, un programmeur peut apprendre à un réseau de neurones à reconnaître des images Utilisez votre smartphone pour identifier n'importe quoi avec CamFind Utilisez votre smartphone pour identifier n'importe quoi avec CamFind Cette application peut vraiment identifier à peu près tout objet que vous lui lancez. Ce n'est pas seulement cool, mais il a aussi beaucoup d'utilisations pratiques! Lire la suite . L'entrée pourrait être une image d'une voiture et la sortie correcte serait le mot “voiture.”
Le programmeur fournit l'image en entrée et voit ce qui sort des nœuds de sortie. Si le réseau répond avec “avion,” le programmeur dit à l'ordinateur qu'il est incorrect.
Le réseau ajuste ensuite ses propres connexions en modifiant le poids des différentes liaisons entre les nœuds. Cette action est guidée par un algorithme d'apprentissage spécifique ajouté au réseau. Le réseau continue d’ajuster le poids des connexions jusqu’à obtenir la sortie correcte..
Ceci est une simplification, mais les réseaux de neurones peuvent apprendre des opérations très complexes en utilisant des principes similaires.
Amélioration continue
Même après l'entraînement, la rétropropagmentation se poursuit - et c'est là que les réseaux de neurones deviennent vraiment cool. Ils continuent d’apprendre au fur et à mesure de leur utilisation, en intégrant de nouvelles informations et en adaptant le poids de connexions différentes, devenant de plus en plus efficaces et efficients dans la tâche pour laquelle ils ont été conçus..
Cela peut être aussi simple que la reconnaissance d'image ou aussi complexe que de jouer Go.
De cette façon, les réseaux de neurones changent et s’améliorent constamment. Et cela peut avoir des effets surprenants, aboutissant à des réseaux qui donnent la priorité à ce qu'un programmeur n'aurait pas pensé à prioriser..
En plus du processus décrit ci-dessus, appelé enseignement supervisé, il y a aussi une autre méthode: apprentissage non supervisé.
Dans cette situation, les réseaux de neurones prennent une entrée et tentent de la recréer exactement dans leur sortie, en utilisant la rétropropagation pour mettre à jour leurs connexions. Cela peut sembler un exercice infructueux, mais de cette façon, les réseaux apprennent à extraire des fonctionnalités utiles et à les généraliser pour améliorer leurs modèles..
Problèmes de profondeur
La rétropropagation est un moyen très efficace d’enseigner les réseaux de neurones… quand ils n’ont que quelques couches de profondeur. Au fur et à mesure que le nombre de couches cachées augmente, l'efficacité de la rétropropagation diminue. C'est un problème pour les réseaux profonds. En utilisant la rétropropagation, ils ne sont souvent pas plus efficaces que de simples réseaux.
Les scientifiques ont trouvé un certain nombre de solutions à ce problème, dont les détails sont assez complexes et vont au-delà de la portée de cette introduction. Ce que beaucoup de solutions tentent de faire, en termes simples, est de réduire la complexité du réseau en le formant à “compresse” les données.
Pour ce faire, le réseau apprend à extraire un plus petit nombre de caractéristiques d’identification de l’entrée, pour finalement devenir plus efficace dans ses calculs. En effet, le réseau fait des généralisations et des abstractions, de la même manière que les humains apprennent.
Après cet apprentissage, le réseau peut supprimer les nœuds et les connexions qu’il juge moins importants. Cela rend le réseau plus efficace et l'apprentissage devient plus facile.
Applications de réseau neuronal
Ainsi, les réseaux de neurones simulent la façon dont le cerveau apprend en utilisant plusieurs couches de nœuds - entrée, caché et sortie - et ils peuvent apprendre à la fois dans des situations supervisées et non supervisées. Les réseaux complexes peuvent faire des abstractions et se généraliser, ce qui les rend plus efficaces et plus aptes à apprendre.
Que pouvons-nous utiliser ces systèmes fascinants pour?
En théorie, nous pouvons utiliser les réseaux de neurones pour presque tout. Et vous les utilisez probablement sans vous en rendre compte. Ils sont très courants en reconnaissance vocale et visuelle, par exemple, car ils peuvent apprendre à identifier des traits spécifiques que des sons ou des images ont en commun..
Alors, quand vous demandez à Siri 8 choses que vous n'avez probablement pas réalisées Siri pourrait faire 8 choses que vous n'avez probablement pas réalisées Siri pourrait faire Siri est devenu l'une des caractéristiques déterminantes de l'iPhone, mais pour beaucoup de gens, ce n'est pas toujours le plus utile. Cela est dû en partie aux limitations de la reconnaissance vocale, à la bizarrerie d’utiliser… Où que se trouve la station-service la plus proche, votre iPhone transmet votre parole via un réseau de neurones pour comprendre ce que vous dites. Un autre réseau de neurones peut apprendre à prédire le genre de choses que vous êtes susceptible de demander..
Les voitures autonomes peuvent utiliser des réseaux de neurones pour traiter des données visuelles, respectant ainsi les règles de la route et évitant les collisions. Les robots de tous types peuvent tirer parti des réseaux de neurones qui les aident à apprendre à effectuer efficacement des tâches. Les ordinateurs peuvent apprendre à jouer à des jeux comme les échecs, Go et Atari les classiques. Si vous avez déjà parlé à un chatbot, il est possible qu'il utilisait un réseau de neurones pour offrir des réponses appropriées.
La recherche sur Internet peut grandement profiter des réseaux de neurones, car le modèle de traitement parallèle très efficace peut générer beaucoup de données rapidement. Un réseau de neurones pourrait également apprendre vos habitudes pour personnaliser vos résultats de recherche ou prédire ce que vous allez rechercher dans un avenir proche. Ce modèle de prédiction serait évidemment très précieux pour les spécialistes du marketing (et pour toute autre personne devant prédire un comportement humain complexe).
Reconnaissance d'image, reconnaissance optique de caractères. Les 5 meilleurs outils d'OCR pour extraire du texte à partir d'images. Les 5 meilleurs outils d'OCR pour extraire du texte à partir d'images. capable de reconnaître et d'indexer? Gardez un bon logiciel OCR à proximité. En savoir plus, prévision boursière, recherche d'itinéraire, traitement de données volumineuses, analyse des coûts médicaux, prévision des ventes, intelligence artificielle dans le jeu vidéo… les possibilités sont presque infinies. La capacité des réseaux de neurones à apprendre des modèles, à généraliser et à prédire le comportement avec succès les rend utiles dans d'innombrables situations..
L'avenir des réseaux de neurones
Les réseaux de neurones ont évolué de modèles très simples à des simulations d'apprentissage très complexes. Ils se trouvent dans nos téléphones, nos tablettes et exploitent bon nombre des services Web que nous utilisons. Il existe de nombreux autres systèmes d’apprentissage automatique.
Mais les réseaux de neurones, du fait de leur similitude (très simplifiée) avec le cerveau humain, sont parmi les plus fascinants. Alors que nous continuons à développer et à raffiner des modèles, nous ne savons pas de quoi ils seront capables..
Connaissez-vous des utilisations intéressantes des réseaux de neurones? Avez-vous une expérience avec eux-mêmes? Qu'est-ce qui vous intéresse le plus dans cette technologie? Partagez votre opinion dans les commentaires ci-dessous!
Explorez plus sur: Futurologie, Réseaux de Neurones, Technologie.