Eu tenho uma pequena sub-pergunta a esta pergunta .
Entendo que, quando se propaga de volta através de uma camada de pool máximo, o gradiente é roteado de volta de uma maneira que o neurônio na camada anterior, que foi selecionada como max, obtém todo o gradiente. O que eu não tenho 100% de certeza é como o gradiente na próxima camada é roteado de volta para a camada de pool.
Portanto, a primeira pergunta é se eu tenho uma camada de pool conectada a uma camada totalmente conectada - como na imagem abaixo.
Ao calcular o gradiente para o "neurônio" ciano da camada de pool, somaremos todos os gradientes dos neurônios da camada FC? Se isso estiver correto, todo "neurônio" da camada de pool tem o mesmo gradiente?
Por exemplo, se o primeiro neurônio da camada FC tem um gradiente de 2, o segundo tem um gradiente de 3 e o terceiro um gradiente de 6. Quais são os gradientes dos "neurônios" azuis e roxos na camada de pool e por quê?
E a segunda pergunta é quando a camada de pool é conectada a outra camada de convolução. Como computo o gradiente então? Veja o exemplo abaixo.
Para o "neurônio" mais à direita da camada de pool (o verde delineado), basta pegar o gradiente do neurônio roxo na próxima camada de conv e direcioná-lo de volta, certo?
E o verde cheio? Eu preciso multiplicar a primeira coluna de neurônios na próxima camada por causa da regra da cadeia? Ou preciso adicioná-los?
Por favor, não publique um monte de equações e me diga que minha resposta está correta porque tenho tentado entender as equações e ainda não entendo perfeitamente, é por isso que estou fazendo essa pergunta de uma maneira simples. caminho.
Respostas:
Não . Depende dos pesos e da função de ativação. E, geralmente, os pesos são diferentes do primeiro neurônio da camada de pool para a camada FC, da segunda camada da camada de pool para a camada FC.
Então, normalmente você terá uma situação como:
Isso significa que o gradiente em relação a P_j é
O que é diferente para j = 0 ou j = 1 porque W é diferente.
Não faz diferença a que tipo de camada está conectada. É a mesma equação o tempo todo. Soma de todos os gradientes na próxima camada multiplicada pela forma como a saída desses neurônios é afetada pelo neurônio na camada anterior. A diferença entre FC e Convolução é que, no FC, todos os neurônios da próxima camada fornecerão uma contribuição (mesmo que pequena), mas, na convolução, a maioria dos neurônios da próxima camada não é afetada pelo neurônio da camada anterior, portanto, sua contribuição é exatamente zero.
Certo. Além disso, também o gradiente de quaisquer outros neurônios nessa camada de convolução que tomam como entrada o neurônio mais à direita da camada de agrupamento.
Adicione-os. Por causa da regra da cadeia.
fonte