Recherche d'architecture neuronale (NAS)
Découvrez comment la recherche d'architecture neuronale (NAS) automatise la conception de réseaux neuronaux pour des performances optimisées dans la détection d'objets, l'IA, et plus encore.
La recherche d'architecture neuronale (NAS) est une technique révolutionnaire dans le domaine de l'
apprentissage automatique automatisé (AutoML)
qui automatise la conception de réseaux neuronaux artificiels. Traditionnellement, la conception d'architectures d'apprentissage profond
hautement performantes nécessitait une grande
expertise humaine, de l'intuition et de nombreux essais et erreurs. La NAS remplace ce processus manuel par des stratégies de recherche algorithmiques
qui explorent un large éventail de topologies de réseaux possibles afin de découvrir la structure optimale pour une tâche spécifique. En
testant systématiquement des combinaisons de couches et d'opérations, la NAS peut identifier des architectures qui surpassent les
modèles conçus par l'homme en termes de précision, d'efficacité ou de
vitesse.
Composantes essentielles des SNA
Le processus de découverte d'une nouvelle architecture implique généralement trois dimensions fondamentales qui interagissent pour trouver
le meilleur réseau neuronal (NN):
-
Espace de recherche: il définit l'ensemble de toutes les architectures possibles que l'algorithme peut explorer. Il agit
comme une bibliothèque de blocs de construction, tels que des
filtres de convolution, des couches de regroupement et des
fonctions d'activation. Un espace de recherche bien défini
limite la complexité afin de garantir que la recherche est réalisable sur le plan informatique.
-
Stratégie de recherche: au lieu de tester toutes les possibilités (force brute), le NAS utilise des
algorithmes intelligents pour naviguer dans l'espace de recherche. Les approches courantes comprennent l'
apprentissage par renforcement et les
algorithmes évolutionnaires, qui apprennent à partir des
itérations passées pour proposer de meilleurs candidats.
-
Stratégie d'estimation des performances: former chaque réseau candidat à partir de zéro est extrêmement
lent. Pour accélérer ce processus, le NAS utilise des techniques d'estimation, telles que la formation sur un nombre réduit d'
époches ou l'utilisation d'ensembles de données proxy, afin de classer rapidement le
potentiel d'une architecture candidate.
Applications concrètes
Le NAS est devenu indispensable dans les secteurs où les contraintes matérielles ou les exigences de performance sont strictes.
-
Edge Computing efficace: le déploiement de l'IA sur les appareils mobiles nécessite des modèles à la fois légers
et rapides. Le NAS est largement utilisé pour découvrir des architectures telles que
MobileNetV3 qui minimisent la
latence d'inférence tout en conservant une grande
précision. Cela est essentiel pour les applications d'IA en périphérie, telles que
l'analyse vidéo en temps réel sur des caméras intelligentes ou des drones.
-
Imagerie médicale: dans le
domaine de l'analyse d'images médicales, la précision est
primordiale. Le NAS peut adapter les réseaux afin de detect des anomalies detect dans les radiographies ou les IRM, trouvant souvent de nouvelles voies d'extraction de caractéristiques
que les ingénieurs humains pourraient négliger. Cela permet d'obtenir des outils plus fiables pour identifier des
pathologies telles que les tumeurs cérébrales ou les fractures.
NAS vs concepts connexes
Pour comprendre le rôle spécifique du NAS, il est utile de le distinguer d'autres techniques d'optimisation similaires :
-
NAS vs. réglage des hyperparamètres: bien que les deux impliquent une optimisation, le
réglage des hyperparamètres se concentre sur l'ajustement des
paramètres de configuration (tels que le taux d'apprentissage ou la
taille des lots) pour une architecture fixe. En
revanche, le NAS modifie la structure fondamentale du modèle lui-même, comme le nombre de couches ou la manière dont les neurones sont
connectés.
-
NAS vs apprentissage par transfert:
L'apprentissage par transfert utilise un modèle existant
pré-entraîné et adapte ses poids à une nouvelle tâche. Le NAS crée l'architecture du modèle à partir de zéro (ou recherche
une meilleure structure de base) avant le début de l'entraînement.
Utilisation de modèles dérivés du NAS
Bien que l'exécution d'une recherche NAS complète nécessite d'importantes
ressourcesGPU , les développeurs peuvent facilement utiliser des modèles qui
ont été créés via NAS. Par exemple, l'
architecture YOLO a été découverte en utilisant ces principes de recherche
afin d'optimiser les tâches de détection d'objets.
Python suivant montre comment charger et utiliser un modèle NAS pré-recherché à l'aide de la fonction
ultralytics l'emballage :
from ultralytics import NAS
# Load a pre-trained YOLO-NAS model (architecture found via NAS)
# 'yolo_nas_s.pt' refers to the small version of the model
model = NAS("yolo_nas_s.pt")
# Run inference on an image to detect objects
# This utilizes the optimized architecture for fast detection
results = model("https://ultralytics.com/images/bus.jpg")
# Print the top detected class
print(f"Detected: {results[0].names[int(results[0].boxes.cls[0])]}")
Pour ceux qui souhaitent former des modèles de pointe sans la complexité du NAS, l'
Ultralytics offre une architecture hautement optimisée
prête à l'emploi, intégrant les dernières avancées en matière de
recherche en vision par ordinateur (CV).