Batch-Normalisierung in Convolutional Neural Network
Ich bin Neuling in convolutional neural networks und habe nur Ahnung von feature maps und wie Faltung erfolgt auf Bilder zum extrahieren von features. Ich wäre froh, zu wissen, einige details über die Anwendung batch-Normalisierung in der CNN.
Ich Las dieses Papier https://arxiv.org/pdf/1502.03167v3.pdf und verstehen konnte der BN-Algorithmus angewendet auf eine Daten-aber am Ende werden Sie erwähnt, dass eine leichte Modifikation ist erforderlich, wenn auf CNN:
Für convolutional Layer, haben wir zusätzlich wollen, dass die Normalisierung zu gehorchen, die convolutional-Eigenschaft – so, dass verschiedene Elemente der gleichen feature-Karte, die an verschiedenen Orten sind normiert auf die gleiche Weise. Um dies zu erreichen, haben wir gemeinsam normalisieren alle Aktivierungen an einem mini - batch über alle Standorte. In Alg. 1, lassen wir mit B die Menge aller Werte die in einem feature anzeigen über beide Elemente eines mini-batch-und Ortslagen – also für einen mini-batch-Größe m-und feature-Karten der Größe p × q verwenden wir die effektiven mini-batch-Größe m' = |B| = m · pq. Wir lernen ein paar Parameter γ(k) und β(k) pro-feature-map, als pro Aktivierung. Alg. 2 geändert wird, ähnlich, so dass bei der Ableitung der BN-Transformation gilt die gleiche lineare transformation auf jede Aktivierung einer bestimmten Funktion anzeigen.
Ich bin total verwirrt, wenn Sie sagen
", so dass verschiedene Elemente der gleichen feature-Karte, die an verschiedenen Orten sind normiert auf die gleiche Weise"
Ich wissen, welche feature-Karten bedeuten und die verschiedenen Elemente sind die GEWICHTE in jeder Funktion anzeigen. Aber ich konnte nicht verstehen, was Standort oder räumliche Lage bedeutet.
Konnte ich nicht verstehen, die unterhalb Satz überhaupt
"In Alg. 1, lassen wir mit B die Menge aller Werte die in einem feature anzeigen über beide Elemente eines mini-batch-und Ortslagen"
Ich würde mich freuen wenn mir kalt erarbeiten und erklären Sie mir, in viel einfacheren Worten
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beginnen wir mit den Bedingungen. Denken Sie daran, dass der Ausgang des convolutional layer ist ein 4-Rang-tensor
[B, H, W, C]
, woB
ist die batch-Größe,(H, W)
ist die feature map GrößeC
ist die Anzahl der Kanäle. Ein index(x, y)
wo0 <= x < H
und0 <= y < W
ist ein räumliche Lage.Üblichen batchnorm
Nun, hier ist, wie die batchnorm angewendet wird, in einer üblichen Art und Weise (in pseudo-code):
Grundsätzlich berechnet
H*W*C
bedeutet undH*W*C
Standardabweichungen überB
Elemente. Sie können feststellen, dass verschiedene Elemente auf unterschiedlichen räumlichen Orten haben Ihre eigenen Mittelwert und die Varianz und sammeln nurB
Werte.Batchnorm in conv Schicht
Diese Art und Weise ist völlig möglich. Aber der convolutional layer hat eine Besondere Eigenschaft: filter-GEWICHTE beziehen sich auf die input-Bild (Sie können Lesen Sie im detail in dieser Beitrag). Deshalb ist es sinnvoll, normalisieren die Ausgabe in der gleichen Weise, so dass jeder output mit dem Wert nimmt der Mittelwert und die Varianz der
B*H*W
Werte, an verschiedenen stellen.Hier ist, wie der code aussieht, wie in diesem Fall (mal wieder pseudo-code):
Insgesamt gibt es nur
C
Mittelwerte und Standardabweichungen, und jeder von Ihnen wird berechnet überB*H*W
Werte. Das ist, was Sie meinen, wenn Sie sagen "effektive mini-batch": den Unterschied zwischen den beiden ist nur in der Achse der Auswahl " (oder gleichwertig "mini-batch-Auswahl").B*H*W
Werte, nichtB*H*C
Werte. Siehe den ersten Absatz nach dem Batchnorm in conv layer. So oder so, +1.out[:,:,:,:] = norm(t[:,:,:,:], mean, stddev)
ohne Schleife? Der Mittelwert und die Varianz berechnet werden, die über den ganzen Stapel und dann wird für jedes element im batch einzeln, anstatt auf einmal? @maximIch bin nur zu 70% sicher, was ich sage, also wenn es nicht sinnvoll ist, bitte editieren oder zu erwähnen, bevor downvoting.
Über
location
oderspatial location
: Sie bedeuten, dass die position der Pixel in einem Bild oder ein feature anzeigen. Eine feature map ist vergleichbar mit einer lichten modifizierte version von dem Bild, wo Konzepte vertreten sind.Über
so that different elements of the same feature map, at different locations, are normalized in the same way
:einige Normalisierung algorithmen sind lokal, also abhängig von Ihrem näheren Umfeld (Lage) und nicht die Dinge, die weit auseinander in der Bild. Sie wahrscheinlich bedeuten, dass jedes pixel unabhängig von Ihrem Standort, wird genauso behandelt wie das element eines Satzes, unabhängig von direkten speziellen Umgebung.
Über
In Alg. 1, we let B be the set of all values in a feature map across both the elements of a mini-batch and spatial locations
: Sie erhalten eine flache Liste aller Werte für jedes training Beispiel in der minibatch, und diese Liste vereint die Dinge unabhängig von Ihrem Standort auf der feature map.