Это небольшой концептуальный вопрос, который мучил меня некоторое время: как мы можем распространяться обратно через слой максимального пула в нейронной сети?
Я наткнулся на слои с максимальным объединением, проходя этот урок для библиотеки nn в Torch 7. Библиотека абстрагирует вычисление градиента и прямые проходы для каждого слоя глубокой сети. Я не понимаю, как вычисляется градиент для слоя с максимальным пулом.
Я знаю, что если у вас есть вход входящий в нейрон i слоя l , то δ i l (определяется как δ i l = ∂ E ) определяется как: δil=θ
Таким образом, слой с максимальным пулом получит следующего слоя, как обычно; но поскольку функция активации для нейронов с максимальным пулом принимает вектор значений (по которым она достигает максимума) в качестве входных данных, δ i l больше не является одним числом, а вектором ( θдолжно быть заменено на∇θ( { z j l } )). Кроме того,θ, будучи функцией max, не дифференцируема по отношению к своим входам.
Так .... как это должно сработать?