La recherche automatique d'architecture neuronale (Neural Architecture Search, NAS) est un ensemble de techniques visant à découvrir automatiquement de nouveaux modèles de réseaux de neurones artificiels. Les principales méthodes employées dans la littérature sont basées soit sur de l'apprentissage par renforcement, sur de la descente de gradient ou bien sur des algorithmes génétiques[1],[2]. Plusieurs méthodes NAS parviennent à obtenir des architectures qui atteignent ou surpassent les performances des modèles créés à la main[3],[4],[5]. La recherche automatique d'architecture neuronale se définit suivant trois axes:
l'espace de recherche, qui représente l'ensemble des architectures candidates ainsi que les opérations qui les composent;
la stratégie de recherche, qui guide la manière dont la recherche s'effectue;
le critère (ou méthode) d'évaluation, qui estime les performances des architectures candidates.
Généralement, une métrique importante à prendre en compte lors de l'évaluation d'une méthode NAS est le coût en ressources induit par la recherche d'architecture (search cost)[1],[2].
Les premières approches NAS ont tout d'abord fait appel à de l'apprentissage par renforcement[1],[2]. Elles appliquent le paradigme habituel de l'apprentissage par renforcement en considérant l'espace de recherche comme un environnement dans lequel un agent peut évoluer et en attribuant à ce dernier une récompense (reward) calculée en fonction de la méthode d'évaluation des performances de l'architecture découverte. Ces techniques présentent le désavantage d'être très consommatrices en ressources avec souvent des milliers d'heures-GPU nécessaires pour obtenir une architecture suffisamment performante[6],[7].
Descente de gradient
Certaines méthodes effectuent une recherche d'architecture neuronale différentiable en optimisant un certain ensemble de paramètres via une descente de gradient stochastique[5],[3]. Ces paramètres (aussi appelés poids architecturaux et notés α) représentent les opérations effectuées par l'architecture candidate. Une fois la phase de recherche achevée, le modèle final est obtenu en échantillonnant les opérations constituant l'architecture à partir des poids α (qui sont des variables continues). Par exemple, une méthode d'échantillonnage peut-être de transformer α en une distribution de probabilités à l'aide d'une fonction softmax ou sigmoïde[3],[8]. De plus, pour économiser en ressources de calcul et en temps, plusieurs méthodes NAS différentiables choissisent d'implémenter des mécanismes de partage des paramètres (weight sharing)[8],[5],[3]. De cette façon, l'espace de recherche peut être partitionné en plusieurs cellules qui représentent des composantes élémentaires (building blocks) à partir desquelles il est possible de construire une architecture complète en les assemblant bout-à-bout[8],[3]. L'avantage principal procuré par un tel mécanisme est de n'avoir pas à rechercher l'intégralité de l'architecture mais seulement quelques parties. Ainsi, en comparaison des autres types de techniques NAS, les méthodes différentiables sont peu énergivores, avec seulement quelques dizaines d'heures-GPU nécessaires[9],[8],[3].
Algorithmes génétiques et méthodes évolutionnaires
Le principe darwiniste des algorithmes génétiques peut être appliqué à la recherche automatique d'architecture neuronale[10],[11]. Dans ce cas-là, le plus souvent, on considère les architectures candidates comme un ensemble d'individus capables de se reproduire entre eux en mélangeant leurs «gènes» (c'est-à-dire, les opérations dont elles sont composées) de manière à produire de nouvelles architectures. Ainsi, une population de départ est progressivement affinée en faisant se reproduire entre eux les meilleurs individus, sélectionnés selon la méthode d'évaluation disponible. Tout comme les approches à base d'apprentissage par renforcement, ces méthodes NAS sont coûteuses en ressources de calcul (surtout en heures-GPU).
Applications
Les procédés NAS peuvent être appliqués à une très grande variété de cas d'usage, tels que:
Il est également possible de rechercher des architectures qui vont être utilisées dans un contexte précis, tel que l'inférence sur des appareils mobiles et/ou peu performants (contraintes matérielles)[12].
Notes et références
1234Thomas Elsken, Jan Hendrik Metzen et Frank Hutter, «Neural architecture search: a survey», The Journal of Machine Learning Research, vol.20, no1, , p.1997–2017 (ISSN1532-4435, DOI10.5555/3322706.3361996, lire en ligne, consulté le )
1234Pengzhen Ren, Yun Xiao, Xiaojun Chang et Po-yao Huang, «A Comprehensive Survey of Neural Architecture Search: Challenges and Solutions», ACM Computing Surveys, vol.54, no4, , p.76:1–76:34 (ISSN0360-0300, DOI10.1145/3447582, lire en ligne, consulté le )
↑(en) Mingxing Tan et Quoc Le, «EfficientNetV2: Smaller Models and Faster Training», International Conference on Machine Learning, PMLR, , p.10096–10106 (lire en ligne, consulté le )
123Dai, Xiaoliang Wan, Alvin Zhang, Peizhao Wu, Bichen He, Zijian Wei, Zhen Chen, Kan Tian, Yuandong Yu, Matthew Vajda, Peter Gonzalez, Joseph E., FBNetV3: Joint Architecture-Recipe Search using Predictor Pretraining, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, (OCLC1228411601, lire en ligne)
↑(en) Hieu Pham, Melody Guan, Barret Zoph et Quoc Le, «Efficient Neural Architecture Search via Parameters Sharing», International Conference on Machine Learning, PMLR, , p.4095–4104 (lire en ligne, consulté le )
1234(en) Xiangxiang Chu, Tianbao Zhou, Bo Zhang et Jixiang Li, «Fair DARTS: Eliminating Unfair Advantages in Differentiable Architecture Search», Computer Vision – ECCV 2020, Springer International Publishing, lecture Notes in Computer Science, , p.465–480 (ISBN978-3-030-58555-6, DOI10.1007/978-3-030-58555-6_28, lire en ligne, consulté le )
↑Alvin Wan, Xiaoliang Dai, Peizhao Zhang et Zijian He, «FBNetV2: Differentiable Neural Architecture Search for Spatial and Channel Dimensions», Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, , p.12965–12974 (lire en ligne, consulté le )
↑(en) Esteban Real, Sherry Moore, Andrew Selle et Saurabh Saxena, «Large-Scale Evolution of Image Classifiers», International Conference on Machine Learning, PMLR, , p.2902–2911 (lire en ligne, consulté le )
↑Chenxi Liu, Barret Zoph, Maxim Neumann et Jonathon Shlens, «Progressive Neural Architecture Search», Proceedings of the European Conference on Computer Vision, , p.19–34 (lire en ligne, consulté le )