Lorsqu'un réseau neuronal traite un lot, toutes les valeurs d'activation pour chaque couche sont calculées pour chaque exemple (peut-être en parallèle par exemple si la bibliothèque et le matériel le prennent en charge). Ces valeurs sont stockées pour une utilisation ultérieure possible - c'est-à-dire une valeur par activation par exemple dans le lot, elles ne sont en aucun cas agrégées
Pendant la rétropropagation, ces valeurs d'activation sont utilisées comme l'une des sources numériques pour calculer les gradients, ainsi que les gradients calculés jusqu'à présent en arrière et les poids de connexion. Comme la propagation avant, la propagation arrière est appliquée par exemple, elle ne fonctionne pas avec des valeurs moyennes ou sommées. Ce n'est que lorsque tous les exemples ont été traités que vous travaillez avec les dégradés sommés ou moyennés pour le lot.
Cela s'applique également aux couches de pool max. Non seulement vous savez quelle était la sortie de la couche de regroupement pour chaque exemple du lot, mais vous pouvez également regarder la couche précédente et déterminer quelle entrée dans le pool était maximale.
Mathématiquement, et en évitant de définir des indices pour les couches NN et les neurones, la règle peut être exprimée comme ceci
La fonction avant est m = m a x ( a , b )
Nous savons ∂J∂m pour une fonction cible J (dans le réseau neuronal qui sera la fonction de perte que nous voulons minimiser, et nous supposons que nous avons déjà rétropropagé à ce point)
Nous voulons savoir ∂J∂une et ∂J∂b
Si a > b
Localement , * . Doncm = a∂J∂une=∂J∂m
Localement , * ne dépend pas de . Doncmb∂J∂b=0
Par conséquent si , sinon∂J∂a=∂J∂ma>b∂J∂a=0
et si , sinon∂J∂b=∂J∂mb>a∂J∂b=0
Lorsque la propagation arrière traverse une couche de regroupement maximale, le gradient est traité par exemple et affecté uniquement à l'entrée de la couche précédente qui était maximale. Les autres entrées ont un gradient nul. Lorsque cela est groupé, ce n'est pas différent, il est simplement traité par exemple, peut-être en parallèle. Sur un lot entier, cela peut signifier que plus d'une, peut-être la totalité, des activations d'entrée dans le pool max obtiennent une part du gradient - chacune provenant d'un sous-ensemble différent d'exemples du lot.
* Localement -> lorsque vous effectuez uniquement des modifications infinitésimales sur .m
** Techniquement, si exactement nous avons une discontinuité, mais dans la pratique , nous pouvons ignorer que , sans problèmes lors de la formation d' un réseau de neurones.a=b