Rückausbreitung durch max. Pooling-Schichten

13

Ich habe eine kleine Unterfrage zu dieser Frage .

Ich verstehe, dass bei der Rückübertragung durch eine Max-Pooling-Schicht der Gradient so zurückgeleitet wird, dass das Neuron in der vorherigen Schicht, das als Max ausgewählt wurde, den gesamten Gradienten erhält. Was ich nicht 100% sicher bin, ist, wie der Gradient in der nächsten Ebene zurück zur Poolebene geleitet wird.

Die erste Frage ist also, ob eine Poolebene mit einer vollständig verbundenen Ebene verbunden ist - wie im Bild unten dargestellt.

Beispiel 1

Summiere ich bei der Berechnung des Gradienten für das Cyan- "Neuron" der Pooling-Schicht alle Gradienten aus den FC-Schicht-Neuronen? Wenn dies korrekt ist, hat jedes "Neuron" der Pooling-Schicht den gleichen Gradienten?

Wenn zum Beispiel das erste Neuron der FC-Schicht einen Gradienten von 2 hat, das zweite einen Gradienten von 3 und das dritte einen Gradienten von 6. Was sind die Gradienten der blauen und violetten "Neuronen" in der Pooling-Schicht und warum?

Und die zweite Frage ist, wann die Pooling-Schicht mit einer anderen Faltungsschicht verbunden ist. Wie berechne ich dann den Gradienten? Siehe folgendes Beispiel.

Beispiel2

Für das oberste rechte "Neuron" der Pooling-Schicht (das umrandete grüne) nehme ich einfach den Gradienten des violetten Neurons in der nächsten Conv-Schicht und richte ihn zurück, oder?

Wie wäre es mit dem gefüllten grünen? Ich muss die erste Spalte von Neuronen in der nächsten Schicht aufgrund der Kettenregel multiplizieren. Oder muss ich sie hinzufügen?

Bitte posten Sie keine Reihe von Gleichungen und sagen Sie mir, dass meine Antwort richtig ist, weil ich versucht habe, meinen Kopf um Gleichungen zu wickeln, und ich es immer noch nicht perfekt verstehe. Deshalb stelle ich diese Frage in einer einfachen Form Weg.

Majster
quelle
Bei Ihrer ersten Frage geht es bei der Rückübertragung darum, welche Gewichte und Eingaben Ihren Verlust auf welche Weise beeinflussen. Im Falle von Max-Pooling beeinflusst nur das Maximum der Neuronen die Ausgabe (außer bei Gleichstand). Geben Sie den Fehler also nur an das Neuron weiter, das den maximalen Aktivierungswert hatte.
Jan van der Vegt
Ja, ich verstehe das und habe dies auch in einer Zusammenfassung zu Beginn meines Beitrags gesagt. Aber ich verstehe nicht, wie ich den Gradienten der Neuronen der nächsten Schicht "kombiniere", um mich wieder auszubreiten. Ich hoffe du weißt was ich meine.
Majster

Antworten:

5

Wenn dies korrekt ist, hat jedes "Neuron" der Pooling-Schicht den gleichen Gradienten?

Nein, es hängt von den Gewichten und der Aktivierungsfunktion ab. Und am typischsten unterscheiden sich die Gewichte von dem ersten Neuron der Pooling-Schicht zu der FC-Schicht wie von der zweiten Schicht der Pooling-Schicht zu der FC-Schicht.

Normalerweise haben Sie eine Situation wie:

FCich=f(jWichjPj)

Wo das i-te Neuron in der vollständig verbundenen Schicht ist, ist das j-te Neuron in der und ist die Aktivierungsfunktion und die Gewichte.FCichPjfW

Dies bedeutet, dass der Gradient in Bezug auf P_j ist

Greind(Pj)=ichGreind(FCich)fWichj .

Was für j = 0 oder j = 1 unterschiedlich ist, weil das W unterschiedlich ist.

Und die zweite Frage ist, wann die Pooling-Schicht mit einer anderen Faltungsschicht verbunden ist. Wie berechne ich dann den Gradienten?

Es spielt keine Rolle, mit welcher Art von Ebene es verbunden ist. Es ist immer die gleiche Gleichung. Summe aller Gradienten auf der nächsten Ebene multipliziert mit der Auswirkung, die das Neuron auf der vorherigen Ebene auf die Ausgabe dieser Neuronen hat. Der Unterschied zwischen FZ und Faltung besteht darin, dass bei FZ alle Neuronen in der nächsten Schicht einen Beitrag liefern (auch wenn sie vielleicht klein sind), aber bei Faltung sind die meisten Neuronen in der nächsten Schicht überhaupt nicht vom Neuron in der vorherigen Schicht betroffen, so dass ihr Beitrag ist genau null.

Für das oberste rechte "Neuron" der Pooling-Schicht (das umrandete grüne) nehme ich einfach den Gradienten des violetten Neurons in der nächsten Conv-Schicht und richte ihn zurück, oder?

Richtig. Plus auch der Gradient aller anderen Neuronen auf dieser Faltungsschicht, die das oberste rechte Neuron der Poolschicht als Eingabe nehmen.

Wie wäre es mit dem gefüllten grünen? Ich muss die erste Spalte von Neuronen in der nächsten Schicht aufgrund der Kettenregel multiplizieren. Oder muss ich sie hinzufügen?

Füge sie hinzu. Wegen der Kettenregel.

Max Pooling Bis zu diesem Punkt war die Tatsache, dass es sich um Max Pool handelte, völlig irrelevant, wie Sie sehen können. Max. Pooling ist nur die, dass die Aktivierungsfunktion auf dieser Ebene . Dies bedeutet, dass die Farbverläufe für die vorherigen Ebenen sind:meinxGreind(PRj)

Greind(PRj)=ichGreind(Pich)fWichj .

Aber jetztf=ichdf=0f=1f=0

Greind(PRmeinxneurÖn)=ichGreind(Pich)Wich meinx neurÖn

Greind(PRÖthers)=0.

patapouf_ai
quelle