¿Qué son exactamente las redes neuronales de convolución y en qué se diferencian en funcionalidad y rendimiento de las NN normales?

Las redes neuronales de convolución son modificaciones de los perceptrones multicapa y hacen uso de una fuerte correlación espacial espacial al imponer un patrón de conectividad local. En CNN, divide la imagen completa en subimágenes (como explica Luis Argerich), preferiblemente sin superposición, también conocida como Max Pooling, y obtiene un mapa de características (unidades replicadas que tienen el mismo peso y sesgo vectorial) aplicando una función lineal a través de subimágenes (de ahí el nombre de convolución, como por convolución de la imagen de entrada con filtro lineal), luego se adjunta el sesgo y se pasa a través de una función no lineal.
Las principales ventajas de las CNN son:
> Muy poco procesamiento previo frente a otros modelos NN para el reconocimiento de imágenes y el autodescubrimiento de filtros por redes elimina la necesidad de conocimiento previo (hasta cierto punto)
> Dado que se aplica el mismo filtro a todas las subimágenes en la capa de convolución, el requisito de memoria es bastante menor y se sabe que mejora el rendimiento.
> Las tasas de error son bastante bajas en las CNN, el desafío para las imágenes más grandes parece haberse superado en gran medida y el rendimiento de las CNN en las pruebas de ImageNet está cerca de los humanos. Página en unc.edu

Imaginemos que tiene una imagen en escala de grises de 8 × 8 en un solo canal, y supongamos que desea construir un NN para detectar gatos. El NN aprenderá 64 pesos, uno para cada píxel y aplicará una función sigmoidea al resultado para decidir si su imagen es un gato o no.

Para imágenes más grandes, este enfoque tiene varios problemas, por ejemplo, que el número de pesos totales puede ser muy grande. No entraré en todos los demás problemas, pero hay mucho más que solo el rendimiento.

En una CNN, usted decide el tamaño de un campo receptivo y la cantidad de campos receptivos a utilizar. Por ejemplo, puede pensar en campos 2 × 2 y puede decidir utilizar n de estos como mapas de características. Digamos 3.

Por lo tanto, su imagen de 8 × 8 puede descomponerse en varios parches de 2 × 2, puede decidir si los superpone o no y el paso entre parches. Digamos que usamos parches no superpuestos, por lo que cada imagen de 8 × 8 tiene 4 bloques de 2 × 2 píxeles.

Desde que decidimos usar 3 mapas de características. Luego tendremos 3 matrices de 2 × 2, cada una de estas matrices de 2 × 2 se conectará a los 4 bloques de 2 × 2 en la imagen. En otras palabras, cada bloque 2 × 2 compartirá los mismos pesos para un mapa / filtro de características dado / lo que sea.

Entonces, en lugar de aprender una matriz de pesos 8 × 8, aprendemos 3 matrices 2 × 2. Cada una de estas matrices 2 × 2 puede pensarse como una matriz de convolución y es por eso que llamamos a estas redes redes convolucionales.
Cada una de estas características / matrices aprenderá a reconocer diferentes cosas en la imagen, como bordes, bordes verticales, bordes horizontales, diagonales, etc.

Combinando varios niveles de estos, aprenderá características más avanzadas y ese es el poder de una CNN.

He tratado de mantener mi explicación al mínimo para dejar claro el concepto, hay mucho más que decir y para eso recomiendo estos videos, ya que son muy simples y fáciles de seguir, pero explican los temas de manera completa:

Espero que esto te ayude a comenzar.
Luis.

Convolución Las redes neuronales son diferentes de las NN regulares en la forma en que las neuronas de esta capa están conectadas con las neuronas de la capa siguiente.
En lugar de conectar cada neurona en esta capa a cualquier otra neurona en la siguiente capa como lo hace NN regular, las neuronas en la siguiente capa de convolución están conectadas solo a algunas neuronas (en lugar de todas) que son espacialmente locales.
-> ¿Por qué hacen eso?
Porque para capturar bordes pequeños, su filtro debe ser pequeño.
La mayoría de las capas de convolución se aplican en las capas iniciales de la red neuronal porque para capturar bordes que son muy pequeños (se denominan entidades de bajo nivel y son muy locales). recuerda los bordes de tu ojo o boca.
-> ¿Por qué tienen pesos compartidos?
por lo que cada capa de convolución tiene algo de x (depende de cómo lo arregles. principalmente se observa prácticamente) sin filtros. cada filtro intenta hacer algún trabajo: detectar algún tipo de borde.
por lo que se puede usar el mismo filtro para detectar el mismo tipo de borde en toda la imagen. (el filtro es pequeño)
así que copia los pesos del filtro pequeño en todo el filtro grande. entonces el filtro grande detectará el mismo tipo de bordes a través del cálculo paralelo. (filtro completo aplicado a la imagen en una pasada).
A medida que avanza a las capas de nivel superior en su red, sus filtros procesarán información (características) de nivel superior.
-> ¿Por qué no usar capas de convolución completas en lugar de algunas capas completamente conectadas en su red?
porque después de las capas de convolución calculan las características, cada característica tendrá algo que decir sobre el objeto que se predice. Aquí las conexiones no deben ser locales.
porque si haces eso, perderás algunas características que son responsables de la clasificación.

Las redes neuronales regulares usan solo capas completamente conectadas.

Espero haber explicado la diferencia entre capas de convolución y capas completamente conectadas y NN regular.

Grados de libertad (o menos formalmente, “número de parámetros”) es la principal diferencia.

En cualquier red neuronal, queremos que las capas inferiores realicen operaciones de bajo nivel en la entrada, y que las capas superiores realicen operaciones más abstractas y de alto nivel.

¿Qué sucede si su entrada es una imagen y dice que desea clasificar si la imagen es un gato o un perro?

Una manera ingenua es codificar cada píxel como una entrada (aplanar la imagen) y alimentarlo en un NN completamente conectado como una entrada dimensional muy alta.

Eso no suele funcionar demasiado bien, porque tiene un número astronómico de grados de libertad, lo que significa que necesita un número astronómico de ejemplos de entrenamiento y una cantidad astronómica de tiempo para entrenar la red.

Las CNN mejoran esto explotando 2 observaciones: las características de bajo nivel son probablemente locales, y si algo es útil para una parte de la imagen, probablemente también sea útil para otras partes de la imagen.

Por ejemplo, una operación de bajo nivel podría ser calcular gradientes o detectar aristas. Ambas son operaciones locales, y probablemente sean útiles en cualquier lugar de la imagen.

En los CNN 2D, organizamos los nodos en cada capa en 2D (las mismas dimensiones que las imágenes de entrada *), y cada nodo solo está conectado a los nodos en una pequeña ventana que rodea el nodo en la misma ubicación en las imágenes de la capa anterior.

Por ejemplo, si su imagen de entrada es 10 × 10, y la segunda capa también es 10 × 10, cada nodo en la segunda capa solo se conectaría a, por ejemplo, nodos en una ventana de 3 × 3 que rodea el píxel en la imagen de entrada en la misma coordenada Esto reduce significativamente el DOF.

No solo eso, para cualquier capa de nodos, todos tienen el mismo conjunto de pesos (para cada nodo en la pequeña ventana de la imagen de entrada). Esto nuevamente reduce significativamente el DOF.

En una CNN típica, habría múltiples mapas 2D por capa. Cada uno realiza una operación local en las imágenes de entrada y genera nuevas imágenes.

Cada capa aprendería características cada vez más abstractas, simplemente calculando una convolución de imágenes en la capa anterior.

Usualmente usamos algunas capas completamente conectadas al final para codificar información dependiente de la posición, y también más cosas globales.

(Puede observar que cada mapa es esencialmente una convolución de las imágenes de entrada, con un núcleo aprendido, por eso se llaman CNN)

* a menos que esté haciendo una agrupación máxima, en cuyo caso también reduciría la escala

Para ser directo, CNN es una metodología para estudiar las imágenes y sus datos de píxeles.

Una imagen se convierte en una matriz donde cada celda representa un valor. Luego, se aplican filtros para buscar características de una imagen. Las características pueden incluir bordes. Luego, el tamaño de la imagen se reduce agrupando la capa. Después de agrupar la capa, se pasa a través de la función de activación como RELU (unidades lineales rectificadas)

Es una función de activación que decide el valor final de una neurona. Luego aplicamos una capa de abandono para eliminar aleatoriamente algunas neuronas para evitar el sobreajuste.

Luego se aplica una capa densa para conectar todas las neuronas donde cada neurona da una probabilidad de precisión de la imagen.

Es una explicación un poco larga. Puedes visitar aqui

HelloCodings: Redes neuronales convolucionales I

Comience desde el enlace de arriba y siga con cada publicación. Lo han explicado bien

Buena suerte

Las circunvoluciones son básicamente pesos compartidos.
Para el procesamiento de imágenes, todos los píxeles son de alguna manera “iguales”, por lo que tiene sentido compartir todos los pesos de neuronas correspondientes a la misma característica y desplazamiento local.

Esto puede ser bastante técnico: LayerParams – cuda-convnet2 – Cómo especificar una arquitectura de red neuronal. – Redes neuronales convolucionales rápidas en C ++ / CUDA – Google Project Hosting pero muestra cómo se configuran las convoluciones.

Las redes neuronales convolucionales (CNN) utilizan una matriz de convolución de la programación de gráficos para transformar una imagen y resaltar las características de la imagen. Las capas reducen progresivamente la imagen y resaltan y agregan las características.

Las matrices de convolución en gráficos se utilizan para detectar bordes, nitidez, desenfoque y muchas otras operaciones básicas.

En términos de redes neuronales, imita las matrices de convolución de los gráficos utilizando un sistema de “pesos compartidos”. Cada peso conecta múltiples pares de entradas y salidas en su capa y representa uno de los valores en una matriz de convolución.

Una capa generalmente incluirá múltiples matrices de pesos y una red generalmente incluirá múltiples capas. La CNN también puede incluir capas “reductoras” entre capas de convolución que reducen la imagen más rápido promediando un grupo de píxeles juntos.

La red neuronal convolucional utiliza la combinación sofisticada de red neuronal regular (pequeña), capa convolucional y agrupación. El tutorial disponible en el enlace: Tutoriales interactivos – Niraj contiene una explicación interactiva de la funcionalidad y estructura de la Red neuronal convolucional. Esto eliminará la combinación de todos los hechos discutidos anteriormente. También demuestra la red neuronal convoluncional a través de un ejemplo de entrenamiento interactivo.

Enlace: Tutoriales interactivos – Niraj

More Interesting

¿Cómo es tener a Daphne Koller o Andrew Ng como su asesor de investigación?

¿Se puede usar IT / AI para rastrear toda la información sobre armas y propietarios de armas?

¿Jack Ma tiene razón al decir que la IA causará más dolor social que beneficios en los próximos 30 años?

¿Qué videojuego ha desarrollado el sistema de inteligencia artificial más avanzado?

¿Qué tipo de problemas legales y de propiedad intelectual ve que enfrentan las empresas de inteligencia artificial en los próximos 5 años?

¿Cuál es un buen seguimiento del curso introductorio Coursera Machine Learning de Andrew NG (Coursera)? ¿Qué cursos ayudan a uno a dominar el aprendizaje automático?

¿Los hackers malignos utilizan el aprendizaje automático para actividades de piratería criminal?

¿Alguien puede sugerir proyectos creativos u orientados a la investigación utilizando inteligencia artificial?

Si alguien hizo el código para un AGI a nivel humano disponible en Internet en este momento (en 2017) que se ejecutó en una sola PC de escritorio, ¿cómo afectaría eso al mundo?

¿Qué opinas del aprendizaje por refuerzo? ¿Sería el próximo 'milagro' como el aprendizaje profundo?

¿Qué es más prometedor entre el aprendizaje automático y el aprendizaje profundo?

¿Podemos formar amistades con los árboles? ¿Cómo pueden los árboles mejorar la salud mental?

¿Cómo se relaciona el aprendizaje automático con el procesamiento de señales?

¿AI hará una nueva revolución industrial con todas sus consecuencias económicas, sociales y políticas? ¿Cómo?

¿Qué red neuronal es mejor para el reconocimiento facial: propagación hacia atrás o red neuronal recurrente?