Aunque las redes neuronales profundas han mostrado resultados aplastantes en muchos problemas de inteligencia artificial recientemente, todavía pueden ser difíciles de desarrollar y depurar. La investigación actual sobre el aprendizaje profundo se ha centrado en características como visualización, garantías teóricas, interpretabilidad de modelos y generalización. En este trabajo, analizamos las redes neuronales profundas desde una perspectiva diferente, con un enfoque en modelos convolucionales. Nuestro interés es comprender cuáles las entradas pueden afectar a las características de salida y a la asignación en cualquier parte de la red a la región de entrada que producen.
El parámetro clave para asociar una función de salida a una región de entrada es el campo receptivo de la red convolucional, definido como el tamaño de la región en la entrada que produce la función. Como nuestra primera contribución, presentamos una derivación matemática y un algoritmo eficiente para calcular los campos receptivos de las redes neuronales convolucionales modernas. El trabajo anterior discutió la computación del campo receptivo para redes convolucionales simples, donde existe una única ruta desde la entrada a la salida, proporcionando ecuaciones de recurrencia que se aplican en este caso. estas derivaciones se utilizan para obtener una expresión cerrada del cálculo del campo receptivo en el caso de un solo camino. Extendimos la computación del campo receptivo a las redes convolucionales modernas, donde pueden existir múltiples rutas de entrada a la producción. A nuestro conocimiento, esto es la primera vez que se presenta el cálculo del campo receptivo para arquitecturas convolucionales tan recientes. En la actualidad, los cálculos del campo receptivo son necesarios en una variedad de aplicaciones, por ejemplo, en el caso de la detección de objetos computarizados, es importante representar objetos a diferentes escalas para poder reconocer casos pequeños y grandes. Sin embargo, estos cálculos se hacen a menudo a mano, lo que es tedioso e inadecuado debido a que no hay bibliotecas para calcular estos parámetros automáticamente. Llenamos el vacío introduciendo una biblioteca de código abierto que realiza fácilmente los cálculos descritos aquí. La biblioteca es
integrado en la base de código Tensorflow y se puede utilizar fácilmente para analizar una variedad de modelos, como se presenta en este artículo. Esperamos que estas derivaciones y código de código abierto mejoren la comprensión de modelos complejos de aprendizaje profundo, lo que conduce a más
investigación productiva de aprendizaje automático. Resumen del artículo
Consideramos redes neuronales totalmente convolucionales, y derivamos su tamaño de campo receptivo y ubicaciones de campo receptivo para la salida
características con respecto a la señal de entrada. Mientras que las derivaciones presentadas aquí son lo suficientemente generales para cualquier tipo de señal utilizada
a la entrada de las redes neuronales convolucionales, utilizamos las imágenes como un ejemplo en ejecución, refiriéndose a la visión moderna de la computadora
arquitecturas cuando sea apropiado. Primero, derivamos expresiones de forma cerrada cuando la red tiene una única ruta de entrada a salida (como en AlexNet o VGG ). se discute el caso más general de gráficos de cálculo arbitrarios con múltiples rutas desde la entrada a la salida (como en ResNet
) Consideramos posibles problemas de alineación que surgen en este contexto, y explicamos un algoritmo para calcular el
tamaño de campo receptivo y ubicaciones.
Por último, analizamos los campos receptivos de las redes neuronales convolucionales modernas, mostrando los resultados obtenidos
biblioteca fuente. Configuración del problema
Considerar una red totalmente convolucional (FCN) con capas \(L\), \(l = 1,2,\ldots ,L\). Definir mapa de características \(f_l \in Rh_l\times
w_l\times d_l) para denotar la salida de la \(l\)-ésima capa, con altura \(h_l\), anchura \(w_l\) y profundidad \(d_l\). Denotamos la
la imagen de entrada por \(f_0\). El mapa de la función de salida final corresponde a \(f_{Lفارسى). Para simplificar la presentación, las derivaciones presentadas en este documento consideran las señales de entrada \(1\)-dimensionales y la característica
mapas. Para señales de dimensiones superiores (por ejemplo, imágenes \(2\)D), las derivaciones se pueden aplicar a cada dimensión de forma independiente. Del mismo modo, las figuras representan \(1\)-profundidad dimensional, ya que esto no afecta el cálculo de campo receptivo. La configuración espacial de cada capa \(l\) está parametrizada por 4 variables, como se ilustra en la siguiente figura:
\(k_l\): tamaño del núcleo (entero positivo)
\(s_l\): zancada (entero positivo)
\(p_l\): relleno aplicado al lado izquierdo del mapa de características de entrada (entero no negativo) Una definición más general de relleno
También se puede considerar: el relleno negativo, interpretado como cultivo, se puede utilizar en nuestras derivaciones sin ningún cambio. Para que el artículo sea más conciso, nuestra presentación se centra únicamente en el relleno no negativo. \(q_l\): relleno aplicado al lado derecho del mapa de características de entrada (entero no negativo)
Lo sentimos, su navegador no es compatible con SVG en línea. Tamaño del kernel (k l ): 2 Acolchado izquierdo (p l ): 1 Acolchado derecho (q l ): 1 Stride (s
l ): 3 f l f l-1 k l k l l l l s l p l q l
Consideramos capas cuyas características de salida dependen localmente de las características de entrada: por ejemplo, convolución, puesta en común o operaciones en función de los elementos
tales como no linealidades, adición y concatenación de filtro. Estos se utilizan comúnmente en redes de última generación. Definimos
operaciones en sentido de elemento para tener un "tamaño del núcleo" de \(1\), ya que cada función de salida depende de una única ubicación de la entrada
los mapas de características. Nuestra notación se ilustra además con la red simple a continuación.
En este caso, \(L=4\) y el modelo consiste en un
convolution, seguido por ReLU, una segunda convolution y max-pooling. Adoptamos la convención donde la primera función de salida para
cada capa se calcula colocando el núcleo en la posición más a la izquierda de la entrada, incluyendo el relleno. adoptado por todas las principales bibliotecas de aprendizaje profundo. Lo sentimos, su navegador no soporta SVG en línea. f 0 f 1 f 2 f 3 f 4 Convolution
Tamaño del kernel (k 1 ): 1
Relleno ( p 1 , q 1 ): 0
Stride (s 1 ): 1
Configuración no válida! Disminuir núcleo
tamaño o aumentar el relleno. ReLU
Tamaño del kernel (k 2 ): 1
Relleno (p 2 , q 2 ): 0
Stride (s 2 ): 1
Convolución
Tamaño del kernel (k 3 ): 1
Relleno (p 3 , q 3 ): 0
Stride (s 3 ): 1
Configuración no válida! Disminuir núcleo
tamaño o aumentar el relleno. Max Pooling
Tamaño del kernel (k 4 ): 1
Relleno (p 4 , q 4 ): 0
Stride (s 4 ): 1
Configuración no válida! Disminuir núcleo
tamaño o aumentar el relleno. Redes de vía única
En esta sección, computamos recidivas y expresiones de forma cerrada para redes completamente convolucionales con una única ruta desde
entrada a la salida (por ejemplo, AlexNet o VGG ). Tamaño del campo receptivo de computación
Definir \(r_l\) como el tamaño de campo receptivo del mapa de características de salida final \(f_{L», con respecto al mapa de características \(f_l\). In
otras palabras, \(r_l\) corresponde al número de características en el mapa de características \(f_l\) que contribuyen a generar una característica en
Nótese que \(r_{L}=1\). Como un ejemplo simple, considere la capa \(L\), que toma las características \(f_{L-1+) como entrada, y genera \(f_{L+) como salida. Aquí está
una ilustración:
Lo sentimos, su navegador no admite SVG en línea.
Tamaño del kernel (k L ): 2 Padding (p L , q L ): 0 Stride (s L ): 3 k L k L f L-1 f
L
Es fácil ver que las características de \(k_{L+) de \(f_{L-1+) pueden influir en una característica de \(f_{L+), ya que cada característica de
\(f_{L) está directamente conectado a las características \(k_{L) de \(f_{L-1). Por lo tanto, \(r_{L-1} = k_{L). Ahora, considere el caso más general en el que sabemos \(r_{l+) y queremos calcular \(r_{l-1+). Cada característica \(f_{l+) está conectada
a \(k_{l) características de \(f_{l-1). En primer lugar, considere la situación en la que \(k_l=1\): en este caso, las características \(r_{l+) en \(f_{l+) cubrirán \(r_{l-1}=s_l\cdot
r_{l} - (s_l - 1)\) características en \(f_{l-1). Esto se ilustra en la figura de abajo, donde \(r_{l}=2\) (resaltado en rojo). El primer término \(s_l \cdot r_{l) (verde) cubre toda la región de donde provienen las características, pero cubrirá \(s_l - 1\)
demasiado muchas características (purple), por lo que es necesario deducir. Como en la ilustración de abajo, tenga en cuenta que, en algunos casos, la
región de campo receptivo puede contener “agujeros”, es decir, algunas de las características de entrada pueden no ser utilizadas para una capa dada. Lo sentimos, su navegador no es compatible con SVG en línea. Se describe el tamaño del kernel (k l) y la distancia de salto (s l), así como el relleno, en este caso 0, para un filtro convolucional. Además se menciona que cuando k l > 1, se agregan características adicionales para cubrir las regiones izquierda y derecha. Por ejemplo, si se utiliza un tamaño de núcleo de 5 (k l = 5), hay 2 características adicionales utilizadas en cada lado, sumando 4 en total. También se explica que si k l es par, esto funciona también. Menciona la posibilidad de diferente tamaño de región en la imagen original para calcular cada característica de salida. Se menciona que se discutirá más adelante cómo calcular la región de campo receptivo para cada característica, lo que permite determinar exactamente qué píxeles de imagen se utilizan para cada función de salida.
Se advierte que el navegador no es compatible con SVG en línea. También se explica la ecuación de recurrencia general y cómo puede ser utilizada en un algoritmo recursivo para calcular el tamaño de campo receptivo de la red, r 0. Finalmente se menciona que se abordará más adelante cómo determinar la región de campo receptivo en la imagen de entrada dada una característica de salida. Vamos a denotar \(u_l\) y \(v_l\) las coordenadas más a la izquierda y más a la derecha (en \(f_l\)) de la región que se utiliza para calcular
la característica deseada en \(f_{L). En estas derivaciones, las coordenadas son cero-indexadas (es decir, la primera característica en cada mapa es
en coordenada \(0\)). Tenga en cuenta que \(u_{L} = v_{L) corresponde a la ubicación de la característica deseada en \(f_{L). La figura
a continuación ilustra una simple red de 2 capas, donde destacamos la región en \(f_0\) que se utiliza para calcular la primera característica
En este ejemplo, \(u_2=v_2=0\), \(u_1=0=0\), y
\(u_0=-1, v_0=4\). Lo sentimos, su navegador no admite SVG en línea. Tamaño del kernel (k 1 ): 3 Padding (p 1 , q 1 ): 1 Stride (s 1 ): 3 Tamaño del kernel (k 2
): 2 Relleno (p 2 , q 2 ): 0 Stride (s 2 ): 1 u 0 = -1 v 0 = 4 f 0 f 1 f 2
Comenzaremos haciendo la siguiente pregunta: dado \(u_{l}, v_{l), ¿podemos calcular \(u_{l-1},v_{l-1)? Comience con un caso simple: digamos \(u_{l}=0\) (esto corresponde a la primera posición en \(f_{l)). En este caso, la izquierda-
la mayoría de las características \(u_{l-1) se ubicarán claramente en \(-p_l\), ya que la primera función se generará colocando el extremo izquierdo
del núcleo sobre esa posición. Si \(u_{l}=1\), estamos interesados en la segunda característica, cuya posición más a la izquierda \(u_{l-1)
es \(-p_l + s_l\); para \(u_{l}=2\), \(u_{l-1}=-p_l + 2\cdot s_l\); y así sucesivamente. En general:
\(\begin{align} u_{l-1}&= -p_l + u_{lÃ3cdot s_l \label{eq:rf_loc_recurrence_u} ♥ v_{l-1}&= -p_l + v_{lÃ3cdot s_l + k_l -1
\label{eq:rf_loc_recurrence_v} \end{alinear)
donde el cálculo de \(v_l\) difiere sólo añadiendo \(k_l-1\), que es necesario ya que en este caso queremos encontrar la derecha-
la mayor parte de la posición. Tenga en cuenta que estas expresiones son muy similares a la recursión derivada del tamaño de campo receptivo \eqref{eq:rf_recurrence}. Una vez más, podríamos implementar una recursión sobre la red para obtener \(u_l,v_l\) para cada capa; pero también podemos resolver para
\(u_0,v_0\) y obtener expresiones de forma cerrada en términos de los parámetros de la red:
\(\begin{align} u_0&= u_{L{prod_{i=1}L}s_i - \sum_{l=1}L} p_l\prod_{i=1\l-1} s_i \label{eq:rf_loc_recurrence_final_left}
\end{alinear)
Esto nos da la posición de característica más a la izquierda en la imagen de entrada como una función del relleno (\(p_l\)) y zancada (\(s_l\))
se aplica en cada capa de la red, y de la ubicación de la característica en el mapa de características de salida (\(u_{Lفارسى)).
Y para la ubicación de la característica más derecha \(v_0\):
\(\begin{alinear} v_0&= v_{L{prod_{i=1}s_i -\sum_{l=1}L}(1 + p_l - k_l)\prod_{i=1\l-1} s_i
\label{eq:rf_loc_recurrence_final_right} \end{alinear)
Tenga en cuenta que, diferente de \eqref{eq:rf_loc_recurrence_final_left}, esta expresión también depende de los tamaños del núcleo (\(k_l\)) de
cada capa. Relación entre el tamaño del campo receptivo y la región. Usted puede estar preguntándose que el tamaño del campo receptivo \(r_0\) debe ser directamente
\(u_0\) y \(v_0\). De hecho, este es el caso; es fácil mostrar que \(r_0 = v_0 - u_0 + 1\), que dejamos como un
ejercicio de seguimiento para el lector curioso. Para enfatizar, esto significa que podemos reescribir \eqref{eq:rf_loc_recurrence_final_right}
como:
\(\begin{alinear} v_0&= u_0 + r_0 - 1 \label{eq:rf_loc_recurrence_final_right_rewrite} \end{alinear}
Para calcular \(u_0\) y \(v_0\) en la práctica, es conveniente definir otros dos
variables, que dependen sólo de los acolchados y los pasos de las diferentes capas:
zancudo efectivo \(S_l = \prod_{i=l+1L}s_i\): el zancudo entre un mapa de características dado \(f_l\) y el mapa de características de salida
\(f_{L)
relleno efectivo \(P_l = \sum_{m=l+1L}p_m\prod_{i=l+1m-1} s_i\): el relleno entre un mapa de características dado \(f_l\) y el
mapa de la función de salida \(f_{L)
Con estas definiciones, podemos reescribir \eqref{eq:rf_loc_recurrence_final_left} como:
\(\begin{align} u_0&= -P_0 + u_{Lcdot S_0 \label{eq:rf_loc_recurrence_final_left_effective} \end{align}
Note la semejanza entre \eqref{eq:rf_loc_recurrence_final_left_effective} y \eqref{eq:rf_loc_recurrence_u}. Usando
\(S_l\) y \(P_l\), uno puede calcular las ubicaciones \(u_l,v_l\) para el mapa de características \(f_l\) dada la ubicación en la función de salida
Cuando uno está interesado en la computación de ubicaciones de características para una red dada, es útil pre-computar tres
variables: \(P_0,S_0,r_0\). Usando estos tres, uno puede obtener \(u_0\) usando \eqref{eq:rf_loc_recurrence_final_left_efectivo}
y \(v_0\) usando \eqref{eq:rf_loc_recurrence_final_right_rewrite}. Esto nos permite obtener la asignación de cualquier función de salida
ubicación de la región de entrada que la influencia. También es posible derivar ecuaciones de recurrencia para el paso efectivo y el relleno efectivo. que:
\(\begin{align} S_{l-1}&= s_l \cdot S_l \label{eq:effective_stride_recurrence} ♥ P_{l-1}&= s_l \cdot P_l + p_l
\label{eq:efective_padding_recurrence} \end{align)
Estas expresiones serán útiles al derivar un algoritmo para resolver el caso de gráficos de cálculo arbitrarios, presentados en el
siguiente sección. Centro de región de campo receptivo. También es interesante derivar una expresión para el centro de la región de campo receptivo
que influye en una característica de salida particular. Esto se puede utilizar como la ubicación de la característica en la imagen de entrada (como se hace para
características locales recientes basadas en el aprendizaje profundo, por ejemplo). Definimos el centro de la región de campo receptivo para cada capa \(l\) como \(c_l = \frac{u_l + v_l
expresiones para \(u_0,v_0,r_0\), es sencillo derivar \(c_0\) (recuerde que \(u_{L}=v_{L)):
\(\begin{align} c_0&= u_{L{prod_{i=1}L}s_i - \sum_{l=1}L} \left(p_l - \frac{k_l - 1{2}right)\prod_{i=1\l-1} s_i
ombero (p_l - \frac{k_l - 12derecha)\prod_{i=1l-1} s_i
onumber Ł&= -P_0 + u_{Lcdot S_0 + \left(\frac{r_0 - 12derecha) \label{eq:rf_loc_recurrence_final_center_efectivo}
\end{alinear)
Esta expresión se puede comparar con \eqref{eq:rf_loc_recurrence_final_left_efectivo} para observar que el centro se desplaza de
el píxel más a la izquierda por \(\frac{r_0 - 1+2+), que tiene sentido. Tenga en cuenta que el campo receptivo se centra para la salida diferente
las características son espaciadas por el paso efectivo \(S_0\), como se esperaba.
Además, es interesante tener en cuenta que si \(p_l = \frac{k_l -
Para todos los \(l\), los centros de las regiones de campo receptivo para las características de salida se alinearán con la primera imagen
pixel y situado en \({0, S_0, 2S_0, 3S_0, \ldots) (ten en cuenta que en este caso todos los \(k_l\) deben ser impares). Otras operaciones de la red. Las derivaciones proporcionadas en esta sección cubren la mayoría de las operaciones básicas en el centro de
redes neuronales. Un lector curioso puede estar preguntando sobre otras operaciones comunes, como dilatación y upsamling, entre otras. Puede encontrar una discusión sobre estos temas en el apéndice. Los gráficos de cálculo arbitrarios se usan para representar la mayoría de las redes neuronales convolucionales actuales, como ResNet o Inception. Estas arquitecturas tienen más de una entrada por capa, lo que significa que hay varias rutas diferentes desde la entrada hasta la salida final del mapa funcional. En los gráficos acíclicos de computación dirigidos, cada nodo representa una capa y los bordes codifican las conexiones entre ellas. El cálculo presentado en la sección anterior puede aplicarse independientemente a cualquier ruta posible de entrada a salida. Sin embargo, cuando se quiere considerar todas las diferentes rutas para encontrar el tamaño del campo receptivo de la red y las regiones correspondientes a cada una de las características de salida, se convierte en más complicado. El primer problema potencial es que una característica de salida puede ser computada usando regiones desalineadas de la imagen de entrada, dependiendo de la ruta utilizada. Como consecuencia, el tamaño del campo receptivo no puede ser invariante ante cambios. Esta situación se ilustra en el ejemplo siguiente con un juguete, en cuyo caso las regiones usadas en la imagen de entrada son diferentes para cada una de las rutas. Esto significa que el campo receptivo
el tamaño puede no ser invariante cuando la red no está alineada. Para muchas tareas de visión computarizada, es altamente deseable que las características de salida se alineen: “traducción de imagen a imagen” tareas
(por ejemplo, segmentación semántica, detección de bordes, estimación normal de la superficie, colorización, etc), coincidencia de características locales y
recuperación, entre otros.
Cuando la red está alineada, todas las rutas diferentes conducen a que las características de salida se centren consistentemente en las mismas ubicaciones. diferentes caminos deben tener el mismo paso efectivo. Es fácil ver que el tamaño del campo receptivo será el más grande
campo receptivo entre todos los caminos posibles. Además, el acolchado efectivo de la red corresponde al acolchado efectivo para
la ruta con mayor tamaño de campo receptivo, de modo que se pueda aplicar \eqref{eq:rf_loc_recurrence_final_left_efectivo},
\eqref{eq:rf_loc_recurrence_final_center_efectivo} para localizar la región que generó una función de salida. La figura de abajo da un ejemplo simple de una red alineada. En este caso, las dos rutas diferentes conducen a las características
siendo centrado en las mismas ubicaciones. El tamaño del campo receptivo es \(3\), el paso efectivo es \(4\) y el relleno efectivo
es \(1\). Lo sentimos, su navegador no admite SVG en línea. Tamaño del kernel (k 1 ): 1 almohadilla izquierda (p 1 ): 0 almohadilla derecha (q 1 ): 0 Stride (s 1 ): 4
Tamaño del kernel (k 2 ): 3 Almohadilla izquierda (p 2 ): 1 Almohadilla derecha (q 2 ): 0 Almohadilla derecha (s 2 ): 2 Tamaño del kernel (k 3 ): 1 Almohadilla izquierda (p 3 ): 0 Almohadilla derecha
(q 3 ): 0 Stride (s 3 ): 2 Add
Criterios de alineación . Más precisamente, para que una red se alinee en cada capa, necesitamos cada posible par de rutas \(i\) y
\(j\) para tener \(c_lÃ3(i)} = c_lÃ3(j)Ã3) para cualquier capa \(l\) y función de salida \(u_{LÃ3). Para que esto suceda, podemos ver desde
\eqref{eq:rf_loc_recurrence_final_center_efectivo} que deben cumplirse dos condiciones:
\(\begin{alinear} S_lÃ3(i)}&= S_lÃ3(j)} \label{eq:alinear_crit_1} Ã -P_lÃ3(i)} + \left(\frac{r_lÃ3(i)} - 1â € 2â derecha)&= -P_lÃ(j)}
+ \left(\frac{r_l(j)} - 12derecha) \label{eq:align_crit_2} \end{alinear}
para todos los \(i,j,l\). Algoritmo para la computación de parámetros de campo receptivos: boceto. Es sencillo desarrollar un algoritmo eficiente que
calcula el tamaño del campo receptivo y los parámetros asociados para tales gráficos de cálculo. Naturalmente, un enfoque de fuerza bruta es para
utilizar las expresiones presentadas anteriormente para calcular los parámetros de campo receptivo para cada ruta de la entrada a la salida
de forma independiente, junto con alguna contabilidad con el fin de calcular los parámetros para toda la red. complejidad del caso de \(\mathcal{Oleft(\leftmathcal{Eright \times \leftmathcal{Lrightright)\).
La representación ordenada organiza las capas en
orden de dependencia: la salida de cada capa sólo depende de las capas que aparecen antes de ella. Visitando las capas en reversa topológica
orden, nos aseguramos de que todas las rutas de una capa dada \(l\) a la capa de salida \(L\) se han tenido en cuenta cuando \(l\) es
visitada. Una vez alcanzada la capa de entrada \(l=0\), se han considerado todas las rutas y los parámetros de campo receptivo de la
La complejidad de este algoritmo es \(\mathcal{Oleft(\leftmathcal{Eright +
\leftmathcal{Lrightright)\), que es mucho mejor que la fuerza bruta alternativa. A medida que se visita cada capa, se debe hacer una cierta contabilidad con el fin de mantener un seguimiento de los parámetros de campo receptivo de la red. En particular, tenga en cuenta que puede haber varias rutas diferentes desde la capa \(l\) a la capa de salida \(L\). situación, realizamos un seguimiento de los parámetros para \(l\) y los actualizamos si se encuentra una nueva ruta con un campo receptivo más grande, utilizando
expresiones \eqref{eq:rf_recurrence}, \eqref{eq:efective_stride_recurrence} y \eqref{eq:efective_padding_recurrence}. Del mismo modo, a medida que el gráfico se atraviesa, es importante comprobar que la red está alineada. Esto se puede hacer asegurándose de que
los parámetros de campo receptivos de diferentes rutas satisfacen \eqref{eq:align_crit_1} y \eqref{eq:align_crit_2}. Discusión: campos receptivos de las redes modernas
En esta sección, presentamos los parámetros de campo receptivo de las redes convolucionales modernas Los modelos utilizados para el campo receptivo
Los cálculos, así como la exactitud reportada en los experimentos de ImageNet, se extraen del modelo de clasificación de imágenes TF-Slim
biblioteca. , que se computaron utilizando la nueva biblioteca de código abierto (script aquí). Los parámetros pre-computados para AlexNet , VGG ,
ResNet , Inception y MobileNet se presentan en la siguiente tabla. Para una lista más completa, incluyendo la red intermedia
puntos finales, vea esta tabla. Receptivo de modelo ConvNet
Campo r) Efectivo
Stride (S) Effective
Acolchado (P) Año Modelo alexnet_v2 195 32 64 2014 vgg_16 212 32 90 2014 mobilenet_v1 315 32 126 2017 mobilenet_v1_075 315 32 126
2017 resnet_v1_50 483 32 239 2015 initial_v2 699 32 318 2015 resnet_v1_101 1027 32 511 2015 initial_v3 1311 32 618 2015
resnet_v1_152 1507 32 751 2015 resnet_v1_200 1763 32 879 2015 initial_v4 2071 32 998 2016 initial_resnet_v2 3039 32 1482
2016
A medida que los modelos evolucionaron, de AlexNet, a VGG, a ResNet e Inception, los campos receptivos aumentaron (lo que es una consecuencia natural
En las redes más recientes, el campo receptivo generalmente cubre toda la imagen de entrada:
significa que el contexto utilizado por cada característica en el mapa de características de salida final incluye todos los píxeles de entrada. Además, podemos relacionar el crecimiento en campos receptivos con una mayor precisión de clasificación. La precisión depende del tamaño del campo receptivo en la red neural, igual que se mencionó anteriormente.
El tamaño del círculo para cada punto de datos es proporcional al número de operaciones flotantes (FLOP) para cada arquitectura. Observemos una relación logarítmica entre precisión de clasificación y tamaño de campo receptivo, lo que sugiere que grandes campos receptivos son necesarios para tareas de reconocimiento de alto nivel, pero con recompensas decrecientes. Alcanzar un rendimiento elevado de reconocimiento incluso con una arquitectura compacta: mediante convoluciones de profundidad, se agranda el campo receptivo con una pequeña huella de cálculo. En comparación, VGG-16 requiere 27 veces más FLOPs que MobileNets y produce un campo receptor menor; incluso si es más complejo, la precisión de VGG es solo ligeramente superior a la de MobileNet. Esto sugiere que las redes que pueden generar efectivamente campos receptivos grandes pueden gozar de un mejor rendimiento de reconocimiento. Sin embargo, recuerde que el tamaño del campo receptor no es el único factor que mejora el rendimiento. Otros factores desempeñan un papel importante: la profundidad de la red (es decir, el número de capas) y la anchura (es decir, el número de filtros por capa), conexiones residuales, normalización de lotes, entre otros. En otras palabras, mientras suponemos que un campo receptivo grande es necesario, no lo es suficiente: se requiere experimentación adicional para confirmar esto. Por ejemplo, los investigadores pueden investigar experimentalmente cómo la precisión de la clasificación cambia con el tamaño del núcleo; esto puede indicar si, al menos para esas arquitecturas, un campo receptivo grande es necesario. Por último, recuerde que una característica dada no está igualmente afectada por todos los píxeles de entrada dentro de su región de campo receptivo: los píxeles cercanos al centro del campo receptivo tienen más “rutas” para influir en la característica y, como consecuencia, tienen más peso. La importancia relativa de cada pixel de entrada define el campo receptivo efectivo de la característica. El entendimiento preciso de la importancia relativa de los píxeles de entrada en las redes neuronales convolucionales es un tema de investigación en curso.