web-dev-qa-db-fra.com

Instance Normalisation vs normalisation par lots

Je comprends que la normalisation par lots facilite l’entraînement plus rapide en orientant l’activation vers la distribution gaussienne d’unités et en résolvant ainsi le problème des gradients en voie de disparition. Les normes de lot sont appliquées différemment lors de la formation (utilisez la moyenne/var de chaque lot) et la durée du test (utilisation de la moyenne finale/var finalisée à partir de la phase de formation).

La normalisation des instances, en revanche, agit comme la normalisation des contrastes, comme indiqué dans le présent document https://arxiv.org/abs/1607.08022 . Les auteurs indiquent que les images stylisées en sortie ne doivent pas dépendre du contraste de l'image du contenu en entrée, ce qui facilite la normalisation de l'instance. 

Mais alors ne devrions-nous pas également utiliser la normalisation d’instance pour la classification d’image où l’étiquette de classe ne devrait pas dépendre du contraste de l’image en entrée. Je n'ai vu aucun papier utiliser la normalisation d'instance au lieu de la normalisation par lots pour la classification. Quelle est la raison de ceci? De plus, la normalisation des lots et des instances peut et doit être utilisée ensemble. Je suis impatient d’obtenir une compréhension intuitive ainsi que théorique du moment d’utiliser quelle normalisation. 

23
Ruppesh Nalwaya

Définition

Commençons par la définition stricte des deux:

Normalisation des lots batch-norm-formula

Normalisation d'instance instance-norm-formula

Comme vous pouvez le constater, ils font la même chose, à l’exception du nombre de tenseurs d’entrée normalisés conjointement. La version par lots normalise toutes les images à travers les emplacements de lot et spatiaux (dans le cas ordinaire, dans CNN c'est différent ); La version d'instance normalise chaque lot indépendamment, c'est-à-dire sur emplacements spatiaux uniquement.

En d’autres termes, lorsque la norme batch calcule une moyenne et une dév std (rendant ainsi la distribution de la couche gaussienne entière), la norme instance en calcule T, donnant à chaque distribution d’image une apparence gaussienne, mais pas conjointement.

Une simple analogie: lors de l'étape de prétraitement des données, il est possible de normaliser les données image par image ou de normaliser l'ensemble de données.

Crédit: les formules sont de ici .

Quelle normalisation est la meilleure?

La réponse dépend de l'architecture du réseau, en particulier de ce qui est fait après la couche de normalisation. Les réseaux de classification des images empilent généralement les cartes de fonctions et les connectent à la couche FC qui partage les pondérations sur le lot (la méthode moderne consiste à utiliser la couche CONV au lieu de FC, mais l'argument reste valable).

C'est ici que les nuances de distribution commencent à compter: le même neurone va recevoir les données de toutes les images. Si la variance sur le lot est élevée, le gradient des petites activations sera complètement supprimé par les activations élevées, ce qui est exactement le problème que la norme de lot tente de résoudre. C'est pourquoi il est fort possible que la normalisation par instance n'améliore pas la convergence du réseau.

D'autre part, la normalisation par lots ajoute un bruit supplémentaire à la formation, car le résultat pour une instance particulière dépend des instances voisines. En fin de compte, ce type de bruit peut être bon ou mauvais pour le réseau. Ceci est bien expliqué dans le "Weight Normalization" de Tim Salimans, qui nomme des réseaux neuronaux récurrents et des DQN d'apprentissage par renforcement: applications sensibles au bruit. Je ne suis pas tout à fait sûr, mais je pense que la même sensibilité au bruit était le principal problème de la tâche de stylisation, ce que la norme par exemple a tenté de combattre. Il serait intéressant de vérifier si la norme de poids fonctionne mieux pour cette tâche particulière.

Pouvez-vous combiner la normalisation des lots et des instances?

Bien que cela crée un réseau de neurones valide, il n’a aucune utilité pratique. Le bruit de normalisation de lot aide le processus d'apprentissage (dans ce cas, c'est préférable) ou le blesse (dans ce cas, il est préférable de l'omettre). Dans les deux cas, laisser le réseau avec un type de normalisation améliorera probablement les performances.

30
Maxim

Excellente question et déjà bien répondu. Juste pour ajouter: j’ai trouvé cette visualisation utile du papier Norm du groupe Kaiming He's Group.  

Source: lien vers l'article sur le contraste moyen des normes

8
Stephen Morrell

Je voulais ajouter plus d'informations à cette question car il y a des travaux plus récents dans ce domaine. Votre intuition

utilisez la normalisation d'instance pour la classification des images, où étiquette de classe ne devrait pas dépendre du contraste de l'image d'entrée

est en partie correct. Je dirais qu'un cochon en plein jour est toujours un cochon lorsque l'image est prise de nuit ou à l'aube. Toutefois, cela ne signifie pas que l'utilisation de la normalisation d'instance sur le réseau vous donnera de meilleurs résultats. Voici quelques raisons:

  1. La distribution des couleurs joue toujours un rôle. Il est plus probable qu’il s’agisse d’une pomme que d’une orange si elle contient beaucoup de rouge.
  2. Au niveau des couches ultérieures, vous ne pouvez plus imaginer que la normalisation d’instance serve de normalisation de contraste. Les détails spécifiques à la classe apparaîtront dans les couches les plus profondes et leur normalisation par exemple nuira considérablement aux performances du modèle.

IBN-Net utilise à la fois la normalisation par lots et la normalisation par instance dans leur modèle. Ils ne placent la normalisation d’instance que dans les premières couches et ont amélioré la précision et la capacité de généralisation. Ils ont un code source libre ici .

 enter image description here

6
hkchengrex

IN fournit une apparence et une apparence in-variance et le BN accélère l’entraînement et préserve la caractéristique discriminante. réduire afin de maintenir la discrimination.

0
praveen