Campo receptivo de neuronas en LeNet


9

Estoy tratando de entender mejor los campos receptivos de CNN. Para hacerlo, me gustaría calcular el campo receptivo de cada neurona en LeNet. Para un MLP normal es bastante fácil (ver http://deeplearning.net/tutorial/lenet.html#sparse-connectivity ), pero es más difícil calcular el campo receptivo de una neurona en una capa que sigue una o más capas convolucionales y capas de agrupación.

¿Cuál es el campo receptivo de una neurona en la 2. capa convolucional? ¿Cuánto más grande es en la siguiente capa de submuestreo / agrupación? ¿Y cuál es la fórmula para calcular estos?


1
La barra lateral relacionada sugirió esta pregunta , que es relevante para el tipo de cosas en las que está pensando e interesante.
Dougal

Respuestas:


2

Si piensa en una red convolucional como una instancia de un MLP estándar, puede descubrir los campos receptivos exactamente de la misma manera que el ejemplo que vinculó.

Recuerde que una capa convolucional es esencialmente una forma abreviada de una capa con muchos patrones repetidos, como en esta imagen (de esta respuesta , originalmente de aquí ):

ejemplo visual de convolución

Cada uno de los "píxeles de destino" de esa imagen corresponde a una neurona cuyas entradas son el cuadrado azul en la imagen de origen. Dependiendo de la arquitectura de su red, las circunvoluciones pueden no corresponder exactamente a píxeles como ese, pero es la misma idea. Los pesos utilizados como entradas para todas esas neuronas convolucionales están vinculados, pero eso es irrelevante para lo que estás pensando aquí.

Se puede pensar en la combinación de neuronas de la misma manera, combinando los campos receptivos de cada una de sus entradas.


Buena visualización! Tu ejemplo tiene mucho sentido. Si agregué una capa de agrupación de 2x2 después de la capa convolucional, entonces cada neurona en la capa de agrupación solo tendría un campo receptivo de 4x4, a pesar de mezclar cuatro campos de 3x3 a medida que las neuronas en la capa convolucional se superponen. Puedo entender fácilmente esto y crear algunas fórmulas simples para el campo receptivo en función del tamaño de la agrupación, etc. Sin embargo, se vuelve más complejo para la siguiente capa convolucional ya que el campo receptivo ahora también depende del paso de la capa de sondeo, etc. ¿Qué fórmula para RF tiene esto en cuenta?
pir

Entonces, ¿el cuadrado azul en el píxel fuente es del tamaño del campo receptivo?
Charlie Parker

Tengo la misma pregunta, en el documento "F-R-CNN más rápido: hacia la detección de objetos en tiempo real con redes de propuestas regionales", dice en la sección 3.1, el campo receptivo de ZF y VGG16 es 171 y 228 pero no agrega desde la configuración de la red. Espero que alguien pueda aclarar esto por mí.
Chan Kim

0

En Faster-rcnn, el campo receptivo efectivo se puede calcular de la siguiente manera (VGG16):

Img->
Conv1 (3) -> Conv1 (3) -> Pool1 (2) ==>
Conv2 (3) -> Conv2 (3) -> Pool2 (2) ==>
Conv3 (3) -> Conv3 (3 ) -> Conv3 (3) -> Pool3 (2) ==>
Conv4 (3) -> Conv4 (3) -> Conv4 (3) -> Pool4 (2) ==>
Conv5 (3) -> Conv5 (3 ) -> Conv5 (3) ====>
una ventana de 3 * 3 en el mapa de características.
Tomemos una dimensión por simplicidad. Si derivamos del tamaño 3, el campo receptivo original:
1). al comienzo de Conv5: 3 + 2 + 2 + 2 = 9
2). al comienzo de Conv4: 9 * 2 + 2 + 2 + 2 = 24
3). al comienzo de Conv3: 24 * 2 + 2 + 2 + 2 = 54
4). al comienzo de Conv2: 54 * 2 + 2 + 2 = 112
5). al comienzo de Conv1 (entrada original): 112 * 2 + 2 + 2 = 228

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.