Cerveaux de poche : le matériel neuromorphique arrive pour nos algorithmes inspirés du cerveau

AgrandirMiguel Navarro / Getty Images

Alors que les grandes entreprises mondiales recherchent des voitures autonomes, elles dépensent essentiellement des milliards de dollars pour que les machines fassent ce que votre enfant moyen de deux ans peut faire sans penser à identifier ce qu’il voit. Bien sûr, à certains égards, les tout-petits ont toujours l’avantage. L’année dernière tristement célèbre, un conducteur est décédé alors qu’il se trouvait dans une berline Tesla. Il ne faisait pas attention lorsque la caméra du véhicule a confondu un camion à proximité avec le ciel.

Le degré de succès de ces entreprises jusqu’à présent est dû à une forme de calcul longtemps dormante qui modélise certains aspects du cerveau. Cependant, cette forme de calculs actuels du matériel à ses limites, puisque les ordinateurs modernes fonctionnent très différemment de la matière grise dans nos têtes. Ainsi, alors que les programmeurs créent des logiciels de « réseau de neurones » pour fonctionner sur des puces informatiques ordinaires, les ingénieurs conçoivent également du matériel « neuromorphe » qui peut imiter le cerveau plus efficacement. Malheureusement, un type de réseau neuronal qui est devenu la norme en matière de reconnaissance d’images et d’autres tâches, appelé réseau neuronal convolutif, ou CNN, a résisté à la réplication dans le matériel neuromorphique.

C’est-à-dire jusqu’à récemment.

Les scientifiques d’IBM ont rapporté dans le Actes de l’Académie nationale des sciences qu’ils ont adapté les CNN pour qu’ils fonctionnent sur leur puce TrueNorth. D’autres groupes de recherche ont également signalé des progrès sur la solution. Le système TrueNorth correspond à la précision des meilleurs systèmes actuels de reconnaissance d’image et de voix, mais il utilise une petite fraction de l’énergie et fonctionne à plusieurs fois la vitesse. Enfin, combiner des réseaux convolutifs avec des puces neuromorphiques pourrait créer plus qu’une simple bouchée de jargon ; cela pourrait conduire à des voitures plus intelligentes et à des téléphones portables qui comprennent efficacement nos commandes verbales, même lorsque nous avons la bouche pleine.

Traditionnellement, la programmation d’un ordinateur nécessitait d’écrire des instructions étape par étape. Apprendre à l’ordinateur à reconnaître un chien, par exemple, peut impliquer la liste d’un ensemble de règles pour guider son jugement. Vérifiez si c’est un animal. Vérifiez s’il a quatre pattes. Vérifiez s’il est plus gros qu’un chat et plus petit qu’un cheval. Vérifiez s’il aboie. Etc. Mais un bon jugement exige de la flexibilité. Et si un ordinateur rencontre un petit chien qui n’aboie pas et qui n’a que trois pattes ? Vous avez peut-être besoin de plus de règles, alors, mais énumérer des règles sans fin et répéter le processus pour chaque type de décision qu’un ordinateur doit prendre est inefficace et peu pratique.

Les humains apprennent différemment. Un enfant peut distinguer les chiens et les chats, marcher droit et parler couramment sans qu’on lui dise une seule règle concernant ces tâches – nous apprenons par expérience. En tant que tels, les informaticiens ont traditionnellement cherché à capturer une partie de cette magie en modélisant des logiciels sur le cerveau.

Le cerveau contient environ 86 milliards de neurones, des cellules qui peuvent se connecter à des milliers d’autres neurones via des branches élaborées. Un neurone reçoit des signaux de nombreux autres neurones, et lorsque la stimulation atteint un certain seuil, il « se déclenche », envoyant son propre signal aux neurones environnants. Un cerveau apprend, en partie, en ajustant les forces des connexions entre les neurones, appelées synapses. Lorsqu’un modèle d’activité est répété, par la pratique, par exemple, les liens contributifs deviennent plus forts et la leçon ou la compétence est inscrite dans le réseau.

Dans les années 1940, les scientifiques ont commencé à modéliser mathématiquement les neurones, et dans les années 1950, ils ont commencé à modéliser leurs réseaux avec des ordinateurs. Les neurones et synapses artificiels sont beaucoup plus simples que ceux d’un cerveau, mais ils fonctionnent selon les mêmes principes. De nombreuses unités simples (渘eurons”) se connectent à de nombreuses autres (via des “synapses”), leurs valeurs numériques dépendant des valeurs des unités qui leur signalent, pondérées par la force numérique des connexions.

Les réseaux de neurones artificiels (parfois simplement appelés réseaux de neurones) sont généralement constitués de couches. Représenté visuellement, l’information ou l’activation voyage d’une colonne de cercles à l’autre via des lignes entre eux. Le fonctionnement de réseaux avec de nombreuses couches de ce type est appelé apprentissage en profondeur, à la fois parce qu’ils peuvent apprendre plus en profondeur et parce que le réseau réel est plus profond. Les réseaux neuronaux sont une forme d’apprentissage automatique, le processus par lequel les ordinateurs ajustent leur comportement en fonction de l’expérience. Aujourd’hui, les réseaux peuvent conduire des voitures, reconnaître des visages et traduire des langues. De telles avancées doivent leur succès aux améliorations de la vitesse de l’ordinateur, à la quantité massive de données d’entraînement désormais disponibles en ligne et aux modifications apportées aux algorithmes de base du réseau neuronal.

Agrandir / Bien sûr, Wikimedia a un diagramme CNN qui inclut un adorable robot… Wikimedia

Les réseaux de neurones convolutifs sont un type particulier de réseau qui a pris de l’importance ces dernières années. Les CNN extraient des caractéristiques importantes des stimuli, généralement des images. Une entrée peut être une photo d’un chien. Cela pourrait être représenté comme une couche de neurones en forme de feuille, l’activation de chaque neurone représentant un pixel dans l’image. Dans la couche suivante, chaque neurone recevra l’entrée d’un patch de la première couche et deviendra actif s’il détecte un motif particulier dans ce patch, agissant comme une sorte de filtre. Dans les couches suivantes, les neurones rechercheront des motifs dans les motifs, et ainsi de suite. Le long de la hiérarchie, les filtres peuvent être sensibles à des éléments tels que les bords des formes, puis des formes particulières, puis des pattes, puis des chiens, jusqu’à ce qu’il vous dise s’il voit un chien ou un grille-pain.

De manière critique, les filtres internes n’ont pas besoin d’être programmés à la main pour rechercher des formes ou des pattes. Il vous suffit de présenter au réseau les entrées (images) et les sorties correctes (étiquettes d’image). Lorsqu’il se trompe, il ajuste légèrement ses connexions jusqu’à ce qu’après de très nombreuses images, les connexions deviennent automatiquement sensibles aux fonctionnalités utiles. Ce processus ressemble à la façon dont le cerveau traite la vision, des détails de bas niveau jusqu’à la reconnaissance d’objets. Toute information pouvant être représentée spatialement – deux dimensions pour les photos, trois pour la vidéo, une pour les chaînes de mots dans une phrase, deux pour l’audio (temps et fréquence) – peut être analysée et comprise par les CNN, ce qui les rend très utiles.

Bien que Yann LeCun, désormais directeur de la recherche sur l’IA sur Facebook, ait proposé pour la première fois des CNN en 1986, ils n’ont révélé leur fort potentiel que lorsque quelques ajustements ont été apportés à leur mode de fonctionnement. En 2012, Geoffrey Hinton, aujourd’hui l’un des meilleurs experts en IA de Google, et deux de ses étudiants diplômés ont utilisé un CNN pour gagner quelque chose appelé ImageNet Challenge, un concours exigeant que les ordinateurs reconnaissent des scènes et des objets. En fait, ils ont gagné avec une si grande marge que les CNN ont pris le relais, et depuis lors, chaque gagnant a été un CNN.

Maintenant, imiter le cerveau est coûteux en termes de calcul. Étant donné que le cerveau humain possède des milliards de neurones et des milliards de synapses, il est actuellement impossible de simuler chaque neurone et chaque synapse. Même simuler un petit morceau de cerveau pourrait nécessiter des millions de calculs pour chaque élément d’entrée.

Malheureusement, comme indiqué ci-dessus, les réseaux de neurones convolutifs nécessitent une puissance de calcul énorme. Avec de nombreuses couches, et chaque couche appliquant le même filtre de caractéristiques à plusieurs reprises à de nombreux patchs de la couche précédente, les plus grands CNN d’aujourd’hui peuvent avoir des millions de neurones et des milliards de synapses. L’exécution de tous ces petits calculs ne convient pas à une architecture informatique classique, qui doit traiter une instruction à la fois. Au lieu de cela, les scientifiques se sont tournés vers le calcul parallèle, qui peut traiter de nombreuses instructions simultanément.

Aujourd’hui, les réseaux de neurones avancés utilisent des unités de traitement graphique (GPU) – le genre utilisé dans les consoles de jeux vidéo – car ils se spécialisent dans les types d’opérations mathématiques qui s’avèrent utiles pour l’apprentissage en profondeur. (La mise à jour simultanée de toutes les facettes géométriques d’un objet en mouvement est un problème similaire au calcul simultané de toutes les sorties d’une couche de réseau neuronal donnée.) Néanmoins, le matériel n’a pas été conçu pour effectuer un apprentissage en profondeur aussi efficacement qu’un cerveau, qui peut piloter une voiture et en même temps tenir une conversation sur l’avenir des véhicules autonomes, tout en utilisant moins de watts qu’une ampoule électrique.

Leave a Comment

Your email address will not be published. Required fields are marked *