Como a camada totalmente conectada da CNN é convertida em um vetor unidimensional?

Conforme mencionado no artigo anterior, a última parte da CNN é geralmente usada para classificação com uma ou duas camadas totalmente conectadas.Como o mapa de recursos bidimensionais gerado pela camada de agrupamento anterior é convertido em um vetor unidimensional?

Como pode ser visto na estrutura da figura acima, as duas últimas camadas são dois retângulos, ou seja, vetores unidimensionais. Tomando o conjunto de dados manuscrito MNIST como exemplo, o mapa de recursos (Feature Map) gerado pela camada superior é 14*14*64 de tamanho Depois Depois de uma camada totalmente conectada (aqui os neurônios da primeira camada totalmente conectada são definidos como 1024), torna-se um vetor 1*1024.

Por que a dimensionalidade é reduzida? Não se esqueça que a função da camada totalmente conectada é classificar, então ao final é necessário calcular a probabilidade de cada categoria, ou seja, calcular a possibilidade da amostra de teste pertencer a uma determinada categoria. Não há mistério, basta usar uma convolução do kernel com o mesmo tamanho da imagem para cada mapa de recursos de entrada, para que a imagem inteira se torne um número, na verdade, são 64*1024 14*14 O kernel da convolução é convoluto. a espessura é 64, os 64 núcleos podem ser adicionados após a convolução, de modo que uma imagem pode ser altamente condensada em um número. É por isso que se torna um vetor unidimensional depois de passar pela camada totalmente conectada.

Falando em kernels de convolução, vamos dar uma olhada mais de perto nos kernels de convolução. Na CNN, o núcleo de convolução da camada convolucional tem três dimensões: comprimento, largura e profundidade. O kernel de convolução é essencialmente uma matriz de peso.

O comprimento e a largura do kernel de convolução são especificados manualmente, e o comprimento X largura também é chamado de tamanho do kernel de convolução. Os tamanhos comumente usados ​​são 3X3, 5X5, etc.; a profundidade do kernel de convolução está relacionada à profundidade da imagem atual (número de Zhang do mapa de penas) são os mesmos, portanto, ao especificar o kernel da convolução, você só precisa especificar seus parâmetros de comprimento e largura. Por exemplo, na camada de imagem original (camada de entrada), se a imagem for uma imagem em tons de cinza, o número de mapas de penas é 1 (a razão pela qual MNIST é 28*28*1, as imagens no conjunto de dados MNIST são todas imagens em tons de cinza ), então o volume A profundidade do kernel da convolução é 1; se a imagem for uma imagem grb e o número de mapas de penas for 3 (com 3 canais de cores), a profundidade do kernel da convolução será 3.

Na verdade, isso é o mesmo que a rede neural totalmente conectada. É o conceito de CNN baseado no compartilhamento de peso que reduz muitos parâmetros. Pode-se ver que há muitos parâmetros totalmente conectados. Nesta imagem, há 14*14*64 *1024 parâmetros, e o processo de convolução e agrupamento acima não é superior a 28*28*32 no máximo, então muitos dos aplicativos de algoritmo que vimos posteriormente evitaram a camada totalmente conectada. Um dos métodos convencionais atuais é a média mundial. Ou seja, o mapa de recursos da última camada (o resultado de saída da última camada de convolução) é calculado diretamente. Existem tantas camadas quanto categorias para treinar, e esses dez números são a probabilidade ou confiança correspondente. O conjunto de dados MNIST pode ser visualizado através do TensorBoard no framework tensorflow, conforme mostrado na figura abaixo.

A camada convolucional e a camada totalmente conectada na CNN são produtos pontuais calculados, de modo que a camada totalmente conectada e a camada convolucional podem ser convertidas uma na outra. O processo de conversão da camada convolucional em uma camada totalmente conectada é o processo de adicionar 0 ao peso e aumentar a matriz. É com base no conceito de compartilhamento da rede neural convolucional que muitos parâmetros equivalentes serão gerados após a conversão. Obviamente, camadas totalmente conectadas também podem ser transformadas em camadas convolucionais.

おすすめ

転載: blog.csdn.net/baidu_41774120/article/details/117378785