Les chercheurs du MIT ont développé un algorithme efficace qui pourrait fournir une solution « bouton-poussoir » pour concevoir automatiquement des réseaux de neurones rapides sur du matériel spécifique. Crédit :Chelsea Turner, MIT
Un nouveau domaine de l'intelligence artificielle consiste à utiliser des algorithmes pour concevoir automatiquement des systèmes d'apprentissage automatique appelés réseaux de neurones, qui sont plus précis et efficaces que ceux développés par des ingénieurs humains. Mais cette technique dite de recherche d'architecture neuronale (NAS) est coûteuse en temps de calcul.
L'un des algorithmes NAS de pointe récemment développés par Google a pris 48, 000 heures de travail par une escouade d'unités de traitement graphique (GPU) pour produire un seul réseau de neurones convolutifs, utilisé pour les tâches de classification et d'identification d'images. Google a les moyens de faire tourner des centaines de GPU et autres circuits spécialisés en parallèle, mais c'est hors de portée pour beaucoup d'autres.
Dans un article présenté à la Conférence internationale sur les représentations de l'apprentissage en mai, Les chercheurs du MIT décrivent un algorithme NAS qui peut apprendre directement les réseaux de neurones convolutifs (CNN) spécialisés pour les plates-formes matérielles cibles, lorsqu'ils sont exécutés sur un ensemble de données d'images massives, en seulement 200 heures GPU, ce qui pourrait permettre une utilisation beaucoup plus large de ces types d'algorithmes.
Les chercheurs et les entreprises à court de ressources pourraient bénéficier de l'algorithme permettant d'économiser du temps et de l'argent, disent les chercheurs. L'objectif général est « de démocratiser l'IA, " dit le co-auteur Song Han, professeur adjoint de génie électrique et d'informatique et chercheur aux laboratoires de technologie des microsystèmes du MIT. « Nous voulons permettre aux experts en IA et aux non-experts de concevoir efficacement des architectures de réseau neuronal avec une solution à bouton-poussoir qui s'exécute rapidement sur un matériel spécifique. »
Han ajoute que de tels algorithmes NAS ne remplaceront jamais les ingénieurs humains. « L'objectif est de se décharger du travail répétitif et fastidieux qui accompagne la conception et le raffinement des architectures de réseaux de neurones, " dit Han, qui est rejoint sur le papier par deux chercheurs de son groupe, Han Cai et Ligeng Zhu.
Binarisation et élagage "au niveau du chemin"
Dans leur travail, les chercheurs ont développé des moyens de supprimer les composants de conception de réseau neuronal inutiles, pour réduire les temps de calcul et n'utiliser qu'une fraction de la mémoire matérielle pour exécuter un algorithme NAS. Une innovation supplémentaire garantit que chaque CNN généré fonctionne plus efficacement sur des plates-formes matérielles spécifiques :processeurs, GPU, et les appareils mobiles — que ceux conçus par les approches traditionnelles. Dans les essais, les CNN des chercheurs étaient 1,8 fois plus rapides mesurés sur un téléphone mobile que les modèles traditionnels de référence avec une précision similaire.
L'architecture d'un CNN est constituée de couches de calcul avec des paramètres ajustables, appelés "filtres, " et les connexions possibles entre ces filtres. Les filtres traitent les pixels de l'image dans des grilles de carrés, telles que 3x3, 5x5, ou 7x7—avec chaque filtre couvrant un carré. Les filtres se déplacent essentiellement sur l'image et combinent toutes les couleurs de leur grille de pixels couverte en un seul pixel. Différentes couches peuvent avoir des filtres de tailles différentes, et connectez-vous pour partager des données de différentes manières. La sortie est une image condensée - à partir des informations combinées de tous les filtres - qui peut être plus facilement analysée par un ordinateur.
Parce que le nombre d'architectures possibles parmi lesquelles choisir - appelé "espace de recherche" - est si grand, l'application du NAS pour créer un réseau de neurones sur des ensembles de données d'images massifs est prohibitive en termes de calcul. Les ingénieurs exécutent généralement le NAS sur des ensembles de données proxy plus petits et transfèrent leurs architectures CNN apprises vers la tâche cible. Cette méthode de généralisation réduit la précision du modèle, toutefois. De plus, la même architecture de sortie est également appliquée à toutes les plates-formes matérielles, ce qui entraîne des problèmes d'efficacité.
Les chercheurs ont formé et testé leur nouvel algorithme NAS sur une tâche de classification d'images dans l'ensemble de données ImageNet, qui contient des millions d'images dans mille classes. Ils ont d'abord créé un espace de recherche qui contient tous les « chemins » candidats possibles de CNN, c'est-à-dire la manière dont les couches et les filtres se connectent pour traiter les données. Cela laisse le champ libre à l'algorithme NAS pour trouver une architecture optimale.
Cela signifie généralement que tous les chemins possibles doivent être stockés en mémoire, qui dépasserait les limites de la mémoire GPU. Pour remédier à ce, les chercheurs exploitent une technique appelée "binarisation au niveau du chemin, " qui ne stocke qu'un seul chemin échantillonné à la fois et économise un ordre de grandeur en consommation mémoire. Ils combinent cette binarisation avec "l'élagage au niveau du chemin, " une technique qui apprend traditionnellement quels "neurones" dans un réseau de neurones peuvent être supprimés sans affecter la sortie. Au lieu de jeter les neurones, cependant, l'algorithme NAS des chercheurs élague des chemins entiers, qui change complètement l'architecture du réseau de neurones.
Dans la formation, tous les chemins reçoivent initialement la même probabilité de sélection. L'algorithme trace ensuite les chemins - en n'enregistrant qu'un seul à la fois - pour noter la précision et la perte (une pénalité numérique attribuée pour les prédictions incorrectes) de leurs sorties. Il ajuste ensuite les probabilités des chemins pour optimiser à la fois la précision et l'efficacité. À la fin, l'algorithme supprime tous les chemins à faible probabilité et ne conserve que le chemin avec la probabilité la plus élevée, qui est l'architecture CNN finale.
Connaissant le matériel
Une autre innovation clé a été de rendre l'algorithme NAS « sensible au matériel, " Han dit, ce qui signifie qu'il utilise la latence sur chaque plate-forme matérielle comme signal de retour pour optimiser l'architecture. Pour mesurer cette latence sur les appareils mobiles, par exemple, les grandes entreprises telles que Google emploieront une « ferme » d'appareils mobiles, ce qui est très cher. Les chercheurs ont plutôt construit un modèle qui prédit la latence en utilisant un seul téléphone mobile.
Pour chaque couche choisie du réseau, l'algorithme échantillonne l'architecture sur ce modèle de prédiction de latence. Il utilise ensuite ces informations pour concevoir une architecture qui s'exécute le plus rapidement possible, tout en obtenant une grande précision. Dans les expériences, le CNN des chercheurs a fonctionné presque deux fois plus vite qu'un modèle de référence sur les appareils mobiles.
Un résultat intéressant, Han dit, était que leur algorithme NAS concevait des architectures CNN qui ont longtemps été rejetées comme étant trop inefficaces, mais, dans les tests des chercheurs, ils ont en fait été optimisés pour certains matériels. Par exemple, les ingénieurs ont essentiellement cessé d'utiliser des filtres 7x7, parce qu'ils sont plus coûteux en calcul que plusieurs, filtres plus petits. Encore, l'algorithme NAS des chercheurs a découvert que les architectures avec certaines couches de filtres 7x7 fonctionnaient de manière optimale sur les GPU. En effet, les GPU ont une parallélisation élevée, ce qui signifie qu'ils effectuent de nombreux calculs simultanément, et peuvent donc traiter un seul grand filtre à la fois plus efficacement que de traiter plusieurs petits filtres un par un.
"Cela va à l'encontre de la pensée humaine précédente, " dit Han. " Plus l'espace de recherche est grand, les choses les plus inconnues que vous pouvez trouver. Vous ne savez pas si quelque chose sera meilleur que l'expérience humaine passée. Laissez l'IA le découvrir."