Jest to małe pytanie koncepcyjne, które dręczy mnie od dłuższego czasu: Jak możemy propagować wstecz przez warstwę max-pooling w sieci neuronowej?
Natknąłem się na warstwy o maksymalnej puli podczas omawiania tego samouczka dla biblioteki nn Torch 7. Biblioteka streszcza obliczenia gradientu i przebiegi do przodu dla każdej warstwy głębokiej sieci. Nie rozumiem, w jaki sposób wykonuje się obliczenia gradientu dla warstwy maksymalnej puli.
Wiem, że jeśli masz wejście wchodzące do neuronu i warstwy l , to δ i l (zdefiniowane jako δ i l = ∂ E ) podaje: δil=θ
Tak więc, warstwa maks pulowania otrzymałby „S kolejnej warstwy, jak zwykle; jednak ponieważ funkcja aktywacji neuronów max-łączenie wykonuje się w wektorze wartości (na której maxes) jako wejście δ , że L nie jest jeden numer więcej, ale wektora ( θbędą musiały być zastąpione∇θ( { oo j l } )). Ponadtoθ, będąc funkcją maksimum, nie różni się pod względem swoich danych wejściowych.
Więc .... jak to powinno działać dokładnie?