Des chercheurs du MIT ont développé un système qui pourrait apporter les réseaux neuronaux d'apprentissage profond à de nouveaux endroits — et beaucoup plus petits — tels que les minuscules puces informatiques des dispositifs médicaux portables, des appareils ménagers et des 250 milliards d'autres objets qui composent l'« Internet des objets » (IoT).

Le système, baptisé MCUNet, conçoit des réseaux neuronaux compacts offrant une vitesse et une précision sans précédent pour l'apprentissage profond dans les objets connectés, malgré des capacités de mémoire et de traitement limitées. Cette technologie pourrait faciliter le développement de l'écosystème IoT tout en économisant l'énergie et en améliorant la sécurité des données.

Ces travaux de recherche seront présentés lors de la conférence Neural Information Processing Systems du mois prochain. Le premier auteur est Ji Lin, doctorant au sein du laboratoire de Song Han, au département de génie électrique et d'informatique du MIT. Parmi les co-auteurs figurent Song Han et Yujun Lin du MIT, Wei-Ming Chen du MIT et de l'Université nationale de Taïwan, ainsi que John Cohn et Chuang Gan du laboratoire d'intelligence artificielle Watson du MIT et d'IBM.

L'Internet des objets

L'Internet des objets (IoT) est né au début des années 1980. Des étudiants de l'université Carnegie Mellon, dont Mike Kazar en 1978, ont connecté un distributeur automatique de Coca-Cola à Internet. Leur motivation était simple : la paresse. Ils voulaient pouvoir vérifier depuis leurs ordinateurs que le distributeur était approvisionné avant de quitter leur bureau pour faire des achats. C'était le premier appareil connecté à Internet au monde. « On a plus ou moins pris ça pour une blague », raconte Kazar, aujourd'hui ingénieur chez Microsoft. « Personne n'imaginait des milliards d'appareils connectés à Internet. »

Depuis ce distributeur Coca-Cola, les objets du quotidien se connectent de plus en plus grâce à l'essor de l'Internet des objets (IoT). Cela inclut tout, des moniteurs cardiaques portables aux réfrigérateurs intelligents qui vous avertissent lorsqu'il manque du lait. Les appareils IoT fonctionnent souvent avec des microcontrôleurs : de simples puces informatiques sans système d'exploitation, dotées d'une puissance de traitement minimale et d'une mémoire mille fois inférieure à celle d'un smartphone classique. De ce fait, les tâches de reconnaissance de formes, comme l'apprentissage profond, sont difficiles à exécuter localement sur ces appareils. Pour les analyses complexes, les données collectées par l'IoT sont souvent envoyées vers le cloud, ce qui les rend vulnérables au piratage.

« Comment intégrer directement des réseaux neuronaux dans ces petits appareils ? C'est un nouveau domaine de recherche qui suscite un vif intérêt », explique Han. « Des entreprises comme Google et ARM travaillent dans ce sens. ».

Avec MCUNet, l'équipe de Han a programmé deux composants essentiels à l'apprentissage profond à petite échelle : le fonctionnement des réseaux de neurones sur microcontrôleurs. L'un de ces composants est TinyEngine, un moteur d'inférence qui gère les ressources, à la manière d'un système d'exploitation. TinyEngine est optimisé pour exécuter une architecture de réseau de neurones spécifique, sélectionnée par l'autre composant de MCUNet : TinyNAS, un algorithme de recherche d'architecture neuronale.

Codage de l'algorithme du système

Concevoir un réseau de neurones profond pour microcontrôleurs n'est pas chose aisée. Les techniques de recherche d'architecture neuronale existantes partent d'un vaste ensemble de structures de réseau possibles, basées sur un modèle prédéfini, pour ensuite identifier progressivement celle qui offre une précision élevée et un faible coût. « Ces techniques fonctionnent très bien pour les GPU ou les smartphones », explique Lin. « Mais leur application directe aux microcontrôleurs, de taille réduite, s'avère complexe. »

Lin a donc développé TinyNAS, une méthode de recherche d'architecture neuronale qui crée des réseaux sur mesure. « Nous disposons de nombreux microcontrôleurs aux capacités énergétiques et mémoires différentes », explique Lin. « Nous avons donc développé l'algorithme [TinyNAS] afin d'optimiser l'espace de recherche pour chaque microcontrôleur. » Grâce à sa nature personnalisée, TinyNAS peut générer des réseaux neuronaux compacts offrant les meilleures performances possibles pour un microcontrôleur donné, sans paramètres superflus. « Nous fournissons ensuite le modèle final et efficace au microcontrôleur », conclut Lin.

Pour faire fonctionner ce minuscule réseau neuronal, un microcontrôleur a également besoin d'un moteur d'inférence peu performant. Un moteur d'inférence classique contient une certaine quantité de code inutile : des instructions pour des tâches qu'il exécute rarement. Ce code supplémentaire ne pose pas de problème pour un ordinateur portable ou un smartphone, mais il pourrait facilement saturer un microcontrôleur. « Il ne possède ni mémoire externe ni disque », explique Han. « Au total, il ne dispose que d'un mégaoctet de mémoire flash ; nous devons donc gérer cette ressource extrêmement réduite avec une extrême précaution. » C'est là qu'intervient TinyEngine.

Les chercheurs ont développé leur moteur d'inférence en collaboration avec TinyNAS. TinyEngine génère le code essentiel au fonctionnement du réseau neuronal personnalisé de TinyNAS. Tout code superflu est éliminé, ce qui réduit le temps de compilation. « Nous ne conservons que l'essentiel », explique Han. « Et comme nous avons conçu le réseau neuronal, nous savons précisément ce dont nous avons besoin. C'est tout l'avantage d'un code d'algorithme système. » Lors de tests menés par l'équipe TinyEngine, la taille du code binaire compilé était de 1,9 à 5 fois inférieure à celle des moteurs d'inférence pour microcontrôleurs comparables de Google et ARM. TinyEngine intègre également des innovations permettant de réduire le temps d'exécution, notamment la convolution de profondeur sur place, qui diminue de près de moitié la consommation mémoire maximale. Après avoir programmé TinyNAS et TinyEngine, l'équipe de Han a testé MCUNet.

Le premier défi de MCUNet était la classification d'images. Les chercheurs ont utilisé la base de données ImageNet pour entraîner le système avec des images étiquetées, puis pour tester sa capacité à classifier de nouvelles images. Sur un microcontrôleur commercial testé, MCUNet a classé avec succès 70,7 % des nouvelles images ; la combinaison réseau neuronal/moteur d'inférence la plus performante jusqu'alors n'atteignait que 54 % de précision. « Même une amélioration de 1 % est considérée comme significative », explique Lin. « Il s'agit donc d'un grand pas en avant pour l'optimisation des microcontrôleurs. »

L'équipe a obtenu des résultats similaires lors des tests ImageNet effectués sur trois autres microcontrôleurs. MCUNet a surpassé ses concurrents en termes de vitesse et de précision lors des tâches de « réveil » auditif et visuel, où l'utilisateur initie l'interaction avec l'ordinateur par des commandes vocales (par exemple : « Dis Siri ») ou simplement en entrant dans une pièce. Ces expériences soulignent l'adaptabilité de MCUNet à de nombreuses applications.

« Un potentiel énorme »
Les résultats prometteurs des tests donnent à Han l'espoir que cela devienne la nouvelle norme industrielle pour les microcontrôleurs. « Son potentiel est énorme », affirme-t-il.

Cette avancée « repousse les limites de la conception des réseaux neuronaux profonds, les étendant encore davantage au domaine de calcul des microcontrôleurs compacts et économes en énergie », explique Kurt Keutzer, informaticien à l'Université de Californie à Berkeley, qui n'a pas participé à ces travaux. Il ajoute que MCUNet pourrait « doter de capacités de vision par ordinateur intelligentes même les appareils de cuisine les plus simples, ou permettre le développement de capteurs de mouvement plus performants ».

MCUNet pourrait également renforcer la sécurité des objets connectés. « Un avantage majeur réside dans la préservation de la confidentialité », explique Han. « Les données n'ont pas besoin d'être transmises au cloud. ».

L'analyse locale des données réduit le risque de vol d'informations personnelles, notamment les données de santé. Han imagine des montres connectées dotées de MCUNet qui non seulement détectent la fréquence cardiaque, la pression artérielle et le taux d'oxygène des utilisateurs, mais analysent et contribuent également à la compréhension de ces informations. MCUNet pourrait aussi doter les objets connectés de capacités d'apprentissage profond, notamment dans les véhicules et les zones rurales disposant d'un accès internet limité.

De plus, la faible consommation d'énergie de MCUNet se traduit par une faible empreinte carbone. « Notre ambition est de créer un IoT vert », déclare Han, ajoutant que l'entraînement d'un grand réseau neuronal peut générer l'équivalent des émissions de carbone de cinq voitures sur toute leur durée de vie. MCUNet, fonctionnant sur un microcontrôleur, ne nécessiterait qu'une infime fraction de cette énergie. « Notre objectif ultime est de permettre le développement d'une IA compacte et performante, nécessitant moins de puissance de calcul, moins de personnel et moins de données », conclut Han.

Auteur : Daniel Ackerman, MIT