¿Cómo funcionan las arquitecturas de cuello de botella en las redes neuronales?


21

Definimos una arquitectura de cuello de botella como el tipo que se encuentra en el documento de ResNet donde [dos capas de conv 3x3] se reemplazan por [una 1x1 conv, una 3x3 conv, y otra 1x1 conv capa].ingrese la descripción de la imagen aquí

Entiendo que las capas conv 1x1 se usan como una forma de reducción de dimensión (y restauración), que se explica en otra publicación . Sin embargo, no tengo claro por qué esta estructura es tan efectiva como el diseño original.

Algunas buenas explicaciones pueden incluir: ¿Qué longitud de zancada se utiliza y en qué capas? ¿Cuáles son las dimensiones de entrada y salida de ejemplo de cada módulo? ¿Cómo se representan los mapas de características de 56x56 en el diagrama de arriba? ¿El 64-d se refiere al número de filtros, por qué difiere de los filtros de 256-d? ¿Cuántos pesos o FLOP se usan en cada capa?

Cualquier discusión es muy apreciada!


Creo que puede ayudar con la generalización y la prevención del sobreajuste. Pero eso es solo un vago recuerdo.
Chris

Respuestas:


5

La arquitectura de cuello de botella se usa en redes muy profundas debido a consideraciones computacionales.

Para responder tu pregunta:

  1. Los mapas de características de 56x56 no están representados en la imagen de arriba. Este bloque está tomado de una ResNet con un tamaño de entrada 224x224. 56x56 es la versión con muestreo reducido de la entrada en alguna capa intermedia.

  2. 64-d se refiere a la cantidad de mapas de características (filtros). La arquitectura de cuello de botella tiene 256 d, simplemente porque está destinada a una red mucho más profunda, que posiblemente tome imágenes de mayor resolución como entrada y, por lo tanto, requiera más mapas de características.

  3. Consulte esta figura para conocer los parámetros de cada capa de cuello de botella en ResNet 50.


1
Para futuros lectores, debo mencionar que creo que las convs 1x1 tienen stride = 1 y pad = 0, para preservar (WxH) de 56x56. Del mismo modo, las convs 3x3 tienen stride = 1 y pad = 1 para preservar el tamaño también.
derekchen14

Aún no lo entiendo. Parece que ambos tienen la misma cantidad de parámetros, en ese caso todavía no entiendo el propósito de la capa de bootleneck.
user570593

-1

Realmente creo que el segundo punto en la respuesta de Newstein es engañoso.

El 64-do 256-ddebe referirse al número de canales del mapa de características de entrada , no al número de mapas de características de entrada.

Considere el bloque "cuello de botella" (a la derecha de la figura) en la pregunta del OP como ejemplo:

  • 256-dsignifica que tenemos un único mapa de entidades de entrada con dimensión n x n x 256. El 1x1, 64en la figura significa 64 filtros , cada uno es 1x1y tiene 256canales ( 1x1x256).
  • Entonces, aquí podemos ver que la convolución de un solo filtro ( 1x1x256) con un mapa de características de entrada ( n x n x 256) nos da n x nsalida.
  • Ahora tenemos 64filtros, por lo tanto, al apilar las salidas, la dimensión del mapa de características de salida es n x n x 64.

Editado:

  • @ Michael Chernick: Ok, entonces esta sería una respuesta parcial, ya que traté de corregir la respuesta aceptada. ¿Puedes tomarte el tiempo de mirar mi respuesta parcial y avisarme si entiendo correctamente?

Independientemente de la reputación, no debe usar respuestas para comentarios.
Michael R. Chernick
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.