Papier: Quelle est la différence entre la normalisation des calques, la normalisation des lots récurrents (2016) et le RNN normalisé par lots (2015)?

31

Donc, récemment, il y a un papier de normalisation des calques . Il existe également une implémentation de celui-ci sur Keras.

Mais je me souviens qu'il y a des articles intitulés Recurrent Batch Normalization (Cooijmans, 2016) et Batch Normalized Recurrent Neural Networks (Laurent, 2015). Quelle est la différence entre ces trois?

Il y a cette section de travail connexe que je ne comprends pas:

La normalisation des lots a été précédemment étendue aux réseaux de neurones récurrents [Laurent et al., 2015, Amodei et al., 2015, Cooijmans et al., 2016]. Les travaux précédents [Cooijmans et al., 2016] suggèrent que les meilleures performances de normalisation récurrente des lots sont obtenues en conservant des statistiques de normalisation indépendantes pour chaque pas de temps. Les auteurs montrent que l'initialisation du paramètre de gain dans la couche de normalisation récurrente par lots à 0,1 fait une différence significative dans les performances finales du modèle. Notre travail est également lié à la normalisation du poids [Salimans et Kingma, 2016]. Dans la normalisation du poids, au lieu de la variance, la norme L2 des poids entrants est utilisée pour normaliser les entrées sommées d'un neurone. L'application de la normalisation du poids ou de la normalisation par lots à l'aide des statistiques attendues équivaut à avoir un paramétrage différent du réseau neuronal à action directe d'origine. La re-paramétrisation dans le réseau ReLU a été étudiée dans le SGD pathnormalisé [Neyshabur et al., 2015]. Notre méthode de normalisation de couche proposée, cependant, n'est pas une re-paramétrisation du réseau neuronal d'origine. Le modèle normalisé de couche a donc des propriétés d'invariance différentes des autres méthodes , que nous étudierons dans la section suivante

rilut
la source

Réponses:

26
  • Normalisation de couche ( Ba 2016 ): n'utilise pas de statistiques de lot. Normaliser à l'aide des statistiques collectées auprès de toutes les unités d'une couche de l'échantillon actuel. Ne fonctionne pas bien avec ConvNets.

  • Recurrent Batch Normalization (BN) ( Cooijmans, 2016 ; également proposé simultanément par Qianli Liao & Tomaso Poggio , mais testé sur Recurrent ConvNets, au lieu de RNN / LSTM): Identique à la normalisation par lots. Utilisez des statistiques de normalisation différentes pour chaque pas de temps. Vous devez stocker un ensemble d'écart moyen et standard pour chaque pas de temps.

  • Réseaux neuronaux récurrents normalisés par lots ( Laurent, 2015 ): la normalisation par lots est uniquement appliquée entre l'état d'entrée et l'état masqué, mais pas entre les états masqués. c'est-à-dire que la normalisation n'est pas appliquée au fil du temps.

  • Streaming Normalization ( Liao et al. 2016 ): il résume les normalisations existantes et surmonte la plupart des problèmes mentionnés ci-dessus. Il fonctionne bien avec ConvNets, l'apprentissage récurrent et l'apprentissage en ligne (c'est-à-dire, un petit mini-lot ou un échantillon à la fois):

  • L2L21y=X(w/|w|)Xwgy=ygg ne semble pas essentiel pour les performances (les couches apprenables en aval peuvent également l'apprendre de toute façon).

  • L2y=(X/|X|)(w/|w|)Xw

Notez que la normalisation du poids et du cosinus a été largement utilisée (appelée produit scalaire normalisé) dans les années 2000 dans une classe de ConvNets appelée HMAX (Riesenhuber 1999) pour modéliser la vision biologique. Vous les trouverez peut-être intéressants.

Réf: La référence du modèle HMAX

Ref: cortical Network Simulator Référence

Réf: Normalisation du cosinus: utilisation de la similitude des cosinus au lieu du produit scalaire dans les réseaux de neurones , Luo Chunjie, Zhan jianfeng, Wang lei, Yang Qiang

NeuralWorks
la source