Li recentemente Redes totalmente convolucionais para segmentação semântica de Jonathan Long, Evan Shelhamer, Trevor Darrell. Não entendo o que as "camadas desconvolucionais" fazem / como elas funcionam.
A parte relevante é
3.3 Upsampling é convolução para trás
Outra maneira de conectar saídas grosseiras a pixels densos é a interpolação. Por exemplo, a interpolação bilinear simples calcula cada saída das quatro entradas mais próximas por um mapa linear que depende apenas das posições relativas das células de entrada e saída. Em certo sentido, a ampliação do fator f é convolução com um passo de entrada fracionário de 1 / f. Desde que f seja integral, uma maneira natural de aumentar a amostra é, portanto, a convolução reversa (às vezes chamada deconvolução) com um passo de saída de f . Tal operação é trivial de implementar, uma vez que simplesmente inverte os passes de convolução para frente e para trás.
Assim, o upsampling é realizado em rede para aprendizado de ponta a ponta por retropropagação a partir da perda de pixel.
Observe que o filtro de deconvolução em uma camada desse tipo não precisa ser corrigido (por exemplo, para amostragem bilinear), mas pode ser aprendido. Uma pilha de camadas de desconvolução e funções de ativação pode até aprender uma upsampling não linear.
Em nossas experiências, descobrimos que a amostragem na rede é rápida e eficaz para aprender previsões densas. Nossa melhor arquitetura de segmentação usa essas camadas para aprender a fazer um upsample para previsões refinadas na Seção 4.2.
Acho que não entendi como as camadas convolucionais são treinadas.
O que eu acho que entendi é que as camadas convolucionais com um tamanho de núcleo aprendem filtros do tamanho k × k . A saída de uma camada convolucional com tamanho de kernel K , passo s ∈ N e n filtros de dimensão é fraca Entrada. No entanto, não sei como funciona o aprendizado de camadas convolucionais. (Entendo como os MLPs simples aprendem com descida de gradiente, se isso ajudar).
Portanto, se meu entendimento das camadas convolucionais está correto, não tenho idéia de como isso pode ser revertido.
Alguém poderia me ajudar a entender as camadas desconvolucionais?