Passer au contenu principal
S’abonner
Fermer
Naviguer
Filtrer par sujet
Réglages
Malgré leur nom, les réseaux de neurones n’ont qu’un lien lointain avec le genre de choses que l’on trouve dans un cerveau. Bien que leur organisation et la façon dont ils transfèrent les données à travers les couches de traitement puissent partager certaines similitudes grossières avec les réseaux de neurones réels, les données et les calculs qui y sont effectués sembleraient très familiers à un processeur standard.
Mais les réseaux de neurones ne sont pas la seule façon dont les gens ont essayé de tirer des leçons du système nerveux. Il existe une discipline distincte appelée informatique neuromorphique qui est basée sur l’approximation du comportement de neurones individuels dans le matériel. Dans le matériel neuromorphique, les calculs sont effectués par de nombreuses petites unités qui communiquent entre elles via des rafales d’activité appelées pointes et ajustent leur comportement en fonction des pointes qu’elles reçoivent des autres.
Jeudi, Intel a publié la dernière itération de son matériel neuromorphique, appelée Loihi. La nouvelle version est livrée avec le genre de choses que vous attendez d’Intel : un meilleur processeur et quelques améliorations informatiques de base. Mais il s’accompagne également de modifications matérielles fondamentales qui lui permettront d’exécuter des classes d’algorithmes entièrement nouvelles. Et bien que Loihi reste pour l’instant un produit axé sur la recherche, Intel publie également un compilateur qui, espère-t-il, conduira à une adoption plus large.
Pour donner un sens à Loihi et aux nouveautés de cette version, revenons en arrière et commençons par examiner un peu la neurobiologie, puis développons à partir de là.
La base du système nerveux est le type de cellule appelé neurone. Tous les neurones partagent quelques caractéristiques fonctionnelles communes. À une extrémité de la cellule se trouvent des structures appelées dendrites, que vous pouvez considérer comme des récepteurs. C’est là que le neurone reçoit des entrées d’autres cellules. Les cellules nerveuses ont également un axone, qui agit comme un émetteur, se connectant avec d’autres cellules pour transmettre des signaux.
Les signaux prennent la forme de ce qu’on appelle des “pointes”, qui sont de brefs changements de tension à travers la membrane cellulaire du neurone. Les pointes voyagent le long des axones jusqu’à ce qu’elles atteignent les jonctions avec d’autres cellules (appelées synapses), à quel point elles sont converties en un signal chimique qui se déplace vers la dendrite voisine. Ce signal chimique ouvre des canaux qui permettent aux ions de circuler dans la cellule, déclenchant un nouveau pic sur la cellule réceptrice.
La cellule réceptrice intègre une variété d’informations – le nombre de pics qu’elle a vus, si des neurones signalent qu’elle devrait être silencieuse, son activité dans le passé, etc. – et les utilise pour déterminer son propre état d’activité. Une fois qu’un seuil est franchi, il déclenchera un pic dans ses propres axones et déclenchera potentiellement une activité dans d’autres cellules.
En règle générale, cela se traduit par des pics d’activité sporadiques et espacés de manière aléatoire lorsque le neurone ne reçoit pas beaucoup d’entrées. Une fois qu’il commence à recevoir des signaux, cependant, il passera à un état actif et déclenchera un tas de pointes en succession rapide.
Comment ce processus encode-t-il et manipule-t-il les informations ? C’est une question intéressante et importante, à laquelle nous commençons tout juste à répondre.
L’une des façons dont nous avons tenté d’y répondre était via ce qu’on a appelé la neurobiologie théorique (ou neurobiologie computationnelle). Cela a impliqué des tentatives pour construire des modèles mathématiques reflétant le comportement des systèmes nerveux et des neurones dans l’espoir que cela nous permettrait d’identifier certains principes sous-jacents. Les réseaux de neurones, axés sur les principes d’organisation du système nerveux, ont été l’un des efforts issus de ce domaine. Les réseaux de neurones à pointes, qui tentent de se développer à partir du comportement de neurones individuels, en sont une autre.
Les réseaux de neurones à pointes peuvent être implémentés dans des logiciels sur des processeurs traditionnels. Mais il est également possible de les implémenter via du matériel, comme le fait Intel avec Loihi. Le résultat est un processeur très différent de tout ce que vous connaissez probablement.
La puce Loihi de la génération précédente contient 128 cœurs individuels connectés par un réseau de communication. Chacun de ces cœurs possède un grand nombre de “neurones” individuels ou d’unités d’exécution. Chacun de ces neurones peut recevoir une entrée sous forme de pointes de n’importe quel autre neurone – un voisin dans le même noyau, une unité dans un noyau différent sur la même puce ou d’une autre puce entièrement. Le neurone intègre les pointes qu’il reçoit au fil du temps et, en fonction du comportement avec lequel il est programmé, l’utilise pour déterminer quand envoyer ses propres pointes aux neurones auxquels il est connecté.
Toute la signalisation de pointe se produit de manière asynchrone. À des intervalles de temps définis, les cœurs x86 intégrés sur la même puce forcent une synchronisation. À ce moment-là, le neurone refait le poids de ses différentes connexions, essentiellement l’attention à accorder à tous les neurones individuels qui lui envoient des signaux.
En termes de neurone réel, une partie de l’unité d’exécution sur la puce agit comme une dendrite, traitant les signaux entrants du réseau de communication en se basant en partie sur le poids dérivé du comportement passé. Une formule mathématique a ensuite été utilisée pour déterminer quand l’activité avait franchi un seuil critique et pour déclencher ses propres pics lorsqu’elle le faisait. L'”axone” de l’unité d’exécution recherche alors avec quelles autres unités d’exécution il communique, et il envoie un pic à chacune.
Dans l’itération précédente de Loihi, un pic transportait simplement une seule information. Un neurone ne s’enregistre que lorsqu’il en reçoit un.
Contrairement à un processeur normal, il n’y a pas de RAM externe. Au lieu de cela, chaque neurone dispose d’un petit cache de mémoire dédié à son utilisation. Cela inclut les poids qu’il attribue aux entrées de différents neurones, un cache de l’activité récente et une liste de tous les autres neurones auxquels les pointes sont envoyées.
L’une des autres grandes différences entre les puces neuromorphiques et les processeurs traditionnels est l’efficacité énergétique, où les puces neuromorphiques arrivent bien en tête. IBM, qui a introduit sa puce TrueNorth en 2014, a pu en tirer un travail utile même s’il était cadencé à un kilohertz tranquille, et il a utilisé moins de 0,0001 % de la puissance qui serait nécessaire pour émuler un réseau de neurones à pointes sur les processeurs traditionnels. Mike Davies, directeur du Neuromorphic Computing Lab d’Intel, a déclaré que Loihi peut battre les processeurs traditionnels par un facteur de 2 000 sur certaines charges de travail spécifiques. “Nous constatons régulièrement 100 fois [less energy] pour SLAM et d’autres charges de travail robotiques », a-t-il ajouté.