- Pourquoi les nœuds de polarisation sont-ils utilisés dans les réseaux de neurones?
- Combien devez-vous utiliser?
- Dans quels calques devez-vous les utiliser: tous les calques masqués et le calque de sortie?
Réponses:
Le nœud de polarisation dans un réseau neuronal est un nœud qui est toujours «activé». Autrement dit, sa valeur est définie sur sans tenir compte des données dans un modèle donné. Elle est analogue à l'ordonnée à l'origine dans un modèle de régression et remplit la même fonction. Si un réseau de neurones n'a pas de nœud de polarisation dans une couche donnée, il ne pourra pas produire de sortie dans la couche suivante qui diffère de 0 (sur l'échelle linéaire ou la valeur qui correspond à la transformation de 0 lors de son passage) la fonction d'activation) lorsque les valeurs de fonction sont 0 .
Prenons un exemple simple: vous avez un perceptron à action directe avec 2 nœuds d'entrée et x 2 et 1 nœud de sortie y . x 1 et x 2 sont des entités binaires et définies à leur niveau de référence, x 1 = x 2 = 0 . Multipliez ces 2 0 par les poids que vous aimez, w 1 et w 2 , additionnez les produits et passez-les par la fonction d'activation que vous préférez. Sans nœud de biais, un seulla valeur de sortie est possible, ce qui peut donner un très mauvais ajustement. Par exemple, en utilisant une fonction d'activation logistique, doit être 0,5 , ce qui serait horrible pour classer les événements rares.
Un nœud de polarisation offre une flexibilité considérable à un modèle de réseau neuronal. Dans l'exemple donné ci-dessus, la seule proportion prédite possible sans nœud de biais était de , mais avec un nœud de biais, toute proportion en ( 0 , 1 ) peut être adaptée aux modèles où x 1 = x 2 = 0 . Pour chaque couche, j , dans laquelle un nœud de polarisation est ajouté, le nœud de polarisation ajoutera N j + 1 paramètres / poids supplémentaires à estimer (où N j + 1 est le nombre de nœuds dans la couche j ). Plus de paramètres à ajuster signifient qu'il faudra proportionnellement plus de temps pour que le réseau neuronal soit formé. Cela augmente également les chances de surapprentissage, si vous n'avez pas beaucoup plus de données que de poids à apprendre.
Dans cette optique, nous pouvons répondre à vos questions explicites:
Réponses simples et courtes:
Dans quelques expériences de ma thèse de maîtrise (par exemple, page 59), j'ai trouvé que le biais pouvait être important pour la ou les premières couches, mais surtout au niveau des couches entièrement connectées à la fin, il ne semble pas jouer un grand rôle. On peut donc les avoir dans les premières couches et non dans les dernières. Entraînez simplement un réseau, tracez la distribution des poids des nœuds de biais et élaguez-les si les poids semblent trop proches de zéro.
Cela peut dépendre fortement de l'architecture / du jeu de données du réseau.
1
valeur constante dans la couche précédente et un poids (une valeur de biais) pour chacun des neurones des couches suivantes.
Dans le contexte des réseaux de neurones, la normalisation par lots est actuellement la référence en matière de fabrication de «nœuds de polarisation» intelligents. Au lieu de bloquer la valeur de biais d'un neurone, vous ajustez plutôt la covariance de l'entrée du neurone. Donc, dans un CNN, vous appliqueriez une normalisation par lots juste entre la couche convolutionnelle et la prochaine couche entièrement connectée (par exemple, ReLus). En théorie, toutes les couches entièrement connectées pourraient bénéficier de la normalisation par lots, mais cela devient très coûteux à mettre en œuvre car chaque normalisation par lots comporte ses propres paramètres.
Concernant pourquoi, la plupart des réponses ont déjà expliqué que, en particulier, les neurones sont sensibles aux gradients saturés lorsque l'entrée pousse l'extrême à l'activation. Dans le cas de ReLu, cela serait poussé vers la gauche, donnant un gradient de 0. En général, lorsque vous entraînez un modèle, vous normalisez d'abord les entrées du réseau neuronal. La normalisation par lots est un moyen de normaliser les entrées à l' intérieur du réseau neuronal, entre les couches.