NAS-Bench-101 : Référentiel reproductible pour la recherche d'architectures neuronales

Contexte

NAS-Bench-101, développé par Google Brain, constitue le premier ensemble de données ouvert pour l'exploration d'architectures neuronales. Ce référentiel résout le problème des ressources computationnelles excessives en pré-calculant les performances de milleirs de modèles.

Méthodologie

Espace de recherche structuré

L'espace de recherche repose sur des cellules modulaires composées de 7 nœuds maximum. Chaque nœud exécute une opération parmi :

  • Convolution 3x3
  • Convolution 1x1
  • MaxPooling 3x3

Les contraintes incluent :

  • Matrice d'adjacence triangulaire supérieure 7×7
  • Maximum 9 connexions
  • Élimination des structures isomorphes par hachage graphique

Les stratégies de fusion :

  • Concaténation pour les nœuds de sortie
  • Addition pour les nœuds intermédiaires
  • Projection 1x1 pour l'alignement des canaux

Stratégie d'entraînement

Paramètres fixes déterminés par grille de recherche :

  • Optimiseur : RMSprop
  • Taux d'apprentissage : décroissance cosinusoïdale
  • Augmentation de données identique à ResNet

Utilisation pratique

Métriques disponibles

  • Précision : entraînement/validation/test
  • Temps d'entraînement
  • Nombre de paramètres

Accès aux données

git clone https://github.com/google-research/nasbench
cd nasbench
pip install -e .

Exemple de requête

from nasbench import api

bench = api.NASBench('/chemin/vers/dataset.tfrecord')

config_modele = api.ModelSpec(
    matrice=[
        [0, 1, 0, 1, 0, 1, 0],
        [0, 0, 1, 0, 0, 0, 1],
        [0, 0, 0, 0, 1, 0, 0],
        [0, 0, 0, 0, 1, 0, 1],
        [0, 0, 0, 0, 0, 1, 0],
        [0, 0, 0, 0, 0, 0, 1],
        [0, 0, 0, 0, 0, 0, 0]
    ],
    operations=['input', 'conv3x3', 'conv1x1', 'maxpool3x3', 'conv3x3', 'conv1x1', 'output']
)

resultats = bench.interroger(config_modele)
stats_entrainement = bench.obtenir_compteurs()

Analyse expérimentale

Observations clés

  • Corrélation validation/test : r=0.999
  • Relation complexe entre paramètres, temps et précision
  • Les modèles manuels (ex: ResNet) atteignent le front de Pareto

Impact des opérations

  • Remplacer convolution par pooling réduit la précision
  • Remplacer pooling par convolution améliore la précision
  • Les convolutions 1x1 réduisent le temps d'entraînement

Localité structurelle

L'autocorrélation des marches aléatoires (RWA) montre que la similarité architecturale diminue au-delà d'une distance de 6, guidant les stratégies de recherche.

Étiquettes: Neural Architecture Search NAS-Bench-101 Benchmark Deep Learning Reproductibilité CIFAR-10

Publié le 30 juin à 00h41