Recherche automatique d'architecture neuronale
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 procédés NAS peuvent être employés pour rechercher une variété de types de réseaux de neurones (réseaux convolutifs, réseaux récurrents ou bien autoencodeurs)[1],[2].
Types d'approches
[modifier | modifier le code]Apprentissage par renforcement
[modifier | modifier le code]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
[modifier | modifier le code]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
[modifier | modifier le code]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
[modifier | modifier le code]Les procédés NAS peuvent être appliqués à une très grande variété de cas d'usage, tels que :
- la classification d'images ;
- la détection d'objets ;
- le traitement du langage naturel ;
- le traitement des séries temporelles ;
- la génération d'images, de vidéos ou de sons.
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
[modifier | modifier le code]- Thomas Elsken, Jan Hendrik Metzen et Frank Hutter, « Neural architecture search: a survey », The Journal of Machine Learning Research, vol. 20, no 1, , p. 1997–2017 (ISSN 1532-4435, DOI 10.5555/3322706.3361996, lire en ligne, consulté le )
- Pengzhen Ren, Yun Xiao, Xiaojun Chang et Po-yao Huang, « A Comprehensive Survey of Neural Architecture Search: Challenges and Solutions », ACM Computing Surveys, vol. 54, no 4, , p. 76:1–76:34 (ISSN 0360-0300, DOI 10.1145/3447582, lire en ligne, consulté le )
- (en) Hanxiao Liu, Karen Simonyan et Yiming Yang, « DARTS: Differentiable Architecture Search », International Conference on Learning Representations, (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 )
- Dai, 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, (OCLC 1228411601, 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 )
- (en) Barret Zoph et Quoc Le, « Neural Architecture Search with Reinforcement Learning », International Conference on Learning Representations, (lire en ligne, consulté le )
- (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 (ISBN 978-3-030-58555-6, DOI 10.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 )
- Han Cai, Ligeng Zhu et Song Han, « ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware », International Conference on Learning Representations, (lire en ligne, consulté le )