Définition
Commençons par la définition stricte des deux :
Normalisation par lots
Normalisation des instances
Comme vous pouvez le remarquer, ils font la même chose, sauf pour le nombre de tenseurs d'entrée qui sont normalisés conjointement. La version par lot normalise toutes les images à travers le lot et les emplacements spatiaux (dans le cas du CNN, dans le cas ordinaire c'est différent ) ; la version instance normalise chaque élément du lot indépendamment, c'est-à-dire, à travers emplacements spatiaux seulement.
En d'autres termes, là où la norme de lot calcule une moyenne et un écart-type (rendant ainsi la distribution de la couche entière gaussienne), la norme d'instance calcule T
d'entre elles, ce qui donne à chaque distribution d'image individuelle un aspect gaussien, mais pas de manière conjointe.
Une analogie simple : lors de l'étape de prétraitement des données, il est possible de normaliser les données par image ou de normaliser l'ensemble des données.
Crédit : les formules sont issues 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 d'images empilent généralement les cartes de caractéristiques et les transmettent à la couche FC, laquelle partager les poids dans le lot (la méthode moderne consiste à utiliser la couche CONV au lieu de FC, mais l'argument reste valable).
C'est là que les nuances de la distribution commencent à avoir de l'importance : le même neurone va recevoir l'entrée de toutes les images. Si la variance dans 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 du tout la convergence du réseau.
D'autre part, la normalisation par lots ajoute un bruit supplémentaire à l'apprentissage, car le résultat d'une instance particulière dépend des instances voisines. Il s'avère que ce type de bruit peut être soit bon soit mauvais pour le réseau. Ceci est bien expliqué dans le "Normalisation du poids" L'article de Tim Salimans et al, qui nomme les réseaux neuronaux récurrents et les DQNs d'apprentissage par renforcement en tant que 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 dans la tâche de stylisation, que l'instance norm a essayé de combattre. Il serait intéressant de vérifier si la norme de poids est plus performante pour cette tâche particulière.
Peut-on combiner la normalisation par lot et par instance ?
Bien qu'il s'agisse d'un réseau neuronal valable, il n'a aucune utilité pratique. Le bruit de normalisation des lots aide le processus d'apprentissage (dans ce cas, il est préférable) ou lui nuit (dans ce cas, il est préférable de l'omettre). Dans les deux cas, laisser le réseau avec un seul type de normalisation est susceptible d'améliorer les performances.