Introducción a la agrupación de capas en CNN: hacia la IA

Estás leyendo la publicación: Introducción a la agrupación de capas en CNN: hacia la IA

Publicado originalmente en Hacia la IA, la empresa líder mundial en noticias y medios de IA y tecnología. Si está creando un producto o servicio relacionado con la IA, lo invitamos a considerar convertirse en patrocinador de la IA. En Hacia la IA, ayudamos a escalar las empresas emergentes de IA y tecnología. Permítanos ayudarlo a dar rienda suelta a su tecnología a las masas.

Una red neuronal convolucional (CNN) es un tipo especial de red neuronal artificial que generalmente se usa para el reconocimiento y procesamiento de imágenes debido a su capacidad para reconocer patrones en imágenes. Elimina la necesidad de extraer características de los datos visuales manualmente. Aprende imágenes deslizando un filtro de cierto tamaño sobre ellas y aprendiendo no solo las características de los datos, sino que también mantiene la invariancia de la traducción.

La estructura típica de una CNN consta de tres capas básicas

  1. Capa convolucional: estas capas generar un mapa de características deslizando un filtro sobre la imagen de entrada y reconociendo patrones en las imágenes.
  2. Agrupación de capas: estas capas reducir la muestra del mapa de características para introducir la invariancia de la traducción, que reduce el sobreajuste del modelo CNN.
  3. Capa densa completamente conectada: Esta capa contiene la mismo número de unidades que el número de clases y la función de activación de salida como “softmax” o “sigmoid”

¿Qué son las capas de agrupación?

Las capas de agrupación son uno de los componentes básicos de las redes neuronales convolucionales. Donde Capas convolucionales extraer características a partir de imágenes, Agrupación de capas consolidar las características aprendido por las CNN. Su propósito es reducir gradualmente la dimensión espacial de la representación para minimizar el número de parámetros y cálculos en la red.

¿Por qué se necesitan capas de agrupación?

El mapa de características producido por los filtros de las capas convolucionales depende de la ubicación. Por ejemplo, si un objeto en una imagen se ha desplazado un poco, es posible que la capa Convolucional no lo reconozca. Entonces, significa que el mapa de características registra las posiciones precisas de las características en la entrada. Lo que proporcionan las capas de agrupación es “Invariancia traslacional” que hace que la CNN sea invariable a las traducciones, es decir, incluso si se traduce la entrada de la CNN, la CNN aún podrá reconocer las características en la entrada.

🔥 Recomendado:  Cómo transferir de Robinhood a Coinbase

En todos los casos, la agrupación ayuda a que la representación se vuelva aproximadamente invariable a pequeñas traducciones de la entrada. La invariancia a la traducción significa que si traducimos la entrada en una pequeña cantidad, los valores de la mayoría de las salidas agrupadas no cambian: página 342, Deep Learning de Ian Goodfellow, 2016.

¿Cómo logran eso las capas de agrupación? Se agrega una capa de agrupación después de la(s) capa(s) convolucional(es), como se ve en la estructura de una CNN anterior. Reduce la muestra de la salida de las capas convolucionales deslizando el filtro de algún tamaño con algún tamaño de paso y calculando el máximo o el promedio de la entrada.

Hay dos tipos de agrupaciones que se utilizan:

  1. Agrupación máxima: Esto funciona seleccionando el valor máximo de cada grupo. Max Pooling conserva la más prominente características del mapa de características y la imagen devuelta es más nítida que la imagen original.
  2. Agrupación promedio: Esta capa de agrupación funciona obteniendo el promedio de la agrupación. La agrupación promedio conserva el valores promedio de características del mapa de características. Suaviza la imagen mientras mantiene la esencia de la función en una imagen.

Exploremos el funcionamiento de Pooling Layers usando TensorFlow. Crea una matriz NumPy y dale nueva forma.

matriz=np.matriz([[3.,2.,0.,0.],
[0.,7.,1.,3.],
[5.,2.,3.,0.],
[0.,9.,2.,3.]]).reformar(1,4,4,1)

Agrupación máxima

Cree una capa MaxPool2D con pool_size=2 y strides=2. Aplique la capa MaxPool2D a la matriz y obtendrá la salida MaxPooled en forma de tensor. Al aplicarlo a la matriz, la capa de agrupación máxima atravesará la matriz calculando el máximo de cada agrupación de 2 × 2 con un salto de 2. Imprime la forma del tensor. Use tf.squeeze para eliminar dimensiones de tamaño 1 de la forma de un tensor.

🔥 Recomendado:  Aprendizaje de refuerzo profundo para el comercio de criptomonedas: práctico… – Hacia la IA

max_pooling=tf.keras.layers.MaxPool2D(pool_size=2,zancadas=2)
max_pooled_matrix=max_pooling(matriz)
imprimir (max_pooled_matrix.shape)
imprimir (tf.squeeze (max_pooled_matrix))

Agrupación promedio

Cree una capa AveragePooling2D con los mismos 2 pool_size y zancadas. Aplique la capa AveragePooling2D a la matriz. Al aplicarlo a la matriz, la capa de agrupación promedio atravesará la matriz calculando el promedio de 2 × 2 para cada grupo con un salto de 2. Imprima la forma de la matriz y use tf.squeeze para convertir la salida en un forma legible eliminando todas las dimensiones de 1 tamaño.

Average_pooling=tf.keras.layers.AveragePooling2D(pool_size=2,
pasos = 2)
promedio_agrupado_matriz=promedio_agrupado(matriz)
imprimir (promedio_agrupado_matriz.forma)
imprimir (tf.squeeze (matriz_agrupada_promedio))

El GIF aquí explica cómo estas capas de agrupación pasan por la matriz de entrada y calcula el máximo o el promedio para la agrupación máxima y la agrupación promedio, respectivamente.

Capas de agrupación global

Las capas de agrupación global a menudo reemplazan la capa totalmente conectada o aplanada del clasificador. En cambio, el modelo termina con una capa convolucional que produce tantos mapas de características como clases de destino y realiza una agrupación promedio global en cada uno de los mapas de características para combinar cada mapa de características en un solo valor.

Cree la misma matriz NumPy pero con una forma diferente. Al mantener la misma forma que arriba, las capas de Agrupación global las reducirán a un valor.

matriz=np.matriz([[[3.,2.,0.,0.],
[0.,7.,1.,3.]],
[[5.,2.,3.,0.],
[0.,9.,2.,3.]]]).reformar(1,2,2,4)

Agrupación promedio global

Considerando un tensor de forma h*w*nla salida de la capa Global Average Pooling es un valor único en h*w que resume la presencia de la característica. En lugar de reducir el tamaño de los parches del mapa de características de entrada, la capa Global Average Pooling reduce el tamaño de todo h*w en 1 valor tomando el promedio.

🔥 Recomendado:  ¿Un nuevo BLOOM en IA? Por qué el modelo BLOOM puede cambiar las reglas del juego: hacia la IA

global_average_pooling=tf.keras.layers.GlobalAveragePooling2D()
global_average_pooled_matrix=global_average_pooling(matriz)
imprimir (global_average_pooled_matrix)

Agrupación máxima global

Con el tensor de forma h*w*nla salida de la capa Global Max Pooling es un valor único en h*w que resume la presencia de una característica. En lugar de reducir el tamaño de los parches del mapa de características de entrada, la capa Global Max Pooling reduce el tamaño de todo h*w en 1 valor tomando el máximo.

global_max_pooling=tf.keras.layers.GlobalMaxPool2D()
global_max_pooled_matrix=global_max_pooling(matriz)
imprimir (global_max_pooled_matrix)

Conclusión

En general, las capas de agrupación son útiles cuando desea detectar un objeto en una imagen independientemente de su posición en la imagen. La consecuencia de agregar capas de agrupación es la reducción del sobreajuste, una mayor eficiencia y tiempos de entrenamiento más rápidos en un modelo de CNN. Mientras que la capa de agrupación máxima destaca las características más destacadas de una imagen, la agrupación promedio suaviza la imagen conservando la esencia de sus características. Las capas de agrupación global a menudo reemplazan las capas de salida Flatten o Dense.

Leer API de capas de agrupación de Keras y el Capítulo 5 de Deep Learning with Python de François Chollet para obtener información detallada. Además, verifique Explicador de CNN para una explicación intuitiva de un modelo CNN.


Introducción a la agrupación de capas en CNN se publicó originalmente en Hacia la IA en Medium, donde las personas continúan la conversación resaltando y respondiendo a esta historia.

Publicado a través de Hacia la IA