Grâce à un nouveau code de machine neuronale de bas niveau qu’ils ont spécifiquement développé, deux chercheurs de l’Université de Pennsylvanie ont conçu un réseau neuronal capable d’exécuter un programme, tout comme un ordinateur classique. Ils montrent que ce réseau artificiel peut ainsi accélérer sa vitesse de calcul, jouer au Pong ou même exécuter une autre intelligence artificielle.
Les réseaux neuronaux sont conçus pour imiter le fonctionnement du cerveau humain et sont capables de résoudre des problèmes courants. Ils sont constitués de plusieurs couches de neurones artificiels (des nœuds) connectés les uns aux autres ; chaque nœud est associé à un certain poids et une valeur seuil : si la sortie d’un nœud est supérieure au seuil, les données sont transmises à la couche suivante et ainsi de suite. Ces réseaux de neurones artificiels doivent être formés pour être de plus en plus performants.
Un réseau neuronal piloté par une intelligence artificielle doit ainsi être entraîné à effectuer la tâche pour laquelle il a été conçu. Typiquement, un réseau neuronal développé pour la classification d’images doit être entraîné à reconnaître et distinguer différents motifs à partir de milliers d’exemples : c’est l’apprentissage automatique (ou apprentissage machine). Les exemples soumis au réseau étant dans ce cas annotés, on parle d’apprentissage « supervisé ». Jason Kim et Dani Bassett, de l’Université de Pennsylvanie, proposent aujourd’hui une nouvelle approche, dans laquelle le réseau neuronal est entraîné à exécuter un code, comme un ordinateur ordinaire.
Un nouveau langage pour implémenter des circuits logiques
Une intelligence artificielle formée pour imiter les circuits logiques d’un ordinateur standard dans son réseau neuronal pourrait en théorie exécuter un code en son sein et ainsi accélérer certains calculs. « Cependant, l’absence d’un langage de programmation concret et de bas niveau pour les réseaux neuronaux nous empêche de tirer pleinement parti d’un cadre de calcul neuronal », soulignent les deux chercheurs dans la version préimprimée de leur article.
Jason Kim et Dani Bassett ont donc entrepris de développer un nouveau langage de programmation de manière à ajouter au réseau neuronal une implémentation entièrement distribuée de la virtualisation logicielle et des circuits logiques d’un ordinateur. « Nous comblons le fossé entre la façon dont nous conceptualisons et mettons en œuvre les ordinateurs neuronaux et les ordinateurs en silicium », expliquent-ils.
Leur langage repose sur le calcul par réservoir (reservoir computing) — un cadre de calcul dérivé de la théorie des réseaux de neurones récurrents (des réseaux de neurones présentant des connexions récurrentes). Les deux chercheurs ont commencé par calculer l’effet de chaque neurone pour créer un réseau neuronal très basique, capable d’effectuer des tâches simples, comme une addition. Ils ont ensuite relié plusieurs de ces réseaux afin qu’ils puissent effectuer des opérations plus complexes, reproduisant ainsi le comportement des portes logiques — les opérations les plus basiques que l’on peut réaliser sur un bit, mais qui combinées ensembles (ce que l’on appelle des circuits logiques) permettent d’effectuer des opérations beaucoup plus complexes.
Le réseau ainsi obtenu est donc capable de faire tout ce qu’un ordinateur classique peut faire. Les chercheurs l’ont notamment utilisé pour faire fonctionner un autre réseau neuronal virtuel et exécuter une version du jeu Pong.
Des réseaux encore plus rapides grâce à l’informatique neuromorphique
« En décomposant la représentation interne et la dynamique du réservoir en une base symbolique de ses entrées, nous définissons un code de machine neuronale de bas niveau que nous utilisons pour programmer le réservoir afin de résoudre des équations complexes et stocker des systèmes dynamiques chaotiques sous forme de mémoire vive », résument les deux experts. Ce réseau neuronal pourrait par ailleurs considérablement simplifier le fractionnement de tâches de calcul massives : celles-ci sont généralement réparties sur plusieurs processeurs pour augmenter la vitesse de calcul, mais cela requiert aussi beaucoup plus de puissance.
En outre, le neuromorphic computing (ou l’informatique neuromorphique) pourrait permettre à ces réseaux virtuels de fonctionner plus rapidement. Dans un ordinateur classique, le stockage des données (la mémoire) et le traitement (le processeur) sont séparés ; les données sont traitées de manière séquentielle et synchrone. En revanche, dans un ordinateur neuromorphique, conçu pour imiter au mieux le fonctionnement du cerveau humain, stockage et calculs s’effectuent au sein des neurones artificiels qui communiquent entre eux (un grand nombre d’informations sont traitées en parallèle, de manière asynchrone), ce qui réduit le nombre d’opérations qu’il doit effectuer. Par conséquent, un tel ordinateur apprend et s’adapte avec une faible latence, voire en temps réel.
Interrogé par le New Scientist, Francesco Martinuzzi, de l’Université de Leipzig, spécialiste en machine learning, confirme que les réseaux neuronaux exécutant le code tels que celui mis au point par Kim et Bassett pourraient tirer de meilleures performances des puces neuromorphiques, ajoutant que dans certains domaines spécifiques, ces ordinateurs pourraient largement surpasser les ordinateurs standards.
Mais pour pouvoir exploiter leur capacité de calcul, ces réseaux neuronaux devront d’abord être mis à l’échelle : si les deux chercheurs ont réussi à imiter ici le fonctionnement de quelques portes logiques, le microprocesseur d’un ordinateur classique comporte plusieurs milliards de transistors !