


Brisant les goulots d'étranglement du NAS, la nouvelle méthode AIO-P prédit les performances de l'architecture entre les tâches
L'Institut de recherche Huawei HiSilicon Canada et l'Université de l'Alberta ont lancé conjointement un cadre de prédiction des performances des réseaux neuronaux basé sur la pré-formation et l'injection de connaissances.
L'évaluation des performances des réseaux de neurones (précision, rappel, PSNR, etc.) nécessite beaucoup de ressources et de temps et constitue le principal goulot d'étranglement de la recherche de structure de réseau de neurones (NAS). Les premières méthodes NAS nécessitaient des ressources considérables pour former chaque nouvelle structure recherchée à partir de zéro. Ces dernières années, les prédicteurs de performances des réseaux ont attiré davantage d’attention en tant que méthode efficace d’évaluation des performances.
Cependant, les prédicteurs actuels sont limités dans leur champ d'utilisation car ils ne peuvent modéliser les structures de réseau qu'à partir d'un espace de recherche spécifique et ne peuvent prédire les performances de nouvelles structures que sur des tâches spécifiques. Par exemple, les échantillons d'apprentissage contiennent uniquement des réseaux de classification et leur précision, de sorte que les prédicteurs formés ne peuvent être utilisés que pour évaluer les performances de nouvelles structures de réseau sur des tâches de classification d'images.
Afin de briser cette frontière et de permettre au prédicteur de prédire les performances d'une certaine structure de réseau sur plusieurs tâches et de disposer de capacités de généralisation de tâches et de données croisées, l'Institut de recherche Huawei HiSilicon Canada et l'Université de l'Alberta ont lancé conjointement un Un cadre de prédiction des performances des réseaux neuronaux basé sur la pré-formation et l'injection de connaissances. Ce cadre peut évaluer rapidement les performances de différentes structures et types de réseaux sur de nombreux types de tâches CV telles que la classification, la détection, la segmentation, etc. pour la recherche de structure de réseau neuronal. Le document de recherche a été accepté par AAAI 2023.
- Lien papier : https://arxiv.org/abs/2211.17228
- Lien code : https://github.com/Ascend-Research/AIO-P
AIO-P (All-in -One Predictors) vise à étendre la portée des prédicteurs neuronaux aux tâches de vision par ordinateur au-delà de la classification. AIO-P utilise la technologie K-Adapter pour injecter des connaissances liées aux tâches dans le modèle prédicteur et conçoit également un mécanisme de mise à l'échelle des étiquettes basé sur les FLOP (Floating Point Operands) pour s'adapter à différents indicateurs de performance et distributions. AIO-P utilise un schéma de pseudo-étiquetage unique pour former les K-Adapters, générant ainsi de nouveaux échantillons de formation en quelques minutes seulement. Les résultats expérimentaux montrent qu'AIO-P présente de solides capacités de prédiction des performances et obtient d'excellents résultats MAE et SRCC sur plusieurs tâches de vision par ordinateur. De plus, AIO-P peut directement migrer et prédire les performances de structures de réseau inédites, et peut coopérer avec le NAS pour optimiser le volume de calcul des réseaux existants sans réduire les performances.
Introduction à la méthode
AIO-P est un prédicteur général de performances réseau qui peut être généralisé à plusieurs tâches. AIO-P atteint des capacités de prédiction des performances dans les tâches et les espaces de recherche grâce à la pré-formation des prédicteurs et à l'injection de connaissances spécifiques au domaine. AIO-P utilise la technologie K-Adapter pour injecter des connaissances liées aux tâches dans le prédicteur et s'appuie sur un format de graphique informatique (CG) commun pour représenter une structure de réseau, lui permettant finalement de prendre en charge des réseaux à partir de différents espaces et tâches de recherche, comme indiqué. dans la figure 1 ci-dessous.
Figure 1. Comment AIO-P représente les structures de réseau utilisées pour différentes tâches
De plus, l'utilisation d'un mécanisme de pseudo-étiquetage permet à AIO-P de générer rapidement de nouveaux échantillons de formation pour former les K-Adaptateurs. Pour combler l'écart entre les plages de mesure des performances sur différentes tâches, AIO-P propose une méthode de mise à l'échelle des étiquettes basée sur les FLOP pour réaliser une modélisation des performances entre tâches. De nombreux résultats expérimentaux montrent qu'AIO-P est capable de faire des prévisions de performances précises sur une variété de tâches CV différentes, telles que l'estimation de pose et la segmentation, sans échantillons de formation ou avec seulement un petit réglage fin. De plus, AIO-P peut classer correctement les performances sur des structures de réseau inédites et, lorsqu'il est combiné à un algorithme de recherche, est utilisé pour optimiser le réseau de reconnaissance faciale Huawei, en maintenant ses performances inchangées et en réduisant les FLOP de plus de 13,5 %. L'article a été accepté par AAAI-23 et le code est open source sur GitHub.
Les réseaux de vision par ordinateur se composent généralement d'une « épine dorsale » qui effectue l'extraction de caractéristiques et d'une « tête » qui utilise les caractéristiques extraites pour faire des prédictions. La structure du « backbone » est généralement conçue sur la base d'une certaine structure de réseau connue (ResNet, Inception, MobileNet, ViT, UNet), tandis que la « tête » est conçue pour une tâche donnée, telle que la classification, l'estimation de pose, la segmentation, etc. conçu. Les solutions NAS traditionnelles personnalisent manuellement l'espace de recherche en fonction de la structure du « backbone ». Par exemple, si le « backbone » est MobileNetV3, l'espace de recherche peut inclure le nombre de blocs MBConv, les paramètres de chaque MBConv (taille du noyau, expansion ), le nombre de chaînes, etc. Cependant, cet espace de recherche personnalisé n'est pas universel. S'il existe un autre « backbone » conçu sur la base de ResNet, il ne peut pas être optimisé via le framework NAS existant, mais l'espace de recherche doit être repensé.
Afin de résoudre ce problème, AIO-P a choisi de représenter différentes structures de réseau à partir du niveau du graphe informatique, obtenant ainsi une représentation unifiée de toute structure de réseau. Comme le montre la figure 2, le format de graphique informatique permet à AIO-P de coder ensemble l'en-tête et le squelette pour représenter l'ensemble de la structure du réseau. Cela permet également à AIO-P de prédire les performances des réseaux à partir de différents espaces de recherche (tels que MobileNets et ResNets) sur diverses tâches.
Figure 2. Représentation du module Squeeze-and-Excite dans MobileNetV3 au niveau du graphe informatique
La structure de prédicteur proposée dans AIO-P part d'un seul modèle de régression GNN (Figure 3, bloc vert) , Il prédit les performances des réseaux de classification d'images. Pour y ajouter la connaissance d'autres tâches CV, telles que la détection ou la segmentation, l'étude a attaché un K-Adapter (Fig. 3, bloc orange) au modèle de régression original. Le K-Adapter est formé sur des échantillons de la nouvelle tâche, tandis que les poids du modèle d'origine sont gelés. Par conséquent, cette étude forme séparément plusieurs K-Adapters (Figure 4) pour ajouter des connaissances provenant de plusieurs tâches.
Figure 3. Prédicteur AIO-P avec un adaptateur K
Figure 4. Prédicteur AIO-P avec plusieurs adaptateurs K
Afin de réduire davantage le temps d'entraînement avec le Au-dessus d'un K-Adapter, cette étude propose une technologie intelligente de pseudo-étiquetage. Cette technique utilise un schéma d'échantillonnage latent pour former un modèle « principal » qui peut être partagé entre différentes tâches. La tête partagée peut ensuite être associée à n'importe quel réseau fédérateur dans l'espace de recherche et ajustée pour générer des pseudo-étiquettes en 10 à 15 minutes (Figure 5).
Figure 5. Entraîner un modèle de "tête" pouvant être partagé entre différentes tâches
Il a été prouvé expérimentalement qu'utiliser des pseudo-étiquettes obtenues en partageant des têtes équivaut à entraîner un réseau à partir de zéro pendant une journée ou plus Les performances réelles obtenues sont corrélées positivement, parfois avec des coefficients de corrélation de rang supérieurs à 0,5 (corrélation de Spearman).
De plus, différentes tâches auront des indicateurs de performance différents. Ces indicateurs de performance ont généralement leur propre plage de distribution spécifique. Par exemple, un réseau de classification utilisant un réseau fédérateur spécifique peut avoir une précision de classification d'environ 75 % sur ImageNet, tandis que le mAP sur la tâche de détection d'objets MS-COCO peut être de 30 à 35 %. . Pour tenir compte de ces différents intervalles, cette étude propose une méthode pour comprendre les performances du réseau à partir d'une distribution normale basée sur le concept de normalisation. En termes simples, si la valeur prédite est 0, les performances du réseau sont moyennes ; si > 0, il s'agit d'un meilleur réseau
Figure 6. Comment normaliser les performances du réseau
Les FLOP d'un réseau sont liés à la taille du modèle, aux données d'entrée et ont généralement une tendance positive avec les performances. Cette étude utilise les transformations FLOP pour améliorer les étiquettes dont AIO-P apprend.
Expériences et résultats
Cette étude a d'abord formé AIO-P aux tâches d'estimation de pose humaine et de détection d'objets, puis l'a utilisée pour prédire les performances des structures de réseau sur plusieurs tâches, notamment l'estimation de pose (LSP et MPII), la détection (OD ) ), la segmentation d'instance (IS), la segmentation sémantique (SS) et la segmentation panoramique (PS). Même dans le cas d'une migration directe sans tir, utilisez AIO-P pour prédire les performances des réseaux à partir de l'espace de recherche Once for All (OFA) (ProxylessNAS, MobileNetV3 et ResNet-50) sur ces tâches, et la prédiction finale résultats Un MAE inférieur à 1,0 % et une corrélation de classement supérieure à 0,5 ont été obtenus.
De plus, cette étude a également utilisé AIO-P pour prédire les performances des réseaux dans la bibliothèque de modèles open source TensorFlow-Slim (tels que le modèle de segmentation sémantique DeepLab, ResNets, Inception nets, MobileNets et EfficientNets These network). les structures n’ont peut-être pas été utilisées auparavant. Apparaît dans les échantillons de formation d’AIO-P.
AIO-P est capable d'obtenir un SRCC presque parfait sur 3 bibliothèques de modèles de segmentation sémantique DeepLab en tirant parti de la transformation FLOP, tout en obtenant un SRCC positif sur les 4 bibliothèques de modèles de classification et en atteignant SRCC=1.0 sur le modèle EfficientNet.
Enfin, la motivation principale d'AIO-P est de pouvoir le coupler avec un algorithme de recherche et de l'utiliser pour optimiser des structures de réseau arbitraires, qui peuvent être indépendantes et ne faire partie d'aucun espace de recherche ou bibliothèque de modèles connue, Il pourrait même s’agir d’une structure pour une tâche pour laquelle il n’a jamais été formé. Cette étude utilise AIO-P et l'algorithme de recherche de mutation aléatoire pour optimiser le modèle de reconnaissance faciale (FR) utilisé sur les téléphones mobiles Huawei. Les résultats montrent qu'AIO-P peut réduire les FLOP de calcul du modèle de plus de 13,5 % tout en maintenant les performances (précision). (Pr) et rappel (Rc)).
Les lecteurs intéressés peuvent lire l’article original pour en savoir plus sur la recherche.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'évaluation du rapport coût/performance du support commercial pour un framework Java implique les étapes suivantes : Déterminer le niveau d'assurance requis et les garanties de l'accord de niveau de service (SLA). L’expérience et l’expertise de l’équipe d’appui à la recherche. Envisagez des services supplémentaires tels que les mises à niveau, le dépannage et l'optimisation des performances. Évaluez les coûts de support commercial par rapport à l’atténuation des risques et à une efficacité accrue.

La courbe d'apprentissage d'un framework PHP dépend de la maîtrise du langage, de la complexité du framework, de la qualité de la documentation et du support de la communauté. La courbe d'apprentissage des frameworks PHP est plus élevée par rapport aux frameworks Python et inférieure par rapport aux frameworks Ruby. Par rapport aux frameworks Java, les frameworks PHP ont une courbe d'apprentissage modérée mais un temps de démarrage plus court.

Le framework PHP léger améliore les performances des applications grâce à une petite taille et une faible consommation de ressources. Ses fonctionnalités incluent : une petite taille, un démarrage rapide, une faible utilisation de la mémoire, une vitesse de réponse et un débit améliorés et une consommation de ressources réduite. Cas pratique : SlimFramework crée une API REST, seulement 500 Ko, une réactivité élevée et un débit élevé.

Selon les benchmarks, pour les petites applications hautes performances, Quarkus (démarrage rapide, mémoire faible) ou Micronaut (TechEmpower excellent) sont des choix idéaux. SpringBoot convient aux grandes applications full-stack, mais a des temps de démarrage et une utilisation de la mémoire légèrement plus lents.

La rédaction d'une documentation claire et complète est cruciale pour le framework Golang. Les meilleures pratiques incluent le respect d'un style de documentation établi, tel que le Go Coding Style Guide de Google. Utilisez une structure organisationnelle claire, comprenant des titres, des sous-titres et des listes, et fournissez la navigation. Fournit des informations complètes et précises, notamment des guides de démarrage, des références API et des concepts. Utilisez des exemples de code pour illustrer les concepts et l'utilisation. Maintenez la documentation à jour, suivez les modifications et documentez les nouvelles fonctionnalités. Fournir une assistance et des ressources communautaires telles que des problèmes et des forums GitHub. Créez des exemples pratiques, tels que la documentation API.

Choisissez le meilleur framework Go en fonction des scénarios d'application : tenez compte du type d'application, des fonctionnalités du langage, des exigences de performances et de l'écosystème. Frameworks Go courants : Gin (application Web), Echo (service Web), Fibre (haut débit), gorm (ORM), fasthttp (vitesse). Cas pratique : construction de l'API REST (Fiber) et interaction avec la base de données (gorm). Choisissez un framework : choisissez fasthttp pour les performances clés, Gin/Echo pour les applications Web flexibles et gorm pour l'interaction avec la base de données.

Dans le développement du framework Go, les défis courants et leurs solutions sont les suivants : Gestion des erreurs : utilisez le package d'erreurs pour la gestion et utilisez un middleware pour gérer les erreurs de manière centralisée. Authentification et autorisation : intégrez des bibliothèques tierces et créez un middleware personnalisé pour vérifier les informations d'identification. Traitement simultané : utilisez des goroutines, des mutex et des canaux pour contrôler l'accès aux ressources. Tests unitaires : utilisez les packages, les simulations et les stubs gotest pour l'isolation, ainsi que les outils de couverture de code pour garantir la suffisance. Déploiement et surveillance : utilisez les conteneurs Docker pour regrouper les déploiements, configurer les sauvegardes de données et suivre les performances et les erreurs avec des outils de journalisation et de surveillance.

Il existe cinq malentendus dans l'apprentissage du framework Go : une dépendance excessive à l'égard du framework et une flexibilité limitée. Si vous ne respectez pas les conventions du framework, le code sera difficile à maintenir. L'utilisation de bibliothèques obsolètes peut entraîner des problèmes de sécurité et de compatibilité. L'utilisation excessive de packages obscurcit la structure du code. Ignorer la gestion des erreurs entraîne un comportement inattendu et des plantages.
