Régularisation? Orthogonalisation! Amélioration des réseaux compacts


Alors que d'autres sociétés envisagent de gérer l'équipe à distance, nous, chez Smart Engines, continuons de partager notre pile technologique avec vous. Aujourd'hui sur l'optimisation des réseaux de neurones. Il est extrêmement difficile de créer un système de reconnaissance basé sur des réseaux de neurones qui pourrait rapidement fonctionner sur les smartphones et autres appareils mobiles. Et il est encore plus difficile de s'assurer que la qualité est élevée. Dans cet article, nous parlerons d'une méthode simple de régularisation des réseaux de neurones que nous utilisons dans les moteurs intelligents pour améliorer la qualité des réseaux "mobiles" avec un petit nombre de paramètres. L'idée de la méthode est basée sur une diminution progressive de la dépendance linéaire des filtres dans les couches convolutives au cours de la formation, grâce à laquelle chaque neurone fonctionne plus efficacement, et par conséquent, la capacité de généralisation du modèle est améliorée.Pour ce faire, nous présentons des filtres sous forme de vecteurs unidimensionnels et orthogonalisons une paire avec la plus longue longueur de projection l'une sur l'autre.

Lors de la conception des réseaux de neurones les plus modernes, il est entendu qu'ils seront exécutés quelque part à distance sur le serveur et que les données à traiter passeront par le client sur un PC ou un appareil mobile. Cependant, cette approche est inacceptable en ce qui concerne la sécurité des données personnelles que vous ne souhaitez pas transférer quelque part (par exemple, une photo de passeport ou une carte bancaire pour la reconnaissance). Heureusement pour nous, les appareils mobiles ont aujourd'hui une capacité suffisante pour faire fonctionner des réseaux de neurones, vous pouvez donc éviter d'envoyer des données à des tiers. Une autre chose est que ces réseaux doivent être petits et contenir un petit nombre d'opérations afin de ne pas tester la patience de l'utilisateur. Ces conditions limitent la qualité maximale réalisable de leur travail,et comment améliorer les réseaux légers sans sacrifier l'exécution est une question ouverte. En réfléchissant à cela, nous avons trouvé une nouvelle méthode de régularisation dans les réseaux de neurones, axée sur les réseaux compacts et consistant en l'orthogonalisation des filtres convolutionnels.

Le billet est une version courte du rapport "Régularisation des poids des réseaux de neurones convolutionnels par orthogonalisation", présenté en novembre 2019 lors de la conférence internationale ICMV 2019, Amsterdam, Pays-Bas.

L'idée de régularisation par orthogonalisation


Puisque la méthode proposée concerne la régularisation, nous rappelons d'abord brièvement ce qu'elle est. La régularisation consiste à imposer certaines restrictions au modèle en fonction de nos idées sur la manière dont la tâche doit être résolue. En conséquence, la capacité de généralisation du réseau est augmentée. Par exemple, la régularisation L1 contribue à la mise à zéro d'une partie de l'équilibre en déchargeant le réseau, L2 - maintient les coefficients en petits nombres, Dropout élimine les dépendances des neurones individuels, etc. Ces méthodes font partie intégrante du processus d'apprentissage de nombreux réseaux modernes, surtout si elles contiennent un grand nombre de paramètres - la régularisation vous permet de gérer assez bien le recyclage.

Revenons maintenant à notre méthode. Nous réservons tout de suite que nous considérons tout d'abord le problème de la classification des images avec un réseau neuronal convolutif. L'hypothèse, sur la base de laquelle nous sommes arrivés à l'utilisation de l'orthogonalisation, est la suivante: si le réseau est extrêmement limité dans ses ressources pour le concept de modèles dans les données, alors chaque neurone qu'il contient doit être conçu pour fonctionner aussi efficacement que possible, et pour qu'il remplisse la fonction qui lui est strictement assignée. En d'autres termes, afin qu'il «accroche» des fonctionnalités que tout autre neurone ne peut détecter. Nous résolvons ce problème en réduisant progressivement la relation linéaire entre les vecteurs de poids des neurones pendant l'entraînement. Pour ce faire, nous avons modifié l'algorithme d'orthogonalisation classique, en l'adaptant aux réalités du processus d'apprentissage.

Orthogonalisation du filtre de convolution


Définissez les filtres de la couche convolutionnelle comme un ensemble de vecteurs , où c est l'indice de la couche convolutionnelle et N est le nombre de filtres qu'il contient. Après que les poids ont été mis à jour pendant la propagation arrière de l'erreur, dans chaque couche convolutionnelle individuelle, nous recherchons une paire de vecteurs avec une longueur de projection maximale les uns sur les autres:



La projection du vecteur f g sur f k peut être calculée comme suit . Ensuite, afin d'orthogonaliser les filtres f a et f b , nous remplaçons la première étape de l'algorithme de Gram-Schmidt par la



formule suivante:



η est la vitesse d'apprentissage et le moûtcoefficient d'orthogonalisation dont les valeurs se situent dans l'intervalle [0,0, 1,0]. L'introduction du coefficient d'orthogonalisation est due au fait que l'orthogonalisation «instantanée» des filtres décompose considérablement le processus d'apprentissage, annulant les changements systématiques de poids au cours des itérations passées. Les petites valeurs de moût préservent la dynamique de l'apprentissage et contribuent à une diminution régulière de la relation linéaire entre les filtres dans chaque couche séparément. On note encore une fois un point important de la méthode: en une seule itération on modifie un seul vecteur pour ne pas nuire à l'algorithme d'optimisation.


Figure. Visualisation d'une itération.

Nous considérons uniquement l'orthogonalisation des filtres convolutionnels, car dans les réseaux neuronaux modernes, les couches convolutionnelles constituent une grande partie de l'architecture. Cependant, l'algorithme est facilement généralisé aux poids des neurones dans des couches entièrement connectées.

Expériences


On passe de la théorie à la pratique. Pour les expériences, nous avons décidé d'utiliser les 2 ensembles de données les plus populaires pour évaluer les réseaux de neurones dans le domaine de la vision par ordinateur - MNIST (classification des images de nombres manuscrits) et CIFAR10 (photos de 10 classes - bateaux, camions, chevaux, etc.).

Puisque nous supposons que l'orthogonalisation sera utile principalement pour les réseaux compacts, nous avons pris une architecture de type LeNet en 3 modifications, qui diffèrent les unes des autres par le nombre de filtres dans les couches convolutives. L'architecture de notre réseau, qui s'appellera LeNet 1.0 pour plus de commodité, est présentée dans le tableau 1. Les architectures LeNet 2.0 et LeNet 3.5 qui en dérivent se distinguent par un grand nombre de filtres en couches convolutives, 2 et 3,5 fois, respectivement.

En choisissant la fonction d'activation, nous nous sommes arrêtés à ReLU non seulement parce que c'est la fonction la plus populaire et la plus efficace en termes de calcul (nous vous rappelons que nous parlons toujours de réseaux rapides). Le fait est que l'utilisation de fonctions linéaires non par morceaux annule l'effet de l'orthogonalisation: par exemple, la tangente hyperbolique déforme fortement les vecteurs d'entrée car elle présente une non-linéarité prononcée dans les régions proches de la saturation.

Tableau 1. Architecture du réseau LeNet 1.0 utilisée dans les expériences.
Couches
#Un typeParamètresFonction d'
activation
1conv8 filtres 3x3, foulée 1x1, sans rembourrageRelu
2conv16 filtres 5x5, foulée 2x2, rembourrage 2x2Relu
3conv16 filtres 3x3, foulée 1x1, rembourrage 1x1Relu
4conv32 filtres 5x5, foulée 2x2, rembourrage 2x2Relu
5conv32 filtres 3x3, foulée 1x1, rembourrage 1x1Relu
6conv32 filtres 3x3, foulée 1x1, rembourrage 1x1Relu
7entièrement connecté10 neuronesSoftmax

Nous avons essayé 3 valeurs du moût de coefficient d'orthogonalisation : 0,01, 0,05, 0,1. Toutes les expériences ont été effectuées 10 fois, et les résultats ont été moyennés (l'écart type ( std ) pour le taux d'erreur est indiqué dans le tableau avec les résultats). Nous avons également calculé combien de pour cent le nombre d'erreurs ( avantage ) a diminué .

Les résultats expérimentaux ont confirmé que l'amélioration de l'orthogonalisation est plus grande, plus les paramètres du réseau sont petits (tableaux 2 et 3). Nous avons également obtenu un résultat intéressant selon lequel l'utilisation de l'orthogonalisation dans le cas de réseaux «lourds» conduit à une mauvaise qualité.

Tableau 2. Résultats expérimentaux du MNIST
MnistLeNet 1.0 (paramètres 52k)LeNet 2.0 (179k paramètres)LeNet 3.5 (378 k paramètres)
taux d'erreurstdavantagetaux d'erreurstdavantagetaux d'erreurstdavantage
référence0,402%0,033-0,366%0,026-0,361%0,028-
moût = 0,010,379%0,0275,72%0,355%0,013,01%0,359%0,0260,55%
moût = 0,050,36%0,02210,45%0,354%0,0183,28%0,356%0,0341,39%
moût = 0,10,368%0,0158,46%3,53%0,0243,55%0,353%0,0182,22%

Tableau 3. Résultats expérimentaux pour CIFAR10
Cifar10LeNet 1.0 (paramètres 52k)LeNet 2.0 (179k paramètres)LeNet 3.5 (378 k paramètres)
taux d'erreurstdavantagetaux d'erreurstdavantagetaux d'erreurstdavantage
référence22,09%0,65-18,49%1.01-17,08%0,47-
moût = 0,0121,56%0,862,38%18,14%0,651,89%17,33%0,49-1,46%
moût = 0,0521,59%0,482,24%18,30%0,571,03%17,59%0,31-3,02%
moût = 0,121,54%0,412,48%18,15%0,531,85%17,53%0,4-2,63%

Cependant, les réseaux LeNet sont maintenant rares et des modèles plus modernes sont généralement utilisés. Par conséquent, nous avons également expérimenté le modèle ResNet, facilité par le nombre de filtres, composé de 25 couches convolutives. Les 7 premières couches contiennent 4 filtres, les 12 par 8 filtres suivants et les 6 derniers par 16 filtres. Le nombre total de paramètres entraînés de ce modèle était de 21 000. Le résultat était similaire: l'orthogonalisation améliore la qualité du réseau.


Figure. Comparaison de la dynamique d'apprentissage ResNet au MNIST avec et sans orthogonalisation.

Malgré les améliorations de qualité obtenues, pour une confiance totale dans le bon fonctionnement de la méthode proposée, vous devez voir quels changements se sont produits dans les filtres eux-mêmes. Pour cela, les valeurs de la longueur maximale de projection du filtre dans 2, 12 et 25 couches ResNet ont été annulées pour toutes les époques de formation. Nous donnons la dynamique des changements dans les graphiques ci-dessous. La chose la plus importante ici est que dans toutes les couches, il y a une diminution de la dépendance linéaire des filtres.


Figure. Dynamique des changements dans la longueur de projection maximale des filtres dans une couche convolutionnelle en utilisant ResNet comme exemple.

La régularisation basée sur l'orthogonalisation est extrêmement facile à implémenter: sur python utilisant le module numpy, il faut moins de 10 lignes de code. En même temps, il ne ralentit pas la formation et est compatible avec d'autres méthodes de régularisation.

Conclusion


Malgré sa simplicité, l'orthogonalisation contribue à améliorer la qualité des réseaux «légers», qui imposent des restrictions sur la taille et la vitesse d'exécution. En raison de la prolifération des technologies mobiles, de telles restrictions sont de plus en plus courantes: un réseau de neurones ne devrait pas fonctionner quelque part dans le cloud, mais directement sur un appareil avec un processeur faible et une mémoire faible. La formation de tels réseaux va à l'encontre des tendances modernes de la science des réseaux de neurones, où des ensembles de modèles avec des millions de paramètres formés qu'aucun smartphone ne peut tirer sont activement utilisés. C'est pourquoi, dans le cadre de la résolution de problèmes industriels, il est extrêmement important d'inventer et de développer des méthodes pour améliorer la qualité des réseaux simples et rapides.

Liste des sources utilisées


Alexander V. Gayer, Alexander V. Sheshkus, «Régularisation des poids des réseaux de neurones convolutifs par orthogonalisation», Proc. SPIE 11433, douzième conférence internationale sur la vision industrielle (ICMV 2019), 1143326 (31 janvier 2020); https://doi.org/10.1117/12.2559346

All Articles