Dies ist eine kleine konzeptionelle Frage, die mich schon seit einiger Zeit beschäftigt: Wie können wir uns durch eine Max-Pooling-Schicht in einem neuronalen Netzwerk rückwärts ausbreiten?
Ich bin auf Max-Pooling-Ebenen gestoßen, als ich dieses Tutorial für die nn-Bibliothek von Torch 7 durchgesehen habe . Die Bibliothek abstrahiert die Gradientenberechnung und leitet Passagen für jede Schicht eines tiefen Netzwerks weiter. Ich verstehe nicht, wie die Gradientenberechnung für eine Max-Pooling-Schicht durchgeführt wird.
Ich weiß , dass , wenn Sie einen Eingang in Neuron gehen der Schicht , dann (definiert als ) ist gegeben durch:
Eine Max-Pooling-Schicht würde also wie gewohnt die der nächsten Schicht erhalten. aber da die Aktivierungsfunktion für die Max-Pooling-Neuronen einen (über den sie maxiert) als Eingabe verwendet, ist keine einzelne Zahl mehr, sondern ein Vektor ( müsste durch ) ersetzt werden. Außerdem ist , als die maximale Funktion, in Bezug auf seine Eingaben nicht unterscheidbar.
Also .... wie soll es genau gehen?