Red neuronal convolucional

Una  red neuronal convolucional ( CNN ) es una arquitectura especial de redes neuronales artificiales propuesta por Jan LeCun en 1988 [1] y dirigida al reconocimiento eficiente de patrones [2] , forma parte de las tecnologías de aprendizaje profundo  ( deep learning ). Utiliza algunas características de la corteza visual [3] , en la que se han descubierto las llamadas células simples que reaccionan a las líneas rectas en diferentes ángulos, y células complejas, cuya reacción está asociada con la activación de un determinado conjunto de células simples. . Por lo tanto, la idea de las redes neuronales convolucionales es intercalar capas convolucionales ( ing.  capas de convolución ) y capas de submuestreo ( ing.  capas de submuestreo o ing. capas de  agrupación, capas de submuestra). La estructura de la red es unidireccional (sin retroalimentación), fundamentalmente multicapa. Para el entrenamiento, se utilizan métodos estándar, con mayor frecuencia el método de retropropagación . La función de activación de las neuronas (función de transferencia) es cualquiera, a elección del investigador.

El nombre de la arquitectura de red se debió a la presencia de la operación de convolución , cuya esencia es que cada fragmento de imagen se multiplica elemento por elemento por la matriz de convolución (núcleo), y el resultado se suma y se escribe en una posición similar en la imagen de salida.

Interpretación

El funcionamiento de una red neuronal convolucional generalmente se interpreta como pasar de características específicas de una imagen a detalles más abstractos, y luego a detalles aún más abstractos hasta la extracción de conceptos de alto nivel. Al mismo tiempo, la red se autoajusta y desarrolla la jerarquía necesaria de características abstractas (secuencias de mapas de características) por sí misma, filtrando detalles sin importancia y destacando lo esencial.

Tal interpretación es más bien metafórica o ilustrativa. De hecho, las “características” producidas por una red compleja son tan oscuras y difíciles de interpretar que en la práctica ni siquiera intentan comprender la esencia de estas características, mucho menos “correctas”, sino mejorar los resultados del reconocimiento, cambian la estructura y la arquitectura de la red. Por lo tanto, ignorar algunos fenómenos significativos por parte del sistema puede indicar que no hay suficientes datos para el entrenamiento o que la estructura de la red tiene fallas y el sistema no puede desarrollar características efectivas para estos fenómenos.

Arquitectura y principio de funcionamiento

En un perceptrón ordinario , que es una red neuronal completamente conectada, cada neurona está conectada a todas las neuronas de la capa anterior, y cada conexión tiene su propio coeficiente de peso personal. En una red neuronal convolucional, la operación de convolución usa solo una matriz de peso limitado de tamaño pequeño, que se "mueve" sobre toda la capa procesada (al principio, directamente sobre la imagen de entrada), formando después de cada cambio una señal de activación para la neurona de la siguiente capa con una posición similar. Es decir, se utiliza la misma matriz de peso para diferentes neuronas de la capa de salida, que también se denomina núcleo de convolución . Se interpreta como una codificación gráfica de alguna característica, por ejemplo, la presencia de una línea oblicua en un cierto ángulo. Luego, la siguiente capa, resultante de la operación de convolución con dicha matriz de peso, muestra la presencia de esta característica en la capa procesada y sus coordenadas, formando el llamado mapa de características .  Naturalmente, en una red neuronal convolucional, no hay un conjunto de pesos, sino una gama completa que codifica elementos de imagen (por ejemplo, líneas y arcos en diferentes ángulos). Al mismo tiempo, el investigador no establece dichos núcleos de convolución de antemano, sino que se forman de forma independiente entrenando la red utilizando el método clásico de propagación inversa de errores . Pasar cada conjunto de pesos genera su propia instancia de mapa de características, lo que hace que la red neuronal sea multicanal (muchos mapas de características independientes en una capa). También se debe tener en cuenta que cuando se itera sobre una capa con una matriz de peso, generalmente no se mueve un paso completo (el tamaño de esta matriz), sino una pequeña distancia. Entonces, por ejemplo, cuando la dimensión de la matriz de peso es 5 × 5, se desplaza una o dos neuronas (píxeles) en lugar de cinco, para no "pasar por alto" la característica deseada.

La operación de submuestreo ( eng.  subsampling , eng.  pooling , también traducida como "operación de submuestreo" u operación de agrupación), realiza una reducción en la dimensión de los mapas de características generados. En esta arquitectura de red, se considera que la información sobre el hecho de la presencia de la característica deseada es más importante que el conocimiento exacto de sus coordenadas, por lo tanto, de varias neuronas vecinas del mapa de características, se selecciona la máxima y se toma como una neurona del mapa de características compactado de una dimensión más pequeña. Debido a esta operación, además de acelerar los cálculos posteriores, la red se vuelve más invariable a la escala de la imagen de entrada.

Considere la estructura típica de una red neuronal convolucional con más detalle. La red consta de un gran número de capas. Después de la capa inicial (imagen de entrada), la señal pasa a través de una serie de capas convolucionales, en las que se alternan la propia convolución y el submuestreo (agrupación). La alternancia de capas le permite crear "mapas de funciones" a partir de mapas de funciones; en cada capa siguiente, el mapa disminuye de tamaño, pero aumenta el número de canales. En la práctica, esto significa la capacidad de reconocer jerarquías de funciones complejas. Por lo general, después de pasar por varias capas, el mapa de características degenera en un vector o incluso en un escalar, pero hay cientos de mapas de características de este tipo. A la salida de las capas convolucionales de la red, se instalan adicionalmente varias capas de una red neuronal completamente conectada (perceptrón), a cuya entrada se alimentan los mapas de características finales.

Capa de convolución

La capa convolucional es el bloque principal de una red neuronal convolucional .  La capa de convolución incluye su propio filtro para cada canal, cuyo núcleo de convolución procesa la capa anterior fragmento por fragmento (sumando los resultados del producto por elementos para cada fragmento). Los pesos del kernel de convolución (matriz pequeña) son desconocidos y se establecen durante el entrenamiento.

Una característica de la capa convolucional es un número relativamente pequeño de parámetros que se establecen durante el entrenamiento. Entonces, por ejemplo, si la imagen original tiene una dimensión de 100x100 píxeles en tres canales (lo que significa 30 000 neuronas de entrada), y la capa convolucional usa filtros con un kernel de 3x3 píxeles con una salida de 6 canales, entonces solo se determinan 9 pesos de kernel en el proceso de aprendizaje, sin embargo, para todas las combinaciones de canales, es decir, 9 × 3 × 6 = 162, en este caso, esta capa requiere encontrar solo 162 parámetros, que es significativamente menor que la cantidad de parámetros requeridos de un completamente conectado red neuronal

Capa de activación

El resultado escalar de cada convolución recae sobre la función de activación , que es una especie de función no lineal. La capa de activación suele combinarse lógicamente con la capa de convolución (se considera que la función de activación está integrada en la capa de convolución). La función de no linealidad puede ser cualquiera a elección del investigador, tradicionalmente se utilizaban para ello funciones como la tangente hiperbólica ( , ) o la sigmoidea ( ). Sin embargo, en la década de 2000, se propuso una nueva función de activación [4] y se estudió [5] - ReLU (abreviatura de unidad lineal rectificada en inglés ), que permitió acelerar significativamente el proceso de aprendizaje y al mismo tiempo simplificar los cálculos (debido a la simplicidad de la función en sí) [6] , lo que significa el bloque de rectificación lineal que calcula la función . Es decir, en esencia, esta es una operación de cortar la parte negativa de un valor escalar. A partir de 2017, esta función y sus modificaciones (Noisy ReLU, Leaky ReLU y otras) son las funciones de activación más utilizadas en las redes neuronales profundas, en particular, en las convolucionales. Existe un método para determinar el número óptimo de bloques de rectificación lineal [7] .  

Capa de agrupación o submuestreo

La capa de agrupación (de lo contrario, submuestreo, submuestreo) es una compactación no lineal de un mapa de características, mientras que un grupo de píxeles (generalmente de 2 × 2 de tamaño) se compacta en un píxel, experimentando una transformación no lineal. En este caso, la función máxima es la más utilizada. Las transformaciones afectan a rectángulos o cuadrados que no se superponen, cada uno de los cuales se comprime en un píxel y se selecciona el píxel con el valor máximo. La operación de agrupación puede reducir significativamente el volumen espacial de la imagen. La agrupación se interpreta de la siguiente manera: si algunas características ya se identificaron durante la operación de convolución anterior, entonces ya no se necesita una imagen tan detallada para un procesamiento posterior y se compacta en una imagen menos detallada. Además, filtrar detalles innecesarios ayuda a no volver a entrenar . La capa de agrupación generalmente se inserta después de la capa de convolución antes de la siguiente capa de convolución.

Además de la agrupación con una función máxima, se pueden usar otras funciones, por ejemplo, el valor promedio o la normalización L2 . Sin embargo, la práctica ha demostrado las ventajas de agrupar con la función máxima, que se incluye en los sistemas típicos.

Con el fin de reducir más agresivamente el tamaño de las representaciones resultantes, las ideas de usar filtros más pequeños [8] o la eliminación completa de las capas de agrupación son cada vez más populares . [9]

Red neuronal completamente conectada

Después de varias pasadas de convolución de imágenes y compresión de agrupación, el sistema se reconstruye a partir de una cuadrícula de píxeles de alta resolución específica a mapas de características más abstractos, como regla general, en cada capa subsiguiente, la cantidad de canales aumenta y la dimensión de la imagen en cada canal disminuye. . Al final, lo que queda es un gran conjunto de canales que almacenan una pequeña cantidad de datos (incluso un solo parámetro), que se interpretan como los conceptos más abstractos revelados de la imagen original.

Estos datos se combinan y transmiten a una red neuronal convencional completamente conectada, que también puede constar de varias capas. Al mismo tiempo, las capas totalmente conectadas ya pierden la estructura espacial de los píxeles y tienen una dimensión relativamente pequeña (en relación con el número de píxeles de la imagen original).

Formación

La forma de aprendizaje más simple y popular es el método de aprendizaje con un maestro (en datos etiquetados): el método de propagación hacia atrás de un error y sus modificaciones. Pero también hay una serie de técnicas de aprendizaje no supervisado para una red convolucional. Por ejemplo, los filtros de operación de convolución se pueden entrenar por separado y de forma autónoma alimentándolos con piezas cortadas aleatoriamente de las imágenes originales de la muestra de entrenamiento y aplicando cualquier algoritmo de aprendizaje no supervisado conocido para ellos (por ejemplo, un autoasociador o incluso el método k-means). ) - esta técnica se conoce como entrenamiento basado en parches . En consecuencia, la siguiente capa de la convolución de la red se entrenará en piezas de la primera capa de la red ya entrenada. También es posible combinar una red neuronal convolucional con otras tecnologías de aprendizaje profundo . Por ejemplo, para hacer un autoasociador convolucional [10] , una versión convolucional de máquinas de Boltzmann limitadas en cascada que aprenden usando un aparato matemático probabilístico [11] , una versión convolucional de codificación dispersa ( ing.  codificación dispersa ), denominada redes deconvolucionales ( “desplegar” redes) [12 ] .

Para mejorar el rendimiento de la red, aumentar su estabilidad y evitar el sobreajuste , también se utiliza una excepción (abandono): un método de entrenamiento de subred con la expulsión de neuronas individuales aleatorias.

Beneficios

Desventajas

Notas

  1. Y. LeCun, B. Boser, JS Denker, D. Henderson, RE Howard, W. Hubbard y LD Jackel: Retropropagación aplicada al reconocimiento de códigos postales escritos a mano, Neural Computation, 1(4):541-551, invierno de 1989.
  2. Redes neuronales convolucionales (LeNet): documentación de DeepLearning 0.1 . Aprendizaje profundo 0.1 . Laboratorio LISA. Consultado el 31 de agosto de 2013. Archivado desde el original el 28 de diciembre de 2017.
  3. Matusugu, Masakazu; Katsuhiko Mori; Yusuke Mitari; Yuji Kaneda. Reconocimiento de expresiones faciales independientes del sujeto con detección robusta de rostros utilizando una red neuronal convolucional  //  Redes neuronales: revista. - 2003. - vol. 16 , núm. 5 . - Pág. 555-559 . - doi : 10.1016/S0893-6080(03)00115-1 . Archivado desde el original el 13 de diciembre de 2013.
  4. R Hahnloser, R. Sarpeshkar, M. A. Mahowald, R. J. Douglas, H. S. Seung (2000). La selección digital y la amplificación analógica coexisten en un circuito de silicio inspirado en la corteza . naturaleza _ 405 . páginas. 947-951.
  5. Xavier Glorot, Antoine Bordes y Yoshua Bengio (2011). Redes neuronales de rectificador disperso profundo (PDF) . AISTATS. Archivado (PDF) desde el original el 13 de diciembre de 2016 . Consultado el 29 de diciembre de 2017 . Parámetro obsoleto utilizado |deadlink=( ayuda )
  6. Vinod Nair y Geoffrey Hinton (2010). Las unidades lineales rectificadas mejoran las máquinas Boltzmann restringidas (PDF) . ICML . Archivado desde el original (PDF) el 24 de marzo de 2014 . Consultado el 22 de diciembre de 2016 . Parámetro obsoleto utilizado |deadlink=( ayuda ) Archivado el 24 de marzo de 2014 en Wayback Machine .
  7. Romanuke, Vadim. Número apropiado y asignación de ReLU en redes neuronales convolucionales  (inglés)  // Boletín de investigación de NTUU "Instituto Politécnico de Kiev": revista. - 2017. - Vol. 1 . - P. 69-78 . -doi : 10.20535 / 1810-0546.2017.1.88156 . Archivado desde el original el 18 de febrero de 2019.
  8. Graham, Benjamin (2014-12-18), Max-Pooling fraccional, arΧiv : 1412.6071 [cs.CV]. 
  9. Springenberg, Jost Tobias; Dosovitsky, Alexey; Brox, Thomas y Riedmiller, Martin (2014-12-21), Luchando por la simplicidad: la red totalmente convolucional, arΧiv : 1412.6806 [cs.LG]. 
  10. Jain, V. y Seung, SH (2008). Eliminación de ruido de imágenes naturales con redes convolucionales. En NIPS'2008.
  11. Lee, H., Grosse, R., Ranganath, R. y Ng, AY (2009a). Redes de creencias profundas convolucionales para el aprendizaje escalable no supervisado de representaciones jerárquicas. En ICML'2009.
  12. Zeiler, M., Krishnan, D., Taylor, G. y Fergus, R. (2010). redes deconvolucionales. En CVPR'2010.

Enlaces