Neural Architecture Search (NAS)
Neural Architecture Search, communément abrégé en NAS, est un sous-domaine de l’apprentissage automatique (Machine Learning) qui vise à automatiser le processus de conception de l’architecture des réseaux de neurones artificiels. Plutôt que de reposer sur l’expertise humaine, l’intuition et des essais empiriques souvent laborieux, le NAS utilise des algorithmes pour explorer systématiquement un ensemble d’architectures possibles et identifier celle qui offre les meilleures performances pour une tâche et un ensemble de données spécifiques.
Les concepts fondamentaux du NAS reposent sur la décomposition du problème de conception d’architecture en trois composantes principales. Premièrement, l’espace de recherche (Search Space) définit l’ensemble de toutes les architectures neuronales candidates qui peuvent être conçues et évaluées. Cet espace peut varier considérablement en taille et en complexité, allant de la sélection de couches prédéfinies à la conception de structures de connexion complexes au niveau cellulaire ou global. Deuxièmement, la stratégie de recherche (Search Strategy) spécifie l’algorithme utilisé pour explorer l’espace de recherche. Diverses stratégies existent, incluant l’apprentissage par renforcement, les algorithmes évolutionnistes, l’optimisation bayésienne, la recherche aléatoire, ou des méthodes basées sur le gradient. La stratégie détermine comment de nouvelles architectures sont générées et comment l’exploration de l’espace est guidée. Troisièmement, la stratégie d’estimation des performances (Performance Estimation Strategy) concerne la méthode employée pour évaluer la qualité d’une architecture candidate. Étant donné que l’entraînement complet de chaque architecture candidate est souvent prohibitivement coûteux en termes de temps et de ressources de calcul, des techniques d’estimation plus rapides sont nécessaires, telles que l’entraînement sur des données réduites, l’entraînement partiel, l’utilisation de modèles proxy (surrogates), ou des techniques de partage de poids (weight sharing) où plusieurs architectures partagent des poids pour accélérer l’évaluation.
L’importance du NAS réside dans sa capacité à dépasser les limitations de la conception manuelle d’architectures. Les réseaux de neurones profonds modernes peuvent avoir des millions, voire des milliards de paramètres, rendant leur conception manuelle extrêmement complexe, chronophage et dépendante de l’expertise humaine, qui peut être sujette à des biais ou limitée dans sa capacité à explorer des configurations radicalement nouvelles. Le NAS offre une approche plus systématique et potentiellement plus efficace pour découvrir des architectures hautement performantes, parfois non intuitives, qui peuvent surpasser celles conçues par des experts humains. Son impact est significatif dans des domaines où les performances de pointe sont cruciales, comme la vision par ordinateur, le traitement du langage naturel et la reconnaissance vocale. Il permet également de démocratiser la conception de modèles performants et de les adapter spécifiquement à des contraintes matérielles (par exemple, pour des appareils mobiles avec une puissance de calcul limitée).
Les applications pratiques du NAS sont nombreuses. En vision par ordinateur, des architectures découvertes par NAS, telles que NASNet, AmoebaNet, et la famille EfficientNet, ont atteint des performances de pointe sur des benchmarks comme ImageNet. Ces architectures sont utilisées dans la classification d’images, la détection d’objets et la segmentation sémantique. Dans le traitement du langage naturel, le NAS est utilisé pour concevoir des architectures de transformeurs ou de réseaux récurrents optimisées pour des tâches comme la traduction automatique ou l’analyse de sentiments. Une application particulièrement pertinente est la conception d’architectures optimisées pour des plateformes spécifiques, comme les smartphones ou les systèmes embarqués, où des contraintes strictes de latence, de consommation d’énergie et de taille mémoire existent (Hardware-aware NAS). Par exemple, Google a utilisé le NAS pour développer des modèles efficaces pour ses téléphones Pixel.
Le terme NAS englobe différentes nuances et variations. Les premières approches NAS étaient extrêmement coûteuses en calcul. Des développements ultérieurs ont introduit des techniques plus efficaces. Le NAS différentiable (Differentiable NAS, DARTS en est un exemple notable) relaxe l’espace de recherche discret pour le rendre continu, permettant l’utilisation de méthodes basées sur le gradient pour rechercher l’architecture, ce qui réduit considérablement le coût de la recherche. Le NAS « One-Shot » entraîne un « super-réseau » unique qui contient toutes les architectures candidates de l’espace de recherche comme sous-graphes. L’évaluation d’une architecture consiste alors à extraire et évaluer le sous-graphe correspondant, évitant ainsi des entraînements indépendants coûteux. Le NAS multi-objectif (Multi-objective NAS) vise à optimiser simultanément plusieurs critères, tels que la précision et la latence, ou la précision et la taille du modèle. L’espace de recherche peut également être structuré différemment, par exemple en recherchant des « cellules » ou « blocs » réutilisables qui sont ensuite empilés pour former le réseau final (cell-based search), ou en recherchant la structure globale du réseau (macro search).
Plusieurs concepts sont étroitement liés au NAS. L’AutoML (Automated Machine Learning) est un domaine plus large qui vise à automatiser l’ensemble du pipeline de machine learning, incluant la préparation des données, la sélection des caractéristiques, la sélection du modèle, l’optimisation des hyperparamètres et la recherche d’architecture. Le NAS est donc une composante clé de l’AutoML. L’Optimisation des Hyperparamètres (Hyperparameter Optimization, HPO) se concentre sur le réglage des paramètres qui ne sont pas appris pendant l’entraînement (par exemple, le taux d’apprentissage, la taille des lots), tandis que le NAS se concentre sur la structure même du réseau. Bien que distincts, NAS et HPO sont souvent utilisés conjointement. Le Meta-Learning, ou « apprendre à apprendre », est également lié, car le NAS peut être vu comme un processus d’apprentissage qui apprend à générer de bonnes architectures. Des termes comme « Architecture Optimization » ou « Automated Network Design » peuvent être considérés comme des synonymes. À l’inverse, les « architectures conçues manuellement » (hand-crafted architectures) représentent l’approche traditionnelle que le NAS cherche à automatiser.
L’origine du NAS peut être retracée aux idées d’utilisation d’algorithmes évolutionnistes pour faire évoluer des réseaux de neurones dans les années 1980 et 1990. Cependant, le domaine a pris son essor moderne vers 2016-2017 avec des travaux pionniers, notamment ceux de Barret Zoph et Quoc Le, qui ont utilisé l’apprentissage par renforcement pour générer des architectures compétitives sur des tâches de vision par ordinateur et de traitement du langage. Ces premières approches, bien que réussies, nécessitaient des ressources de calcul considérables (des milliers de jours-GPU). L’évolution ultérieure du domaine s’est largement concentrée sur la réduction de ce coût computationnel, menant au développement des méthodes différentiables, one-shot, et basées sur des proxies, rendant le NAS plus accessible et pratique. La tendance actuelle inclut également une plus grande considération des contraintes matérielles et la recherche d’architectures plus robustes et généralisables.
Les avantages du NAS incluent le potentiel de découvrir des architectures neuronales surpassant celles conçues par l’homme, la réduction du temps et de l’effort humain nécessaires à la conception, la possibilité de trouver des architectures non intuitives et novatrices, et la capacité à optimiser les modèles pour des objectifs spécifiques autres que la simple précision (par exemple, efficacité, latence). Cela ouvre la voie à des modèles plus performants et mieux adaptés à des applications spécifiques.
Cependant, le NAS présente aussi des inconvénients et des défis significatifs. Le coût computationnel, bien que réduit par les méthodes récentes, reste souvent élevé, limitant son accessibilité. La conception de l’espace de recherche est cruciale et influence fortement les résultats, mais elle repose encore largement sur l’expertise humaine. Il existe des problèmes de reproductibilité pour certaines méthodes NAS, et le processus de recherche peut parfois sur-optimiser pour l’ensemble de validation utilisé pendant la recherche, conduisant à des performances décevantes sur des données de test véritablement nouvelles. De plus, l’évaluation rapide des performances peut être imprécise, et il peut y avoir un écart entre les performances estimées pendant la recherche et les performances réelles de l’architecture finale après un entraînement complet. L’impact environnemental lié à la consommation énergétique élevée de certaines méthodes NAS est également une préoccupation croissante.
En résumé, le Neural Architecture Search est une approche puissante et en pleine évolution pour automatiser la conception des réseaux de neurones. En utilisant des algorithmes pour explorer de vastes espaces d’architectures potentielles, le NAS a permis de repousser les limites de performance dans divers domaines de l’intelligence artificielle et d’adapter les modèles à des contraintes spécifiques. Malgré ses avantages, des défis importants subsistent, notamment en termes de coût computationnel, de conception de l’espace de recherche et de robustesse des résultats, faisant du NAS un domaine de recherche actif et dynamique.