Règles de sélection des hyperparamètres de réseaux de neurones convolutifs

22

Existe-t-il de bons documents qui couvrent certaines méthodes méthodiques pour choisir les dimensions des filtres, regrouper les unités et déterminer le nombre de couches convolutives?

spacemonkey
la source
1
J'ai édité ton titre. Il est préférable d'utiliser des noms complets plutôt que des abréviations car dans de nombreux cas, les noms courts sont ambigus.
Tim

Réponses:

11

Dans une certaine mesure, oui, un récent article publié par des chercheurs de Google sur la façon de choisir de bonnes architectures Inception. Les réseaux de création atteignent des performances très élevées avec un budget de paramètres limité, c'est donc un bon point de départ, et c'est récent. Voici le lien: Repenser l'architecture de démarrage pour la vision par ordinateur .

Ils n'offrent pas de règles quantitatives strictes, mais plutôt des directives qu'ils ont utilisées et qui, selon eux, les ont aidés à obtenir de bonnes performances lors des récents concours ImageNet.

Par exemple, certains des principes dont ils discutent sont les suivants:

  • Utilisez des piles de couches convolutionnelles de champ récepteur plus petites au lieu d'utiliser une seule grande couche convolutionnelle de champ récepteur, c'est-à-dire 2 piles de couches conv 3x3 vs une seule couche conv 7x7. Cette idée n'est pas nouvelle, elle a également été discutée dans Return of the Devil in the Details: Delving Deep into Convolutional Networks par l'équipe d'Oxford VGG. Ceci est motivé par la nécessité d'être efficace en termes de paramètres. Il a également le double effet d'une plus grande capacité de représentation car nous introduisons plus de non-linéarité avec plus de couches.

  • Quelque chose que je n'ai pas vu dans la littérature que cet article mentionne factorise les couches convolutionnelles en couches profondes. Ainsi, au lieu d'avoir une seule couche conv 7x7, nous aurions une couche conv 1x7 puis une couche conv 7x1. Ajoute plus de profondeur, je pense que c'est aussi un paramètre efficace.

  • Équilibrez la profondeur et la largeur de votre filet. Utilisez des représentations de grande dimension. C'est l'un des principes de leurs modules Inception, qui concaténent plusieurs couches convolutinales ensemble. Donc, même si vous avez une petite taille spatiale dans votre réseau de conversion, en utilisant les modules Inception, nous pouvons utiliser une représentation dimensionnelle élevée via une concaténation convolutionnelle à plusieurs échelles: 1x1, 3x3, 3x3-3x3, pool maximum tous ensemble. Ces modules Inception ont une "largeur" ​​car ils peuvent être interprétés comme effectuant plusieurs opérations en parallèle. Ils vont encore plus loin avec de nouveaux modules Inception qui ont des tailles convolutives factorisées, 1x3, 3x1, etc.

  • Utilisez des couches de conv 1x1 (réseau dans le style réseau) pour réduire la dimensionnalité. Ils utilisent beaucoup de techniques de réduction de dimensionnalité pour atteindre l'efficacité des paramètres. Ils pensent que cela est efficace car les cartes d'entités adjacentes ont des sorties hautement corrélées. Ce qui est logique car les images naturelles sont connues pour présenter certaines propriétés statistiques locales compatibles avec cela. Ainsi, la réduction de la dimensionnalité via des couches NIN 1x1 n'a pas d'effet désastreux sur le pouvoir de représentation.

Il y a plus dans l'article. Je pense que c'est un article qui peut donner un aperçu de ce que vous demandez. Ils parlent de quelques concepts de base de la conception architecturale de conv net.

Indie AI
la source
2

Je n'ai trouvé aucune littérature sur le choix de ces hyper-paramètres en fonction des spécifications du problème. Mais, je crois comprendre que la plupart adoptent des méthodes d'optimisation bayésienne pour se concentrer sur les valeurs efficaces. Vous spécifiez une plage raisonnable et en testant diverses combinaisons, vous apprenez un modèle de la façon dont ces hyper-paramètres sont liés à la précision du modèle. Cela a bien fonctionné pour moi. Consultez "Optimisation bayésienne pratique des algorithmes d'apprentissage automatique" de Snoek, Larochelle et Adams ( http://papers.nips.cc/paper/4522-practical-bayesian-optimization-of-machine-learning-algorithms.pdf ).

David Kelley
la source