número de mapas de recursos em redes neurais convolucionais

16

Ao aprender a rede neural convolucional, tenho perguntas sobre a figura a seguir.

1) C1 na camada 1 possui 6 mapas de características, isso significa que existem seis núcleos convolucionais? Cada kernel convolucional é usado para gerar um mapa de recursos com base na entrada.

2) S1 na camada 2 possui 6 mapas de características, C2 possui 16 mapas de características. Como é o processo para obter esses 16 mapas de recursos com base em 6 mapas de recursos no S1?

insira a descrição da imagem aqui

user3269
fonte

Respostas:

13

1) C1 na camada 1 possui 6 mapas de características, isso significa que existem seis núcleos convolucionais? Cada kernel convolucional é usado para gerar um mapa de recursos com base na entrada.

Existem 6 núcleos convolucionais e cada um é usado para gerar um mapa de recursos com base na entrada. Outra maneira de dizer isso é que existem 6 filtros ou conjuntos de pesos 3D que chamarei de pesos. O que esta imagem não mostra, o que provavelmente deveria, para deixar mais claro é que normalmente as imagens têm três canais, como vermelho, verde e azul. Portanto, os pesos que mapeiam você da entrada para C1 são de forma / dimensão 3x5x5 e não apenas 5x5. Os mesmos pesos tridimensionais, ou kernel, são aplicados em toda a imagem 3x32x32 para gerar um mapa de recursos bidimensionais em C1. Existem 6 kernels (cada 3x5x5) neste exemplo, para criar 6 mapas de recursos (cada 28x28, já que a passada é 1 e o preenchimento é zero) neste exemplo, cada um dos quais é o resultado da aplicação de um kernel 3x5x5 na entrada.

2) S1 na camada 1 possui 6 mapas de características, C2 na camada 2 possui 16 mapas de características. Como é o processo para obter esses 16 mapas de recursos com base em 6 mapas de recursos no S1?

Agora faça o mesmo que fizemos na camada um, mas na camada 2, exceto que desta vez o número de canais não é 3 (RGB), mas 6, seis para o número de mapas / filtros de recursos no S1. Agora existem 16 núcleos exclusivos, cada um com formato / dimensão 6x5x5. cada kernel da camada 2 é aplicado em todo o S1 para gerar um mapa de recursos 2D em C2. Isso é feito 16 vezes para cada kernel único na camada 2, todos os 16, para gerar os 16 mapas de recursos na camada 2 (cada 10x10, pois a passada é 1 e o preenchimento é zero)

fonte: http://cs231n.github.io/convolutional-networks/

Carson Lam
fonte