Esta questão se resume a "como as camadas de convolução funcionam exatamente .
Suponha que eu tenha uma imagem escala de cinza. Então a imagem tem um canal. Na primeira camada, aplico uma convolução com filtros e preenchimento . Então eu tenho outra camada de convolução com convolutions e filtros . Quantos mapas de recursos eu tenho?3 × 3 k 1 5 × 5 k 2
Convolução tipo 1
A primeira camada é executada. Depois disso, tenho mapas de recursos (um para cada filtro). Cada um deles tem o tamanho . Cada pixel foi criado retirando pixels da imagem de entrada preenchida.
Em seguida, a segunda camada é aplicada. Cada filtro é aplicado separadamente a cada um dos mapas de recursos . Isso resulta em mapas de recursos para cada um dos mapas de recursos . Portanto, existem mapas de recursos após a segunda camada. Cada pixel único de cada um dos novos mapas de recursos foi criado usando "pixels" do mapa de recursos preenchido de antes.
O sistema precisa aprender os parâmetros .
Convolução do tipo 2.1
Como antes: a primeira camada é executada. Depois disso, tenho os mapas de recursos (um para cada filtro). Cada um deles tem o tamanho n \ vezes m . Cada pixel foi criado retirando 3 \ cdot 3 = 9 pixels da imagem de entrada preenchida. n × m 3 ⋅ 3 = 9
Diferente de antes: a segunda camada é aplicada. Cada filtro é aplicado à mesma região, mas todos apresentam mapas de antes. Isso resulta em mapas de recursos no total após a execução da segunda camada. Cada pixel único de cada um dos novos mapas de recursos foi criado usando "pixels" dos mapas de recursos preenchidos anteriormente.
O sistema precisa aprender os parâmetros .
Convolução do tipo 2.2
Como acima, mas em vez de ter parâmetros por filtro que precisam ser aprendidos e simplesmente copiados para os outros mapas de recursos de entrada, você tem parâmetros que precisam ser aprendidos.
Questão
- O tipo 1 ou tipo 2 é normalmente usado?
- Qual tipo é usado no Alexnet ?
- Que tipo é usado no GoogLeNet ?
- Se você diz o tipo 1: Por que convoluções fazem algum sentido? Eles não apenas multiplicam os dados com uma constante?
- Se você diz o tipo 2: explique o custo quadrático ("Por exemplo, em uma rede de visão profunda, se duas camadas convolucionais estão encadeadas, qualquer aumento uniforme no número de seus filtros resulta em um aumento quadrático da computação")
Para todas as respostas, forneça algumas evidências (documentos, livros didáticos, documentação de estruturas) de que sua resposta está correta.
Pergunta bônus 1
O pool é aplicado sempre apenas por mapa de recursos ou também é feito em vários mapas de recursos?
Pergunta bônus 2
Estou relativamente certo de que o tipo 1 está correto e entendi algo errado com o artigo do GoogLe. Mas há uma convoluções em 3D também. Digamos que você possua 1337 mapas de recursos de tamanho e aplique um filtro . Como você desliza o filtro sobre os mapas de recursos? (Da esquerda para a direita, de cima para baixo, do primeiro mapa ao último mapa?) Isso importa desde que você faça isso de forma consistente?3 × 4 × 5
Minha pesquisa
- Eu li os dois artigos de cima, mas ainda não tenho certeza do que é usado.
- Eu li a documentação da lasanha
- Eu li a documentação do theano
- Eu li as respostas sobre Noções básicas sobre redes neurais convolucionais (sem seguir todos os links)
- Eu li Redes Neurais Convolucionais (LeNet) . Especialmente a figura 1 me deixa relativamente certo de que o Tipo 2.1 é o correto. Isso também se encaixaria no comentário "custo quadrático" no GoogLe Net e em alguma experiência prática que tive com a Caffee.