¿Cómo funcionan las capas de convolución posteriores?

29

Esta pregunta se reduce a "cómo funcionan exactamente las capas de convolución .

Supongamos que tengo una imagen en escala de grises . Entonces la imagen tiene un canal. En la primera capa, aplico una convolución de 3 × 3 con k 1 filtros y relleno. Luego tengo otra capa de convolución con 5 × 5 convoluciones y k 2 filtros. ¿Cuántos mapas de características tengo?n×m3×3k15×5k2

Convolución tipo 1

La primera capa se ejecuta. Después de eso, tengo mapas de características (uno para cada filtro). Cada uno de ellos tiene el tamaño n × m . Cada píxel se creó tomando 3 × 3 = 9 píxeles de la imagen de entrada acolchada.k1n×m33=9

Luego se aplica la segunda capa. Cada filtro se aplica por separado a cada uno de los mapas de características . Esto da como resultado mapas de funciones para cada uno de los mapas de funciones k 1 . Entonces, hay mapas de características k 1 × k 2 después de la segunda capa. Cada píxel de cada uno de los nuevos mapas de características se creó tomando 5 5 = 25 "píxeles" del mapa de características acolchado de antes.k2k1k1×k255=25

El sistema tiene que aprender parámetros.k133+k255

Convolución tipo 2.1

Como antes: la primera capa se ejecuta. Después de eso, tengo mapas de características (uno para cada filtro). Cada uno de ellos tiene el tamaño n × m . Cada píxel se creó tomando 3 × 3 = 9 píxeles de la imagen de entrada acolchada.k1n×m33=9

A diferencia de antes: luego se aplica la segunda capa. Cada filtro se aplica a la misma región, pero todos los mapas de características de antes. Esto resulta en mapas de características en total después de que se ejecutó la segunda capa. Cada píxel de cada uno de los nuevos mapas de características se creó tomando k 25 5 = 25 k 2 "píxeles" de los mapas de características acolchados de antes.k2k255=25k2

El sistema tiene que aprender parámetros.k133+k255

Convolución tipo 2.2

55=25k133+k2k155

Pregunta

  1. ¿Se usa típicamente el tipo 1 o el tipo 2?
  2. ¿Qué tipo se usa en Alexnet ?
  3. ¿Qué tipo se usa en GoogLeNet ?
    • 1×1
    • Si dice tipo 2: explique el costo cuadrático ("Por ejemplo, en una red de visión profunda, si se encadenan dos capas convolucionales, cualquier aumento uniforme en el número de sus filtros resulta en un aumento cuadrático de cómputo")

Para todas las respuestas, proporcione alguna evidencia (documentos, libros de texto, documentación de marcos) de que su respuesta es correcta.

Pregunta extra 1

¿La agrupación se aplica siempre solo por mapa de características o también se realiza en múltiples mapas de características?

Pregunta extra 2

42×3143×4×5

Mi investigación

Martin Thoma
fuente
Un tiempo después: Análisis y optimización de arquitecturas de redes neuronales convolucionales , especialmente el capítulo 2 y la Figura 2.2 y la Figura 2.3.
Martin Thoma

Respuestas:

5

No estoy seguro acerca de las alternativas descritas anteriormente, pero la metodología comúnmente utilizada es:

k23˙3˙k1+k1˙5˙5˙k2

Bono 1: la agrupación se realiza por mapa de características, por separado.

Bono 2: El orden de "deslizamiento" no importa. De hecho, cada salida se calcula en función de la capa anterior, por lo que las respuestas del filtro de salida no dependen unas de otras. Se pueden calcular en paralelo.

ChristianSzegedy
fuente
1
Me olvidé por completo de esta pregunta. Mientras tanto, escribí mi tesis de maestría sobre las CNN. El Capítulo 3 explica cómo funcionan.
Martin Thoma
1
Para aclarar: el tipo 2.2 es el correcto (descrito en esta respuesta)
Martin Thoma
1
En caso de que alguien realmente quiera ver esto en acción, implementé una red neuronal convolucional profunda en las hojas de Google. Puede ver los filtros y la imagen de entrada, píxel por píxel a medida que funciona a través de la CNN, hasta que la CNN predice la respuesta: docs.google.com/spreadsheets/d/…
bwest87
5

Acabo de luchar con esta misma pregunta durante unas horas. Pensé en compartir el insite que me ayudó a entenderlo.

La respuesta es que los filtros para la segunda capa convolucional no tienen la misma dimensionalidad que los filtros para la primera capa. En general, el filtro debe tener el mismo número de dimensiones que sus entradas . Entonces, en la primera capa conv, la entrada tiene 2 dimensiones (porque es una imagen). Por lo tanto, los filtros también tienen dos dimensiones. Si hay 20 filtros en la primera capa conv, la salida de la primera capa conv es una pila de 20 mapas de características 2D. Por lo tanto, la salida de la primera capa conv es tridimensional, donde el tamaño de la tercera dimensión es igual al número de filtros en la primera capa.

Ahora esta pila 3D forma la entrada a la segunda capa conv. Como la entrada a la segunda capa es 3D, los filtros también tienen que ser 3D. Haga que el tamaño de los filtros de la segunda capa en la tercera dimensión sea igual al número de mapas de características que fueron los resultados de la primera capa.

Ahora solo te involucras en las 2 primeras dimensiones; filas y columnas. Por lo tanto, la convolución de cada filtro de segunda capa con la pila de mapas de características (salida de la primera capa) produce un solo mapa de características.

El tamaño de la tercera dimensión de la salida de la segunda capa es, por lo tanto, igual al número de filtros en la segunda capa.

Alex Blenkinsop
fuente
2

Mira esta conferencia y esta visualización

Por lo general, se utiliza convolución tipo 2.1. En la entrada tiene una imagen NxMx1, luego de la primera convolución obtendrá N_1xM_1xk_1, por lo que su imagen después de la primera convolución tendrá k_1 canales. La nueva dimensión N_1 y M_1 dependerá de su zancada S y relleno P: N_1 = (N - 3 + 2P) / S + 1, calcula M_1 en analogía. Para la primera capa conv tendrá 3x3xk_1 + k_1 pesos. Se agrega k_1 para sesgos en la función no lineal.

En la segunda capa tiene una imagen de entrada con tamaño N_1xM_1xk_1, donde k_1 es un nuevo número de canales. Y después de la segunda convolución, obtiene la imagen (matriz) N_2xM_2xk_2 Tiene 5x5xk_2xk_1 + k_2 parámetros en la segunda capa.

Para una convolución 1x1 con filtros k_3 y entrada NxMxC (C es el número de canales de entrada) obtendrá una nueva imagen (matriz) NxMxk_3, por lo que 1x1 tiene sentido. Fueron presentados en este documento

Bono 1: la agrupación se aplica por mapa de características.

Para obtener más información, consulte las diapositivas del curso CNN en Stanford: tiene una buena visualización de cómo se resume la convolución desde varios canales de entrada.

pplonski
fuente
2
Se desaconsejan las respuestas de solo enlace: los enlaces pueden dejar de funcionar. ¿Puedes incluir información relevante en línea?
Sean Owen
1
La visualización fue realmente útil. Mi momento de epifanía fue cuando me di cuenta de que los filtros son 3D y no 2D.
kmace
1
Grandes enlaces, arregla cosas para mí. Pero su respuesta parece inconsistente con lo que se dice en los enlaces, específicamente en la capa conv. 2, cada campo receptivo es 3D con dimensiones 5x5xk_1, por lo que el número de parámetros debe ser 5 * 5 * k_1 * k_2 (más sesgo).
Daniel Schlaug
@DanielSchlaug tienes razón, corrigí la respuesta.
pplonski
1

k1331k1

k255k1k2

Es decir, los núcleos en una capa convolucional abarcan la profundidad de la salida de la capa anterior.

1×1kn11kn1

Especulación:

La pregunta extra 2 no es algo con lo que estoy familiarizado, pero supongo que el parámetro de profundidad en la convolución se convierte en una dimensión adicional.

mnknmnkn+1kn

Geometrikal
fuente