Si vous restez au fait des nouvelles technologiques, vous avez probablement rencontré le concept de réseaux de neurones (également connus sous le nom de réseaux de neurones).
En 2016, par exemple, le réseau de neurones AlphaGo de Google a battu l'un des meilleurs joueurs Go professionnels du monde dans une série 4-1. YouTube a également annoncé qu'il utiliserait des réseaux de neurones pour mieux comprendre ses vidéos YouTube utilisera les réseaux de neurones pour comprendre les vidéos YouTube utilisera les réseaux de neurones pour comprendre les vidéos La recherche sur YouTube peut être frustrante, car YouTube ne voit pas les vidéos de la même façon. 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-ce si populaire dans l'apprentissage automatique?
Un ordinateur comme un cerveau
Les neuroscientifiques modernes discutent souvent du cerveau comme d'un type d'ordinateur. Les réseaux de neurones visent à faire le contraire: construire un ordinateur qui fonctionne comme un cerveau.
Bien sûr, nous n'avons qu'une compréhension superficielle 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 ("dans l'ordre"). Ils effectuent de nombreuses opérations sur un ensemble de données, une à la fois. Le 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 parallèle nécessite cinq processeurs différents:
Un réseau neuronal artificiel (appelé ainsi pour le distinguer des réseaux neuronaux réels dans le cerveau) a une structure fondamentalement différente. C'est très interconnecté. Cela lui permet de traiter les données très rapidement, d'apprendre à partir de ces données et de mettre à jour sa propre structure interne pour améliorer les performances.
Le degré élevé d'interdépendance a toutefois des effets étonnants. Par exemple, les réseaux de neurones reconnaissent très bien les modèles 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 produit la réponse correcte.
Une réponse d'entrée-sortie pourrait être aussi simple que "lorsque la touche A est enfoncée, afficher" A "sur l'écran" ou aussi compliqué que l'exécution de statistiques complexes. D'autre part, les réseaux de neurones n'ont pas besoin du même type d'algorithmes. Grâce à des mécanismes d'apprentissage, ils peuvent essentiellement concevoir leurs propres algorithmes. Algorithmes d'apprentissage automatique qui façonnent votre vie Vous ne le réalisez peut-être pas, mais l'apprentissage automatique est déjà tout autour de vous et peut exercer une influence étonnante sur ta vie. Ne me crois pas? Vous pourriez être surpris. Lire la suite pour s'assurer qu'ils fonctionnent correctement.
Il est important de noter que parce que les réseaux de neurones sont des logiciels écrits sur des machines qui utilisent un matériel de traitement en série standard, la technologie actuelle impose toujours des limites. En fait 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 neuronaux, nous pouvons commencer à examiner certains détails. La structure de base d'un réseau neuronal artificiel ressemble à ceci:
Chacun des cercles est appelé un "nœud" et il simule un seul neurone. Sur la gauche sont des noeuds d'entrée, au milieu sont des noeuds cachés, et sur la droite sont des 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 toute autre chose. Ces nœuds représentent les informations circulant 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 nœud d'entrée peut envoyer un signal ("feu", dans le langage des neurosciences) s'il reçoit un 1, et reste dormant 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, reçoit également 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 voir, le poids de la connexion B est plus élevé que 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 tirent d'eux-mêmes, 4 ne seront pas déclenchés, mais 1 et 3 ensemble déclencheront le nœud. Le noeud 2 pourrait également déclencher le noeud par la connexion B.
Prenons le temps comme exemple pratique. Supposons que vous concevez un réseau neuronal simple pour déterminer s'il y a lieu d'avertir de la tempête hivernale.
En utilisant les connexions et les poids ci-dessus, le nœud 4 pourrait seulement tirer si la température est inférieure à 0 F et les vents sont au-dessus de 30 MPH, ou il tirerait s'il y a plus de 70 pour cent de chance de neige. La température serait introduite dans le nœud 1, les vents dans le nœud 3 et la probabilité de neige dans le nœud 2. Le nœud 4 peut maintenant prendre en compte tous ces éléments lors de la détermination du signal à envoyer à la couche de sortie.
Meilleure logique que simple
Bien sûr, cette fonction pourrait simplement être réalisée avec des portes logiques ET / OU simples. Mais des réseaux neuronaux plus complexes, comme celui ci-dessous, sont capables d'opérations beaucoup plus complexes.
Les nœuds de la couche de sortie fonctionnent de la même manière que ceux de la couche cachée: les nœuds de sortie additionnent l'entrée de la couche cachée et, s'ils atteignent une certaine valeur, les nœuds de sortie se déclenchent et envoient des signaux spécifiques. À la fin du processus, la couche de sortie enverra un ensemble de signaux indiquant le résultat de l'entrée.
Alors que le réseau montré ci-dessus est simple, les réseaux de neurones profonds peuvent avoir 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é backpropagation, qui envoie des signaux vers l'arrière à travers le réseau.
Avant que les programmeurs ne déploient un réseau de neurones, ils l'exécutent à travers une phase d'apprentissage dans laquelle ils reçoivent un ensemble d'entrées avec des résultats connus. Par exemple, un programmeur peut enseigner à 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 n'importe quel objet que vous lui lancez. Ce n'est pas seulement cool, mais il a aussi un tas 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 fait ensuite des ajustements à ses propres connexions, modifiant les poids des différents liens entre les nœuds. Cette action est guidée par un algorithme d'apprentissage spécifique ajouté au réseau. Le réseau continue à ajuster les poids de connexion jusqu'à ce qu'il fournisse la sortie correcte.
C'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 la formation, la rétropropagation continue - et c'est là que les réseaux de neurones deviennent vraiment cool. Ils continuent à apprendre comme ils sont utilisés, en intégrant de nouvelles informations et en faisant des ajustements aux poids des différentes connexions, devenant de plus en plus efficaces et efficients à la tâche pour laquelle ils ont été conçus.
Cela pourrait être aussi simple que la reconnaissance d'image ou aussi complexe que la lecture de Go.
De cette façon, les réseaux de neurones changent et s'améliorent constamment. Et cela peut avoir des effets surprenants, résultant en des réseaux qui donnent la priorité aux choses qu'un programmeur n'aurait pas pensé prioriser.
En plus du processus décrit ci-dessus, appelé apprentissage supervisé, il existe également une autre méthode: l'apprentissage non supervisé .
Dans cette situation, les réseaux neuronaux prennent une entrée et essaient de la recréer exactement dans leur sortie, en utilisant la rétropropagation pour mettre à jour leurs connexions. Cela peut sembler être un exercice infructueux, mais de cette façon, les réseaux apprennent à extraire des fonctionnalités utiles et à généraliser ces fonctionnalités pour améliorer leurs modèles.
Problèmes de profondeur
La rétropropagation est un moyen très efficace d'enseigner les réseaux neuronaux ... quand ils ne sont profonds que de quelques couches. Lorsque 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 les réseaux simples.
Les scientifiques ont trouvé un certain nombre de solutions à ce problème, dont les détails sont assez compliqués et dépassent la portée de cette introduction. Ce que beaucoup de ces solutions tentent de faire, en termes simples, est de diminuer la complexité du réseau en l'entraînant à «compresser» les données.
Pour ce faire, le réseau apprend à extraire un plus petit nombre de caractéristiques d'identification de l'entrée, devenant finalement plus efficace dans ses calculs. En effet, le réseau fait des généralisations et des abstractions, à peu près de la même manière que les humains apprennent.
Après cet apprentissage, le réseau peut élaguer 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
Les réseaux de neurones simulent ainsi 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 sont capables de faire des abstractions et de généraliser, ce qui les rend plus efficaces et plus aptes à apprendre.
Que pouvons-nous utiliser pour ces systèmes fascinants?
En théorie, nous pouvons utiliser des réseaux de neurones pour presque tout. Et vous les avez probablement utilisés sans le savoir. Ils sont très communs dans la reconnaissance vocale et visuelle, par exemple, parce qu'ils peuvent apprendre à choisir des traits spécifiques que les sons ou les 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 est devenu l'une des caractéristiques de l'iPhone, mais pour beaucoup, ce n'est pas toujours le plus utile. Tandis que certains de ceci est dû aux limites de la reconnaissance vocale, l'étrangeté d'employer ... Read More où la station d'essence la plus proche est, votre iPhone met votre discours à travers un réseau de neurones pour comprendre ce que vous dites. Il peut y avoir un autre réseau de neurones qui apprend à prédire le genre de choses que vous êtes susceptible de demander.
Les voitures autonomes peuvent utiliser des réseaux de neurones pour traiter les données visuelles, suivant ainsi les règles de la route et évitant les collisions. Les robots de tous types peuvent bénéficier de réseaux de neurones qui les aident à apprendre efficacement à accomplir des tâches. Les ordinateurs peuvent apprendre à jouer à des jeux comme les échecs, Go et les classiques Atari . Si vous avez déjà parlé à un chatbot, il est possible qu'il utilise un réseau de neurones pour offrir des réponses appropriées.
La recherche sur Internet peut grandement bénéficier des réseaux neuronaux, car le modèle de traitement parallèle très efficace peut rapidement traiter un grand nombre de données. 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 proche avenir. Ce modèle de prédiction serait évidemment très précieux pour les spécialistes du marketing (et toute autre personne qui doit prédire un comportement humain complexe).
Reconnaissance d'images, reconnaissance optique de caractères Les 5 meilleurs outils d'OCR pour extraire le texte des images Les 5 meilleurs outils d'OCR pour extraire le texte des images Lorsque vous avez du papier, comment convertir tout le texte imprimé en un programme numérique capable de reconnaître et d'indexer? Gardez un bon logiciel OCR à proximité. Lire la suite, prédiction du marché boursier, l'acheminement des données, le traitement des données volumineuses, l'analyse des coûts médicaux, la prévision des ventes, le jeu vidéo IA ... les possibilités sont presque infinies. La capacité des réseaux de neurones à apprendre des schémas, à faire des généralisations et à prédire avec succès les comportements les rend utiles dans d'innombrables situations.
L'avenir des réseaux neuronaux
Les réseaux de neurones sont passés de modèles très simples à des simulations d'apprentissage hautement complexes. Ils sont dans nos téléphones, nos tablettes et exécutent de nombreux services Web que nous utilisons. Il existe de nombreux autres systèmes d'apprentissage automatique.
Mais les réseaux de neurones, en raison de leur similitude (de manière très simplifiée) avec le cerveau humain, sont parmi les plus fascinants. Alors que nous continuons à développer et perfectionner des modèles, on ne sait pas de quoi ils seront capables.
Connaissez-vous des utilisations intéressantes des réseaux de neurones? Avez-vous de l'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!