¿Qué es una explicación intuitiva de las redes neuronales convolucionales?

(Tomado de: Algobeans – Tutoriales Layman en Analytics )

Las redes neuronales, como su nombre lo indica, es una técnica de aprendizaje automático que se basa en la estructura del cerebro. Se compone de una red de unidades de aprendizaje llamadas neuronas. Estas neuronas aprenden cómo convertir las señales de entrada (por ejemplo, la imagen de un gato) en las señales de salida correspondientes (por ejemplo, la etiqueta “gato”), formando la base del reconocimiento automático.

Tomemos el ejemplo del reconocimiento automático de imágenes. El proceso de determinar si una imagen contiene un gato implica una función de activación . Si la imagen se parece a imágenes de gatos anteriores que las neuronas han visto antes, se activaría la etiqueta “gato”. Por lo tanto, cuantas más imágenes etiquetadas estén expuestas las neuronas, mejor aprenderá a reconocer otras imágenes no etiquetadas. Llamamos a esto el proceso de entrenamiento de neuronas. (Para obtener una explicación detallada, consulte nuestro tutorial sobre Redes neuronales artificiales).

La inteligencia de las redes neuronales es asombrosa. Si bien las redes neuronales artificiales fueron investigadas a principios de la década de 1960 por Rosenblatt, fue solo a fines de la década de 2000 cuando despegó el aprendizaje profundo utilizando redes neuronales. El habilitador clave fue la escala del poder de cómputo y los conjuntos de datos con la investigación pionera de Google en el aprendizaje profundo. En julio de 2012, los investigadores de Google expusieron una red neuronal avanzada a una serie de imágenes estáticas sin etiqueta recortadas de videos de YouTube. Para su sorpresa, descubrieron que la red neuronal aprendió una neurona detectora de gatos por sí sola, apoyando la afirmación popular de que “Internet está hecho de gatos”.

Una de las neuronas en la red neuronal artificial, entrenada a partir de cuadros fijos de videos de YouTube sin etiqueta, aprendió a detectar gatos. Imagen del blog de Google.

Modelo inspirado biológicamente

La técnica que utilizaron los investigadores de Google se llama Redes neuronales convolucionales (CNN), un tipo de red neuronal artificial avanzada. Se diferencia de las redes neuronales regulares en términos del flujo de señales entre las neuronas. Las redes neuronales típicas pasan señales a lo largo del canal de entrada-salida en una sola dirección, sin permitir que las señales vuelvan a la red. Esto se llama alimentación hacia adelante.

Si bien las redes de alimentación directa se emplearon con éxito para el reconocimiento de imágenes y texto, requirió que todas las neuronas estuvieran conectadas, lo que resultó en una estructura de red demasiado compleja. El costo de la complejidad aumenta cuando la red tiene que ser capacitada en grandes conjuntos de datos que, junto con las limitaciones de las velocidades de procesamiento de la computadora, dan como resultado tiempos de capacitación extremadamente largos. Por lo tanto, las redes de alimentación directa han caído en desuso del aprendizaje automático convencional en la era de los medios de comunicación de alta resolución y ancho de banda de hoy en día. Se necesitaba una nueva solución.

En 1986, los investigadores Hubel y Wiesel estaban examinando la corteza visual de un gato cuando descubrieron que su campo receptivo comprendía subregiones superpuestas para cubrir todo el campo visual. Estas capas actúan como filtros que procesan las imágenes de entrada, que luego se pasan a las capas posteriores. Esto resultó ser una forma más simple y más eficiente de transportar señales. En 1998, Yann LeCun y Yoshua Bengio intentaron capturar la organización de las neuronas en la corteza visual del gato como una forma de red neuronal artificial, estableciendo la base de la primera CNN.

CNN resumido en 4 pasos

Hay cuatro pasos principales en CNN: convolución, submuestreo, activación y conectividad total.

La implementación más popular de la CNN es LeNet, después de Yann LeCun. Las 4 capas clave de una CNN son Convolución, Submuestreo, Activación y Conexión total. Imagen cortesía: http://www.ais.uni-bonn.de/deep_…

Paso 1: convolución

Las primeras capas que reciben una señal de entrada se denominan filtros de convolución. La convolución es un proceso en el que la red intenta etiquetar la señal de entrada haciendo referencia a lo que ha aprendido en el pasado. Si la señal de entrada se parece a las imágenes de gato anteriores que ha visto antes, la señal de referencia de “gato” se mezclará con la señal de entrada o se combinará con ella. La señal de salida resultante se pasa a la siguiente capa.

Envolviendo a Wally con un filtro circular. El filtro circular responde fuertemente a los ojos.

La convolución tiene la agradable propiedad de ser invariante traslacional . Intuitivamente, esto significa que cada filtro de convolución representa una característica de interés (por ejemplo, bigotes, pelaje), y el algoritmo CNN aprende qué características comprenden la referencia resultante (es decir, cat). La intensidad de la señal de salida no depende de dónde se encuentran las características, sino simplemente de si las características están presentes. Por lo tanto, un gato podría estar sentado en diferentes posiciones, y el algoritmo CNN aún podría reconocerlo.

Paso 2: submuestreo

Las entradas de la capa de convolución se pueden “suavizar” para reducir la sensibilidad de los filtros al ruido y las variaciones. Este proceso de suavizado se llama submuestreo y se puede lograr tomando promedios o tomando el máximo sobre una muestra de la señal. Los ejemplos de métodos de submuestreo (para señales de imagen) incluyen reducir el tamaño de la imagen o reducir el contraste de color en los canales rojo, verde, azul (RGB).

Submuestreo Wally por 10 veces. Esto crea una imagen de menor resolución.

Paso 3: Activación

La capa de activación controla cómo fluye la señal de una capa a la siguiente, emulando cómo se activan las neuronas en nuestro cerebro. Las señales de salida que están fuertemente asociadas con referencias pasadas activarían más neuronas, permitiendo que las señales se propaguen más eficientemente para su identificación.

CNN es compatible con una amplia variedad de funciones de activación complejas para modelar la propagación de señales, siendo la función más común la Unidad lineal rectificada (ReLU) , que se ve favorecida por su mayor velocidad de entrenamiento.

Paso 4: completamente conectado

Las últimas capas de la red están completamente conectadas, lo que significa que las neuronas de las capas anteriores están conectadas a cada neurona en las capas posteriores. Esto imita el razonamiento de alto nivel donde se consideran todas las vías posibles desde la entrada hasta la salida.

(Durante el entrenamiento) Paso 5: Pérdida

Al entrenar la red neuronal, hay una capa adicional llamada capa de pérdida . Esta capa proporciona retroalimentación a la red neuronal sobre si identificó las entradas correctamente y, de no ser así, qué tan lejos estaban sus conjeturas. Esto ayuda a guiar la red neuronal para reforzar los conceptos correctos mientras se entrena. Esta es siempre la última capa durante el entrenamiento.

Implementación

Los algoritmos utilizados en el entrenamiento de CNN son análogos a estudiar para los exámenes con tarjetas flash. Primero, dibuja varias tarjetas y verifica si ha dominado los conceptos en cada tarjeta. Para tarjetas con conceptos que ya conoce, deséchelos. Para aquellas tarjetas con conceptos de los que no está seguro, vuelva a colocarlos en la pila. Repita este proceso hasta que esté bastante seguro de que conoce suficientes conceptos para que le vaya bien en el examen. Este método le permite enfocarse en conceptos menos familiares al volver a visitarlos con frecuencia. Formalmente, estos algoritmos se denominan algoritmos de descenso de gradiente para el aprendizaje de paso adelante. El algoritmo moderno de aprendizaje profundo utiliza una variación llamada descenso de gradiente estocástico , donde en lugar de dibujar las tarjetas de forma secuencial, las dibuja al azar. Si se dibujan temas similares en secuencia, los alumnos pueden sobreestimar qué tan bien conocen el tema. El enfoque aleatorio ayuda a minimizar cualquier forma de sesgo en el aprendizaje de temas.

Los algoritmos de aprendizaje requieren comentarios. Esto se hace usando un conjunto de validación donde la CNN haría predicciones y las compararía con las etiquetas verdaderas o la verdad fundamental. Las predicciones de los errores que se realizan se envían hacia atrás a la CNN para refinar los pesos aprendidos, en un llamado pase hacia atrás. Formalmente, este algoritmo se denomina retropropagación de errores y requiere que las funciones en la CNN sean diferenciables (casi).

Las CNN son demasiado complejas para implementar desde cero. Hoy en día, los profesionales del aprendizaje automático a menudo utilizan cajas de herramientas desarrolladas como Caffe, Torch, MatConvNet y Tensorflow para su trabajo.

Interpretación

Al igual que a veces nos resulta difícil racionalizar nuestros pensamientos, la CNN inspirada en el cerebro también es difícil de interpretar debido a su gran complejidad. Utiliza numerosos filtros, combinados de diferentes maneras, gobernados por varias funciones de activación. Sin embargo, recientemente se desarrolló una técnica para ayudarnos a observar cómo una red neuronal aprendió a reconocer señales.

(Imagen por cortesía: http://www.iro.umontreal.ca/~bengioy/talks/DL-Tutorial-NIPS2015.pdf )

La red neuronal DeConvolution , como su nombre lo indica, disecciona el progreso del entrenamiento en cada capa. Examina la primera capa de convolución, así como la última capa completamente conectada. La primera capa representa el conjunto de características con las que la CNN está familiarizada y determina cuáles son los objetos básicos (características de bajo nivel) que la CNN podría detectar. Por otro lado, la capa final representa qué tan bien se unen las características para formar conceptos: una separación más clara de conceptos implica que la red neuronal puede distinguir mejor entre diferentes conceptos sin confusión.

Conclusión

Convolutional Neural Net es una técnica popular de aprendizaje profundo para las tareas actuales de reconocimiento visual. Al igual que todas las técnicas de aprendizaje profundo, CNN depende mucho del tamaño y la calidad de los datos de capacitación. Dado un conjunto de datos bien preparado, las CNN son capaces de superar a los humanos en las tareas de reconocimiento visual. Sin embargo, todavía no son resistentes a los artefactos visuales, como el resplandor y el ruido, que los humanos pueden hacer frente. La teoría de la CNN aún se está desarrollando y los investigadores están trabajando para dotarla de propiedades como la atención activa y la memoria en línea, lo que permite a las CNN evaluar nuevos elementos que son muy diferentes de los que recibieron capacitación. Esto emula mejor el sistema visual de los mamíferos, avanzando así hacia un sistema de reconocimiento visual artificial más inteligente.

¿Aprendiste algo útil hoy? Echa un vistazo a Algobeans para obtener más tutoriales en ciencia de datos .

Término del laico:

Podría haber encontrado miles de personas u objetos en mi vida. ¿Pero cómo los recuerdo o, lo que es más importante, los diferencia?

Para comprender a la luz de la técnica de red neuronal convolucional, utilizo cinco propiedades de mi memoria: filtros, capas, conexión de eventos, submuestreo y clasificador.

Filtros:

Por lo general, recordamos personas u objetos a través de su asociación en algunos filtros como: escuelas, colegios, deportes, películas, departamentos, años, nacionalidad, idioma, colores de piel, edad, sexo, hábito, pasatiempo, discapacidad, etc.

Capas:

Estos filtros están representados en capas, como el filtro “Colegio” podría haberse compuesto con filtros de departamento, año y deportes. Además, el filtro “Deportes” se compone de tenis de mesa, cricket, fútbol, ​​hockey, etc. Cada capa aplica diferentes filtros, generalmente cientos o miles, y combina sus efectos para la creación de filtros para las capas superiores.

Conexiones de eventos:

Estos filtros están conectados a través de conexiones de eventos, donde cada evento de mi vida está conectado a personas u objetos respectivos, en forma de filtro, en capas en mi carril de memoria localmente.

Submuestreo:

También hay algo llamado submuestreo, donde la salida más fuerte del filtro se encontrará con los filtros de capa superior de nuestra memoria.

Clasificador:

El clasificador es la capa más alta, que utiliza características de alto nivel para clasificar personas u objetos.

Pero, la belleza de nuestro cerebro es que creamos dichos filtros a través de nuestra experiencia utilizando la técnica de filtrado mencionada anteriormente, que está disponible a priori. Dichos filtros no se insertan en nuestro cerebro, solo lo hacen las técnicas de filtrado.

Entonces, la disposición de dicha técnica de filtrado en nuestro cerebro, que finalmente obtuvimos a través de la raíz evolutiva, es similar a la disposición de red neuronal convolucional.

Red neuronal convolucional (CNN)

La propiedad principal de la red neuronal Convolution es crear tales capas múltiples de filtros a partir de un conjunto de entrenamiento de muestra. Durante el entrenamiento, una CNN aprende dichos filtros en función del trabajo dado. Por ejemplo, en un problema de detección de rostros, una CNN primero aprende a detectar bordes de píxeles en bruto de la cara en la capa inferior, y luego detecta formas simples en la siguiente capa, y luego detecta formas faciales, y así sucesivamente. Y finalmente, la capa clasificadora se usa para la identificación de caras.

Ejemplo:

Considere el siguiente problema para crear un Producto Quora especial, como: -Los usuarios escribirán pocas palabras y el Producto proporcionará preguntas similares disponibles en su base de datos.

  • Si el Producto solo coincide con palabras, mostrará todas las preguntas disponibles en la base de datos de Quora, donde dichas palabras coincidirán con las palabras de la pregunta.
  • Si el Producto está entrenado usando la técnica CNN, identificará temas y subtemas asociados con cada pregunta. Estos temas son similares a los filtros en la red CNN. Por lo tanto, la base de datos asistida por temas proporcionará un mejor servicio. Los temas no deben copiarse de Wikipedia; se debe aprender automáticamente a través de CNN de muchas preguntas y sus asociaciones disponibles en la base de datos.

Las redes neuronales pueden hacer predicciones al aprender la relación entre las características de sus datos y alguna respuesta observada (por ejemplo, cuál es el mejor momento para ir al supermercado para evitar largas colas).

En las redes neuronales (CNN) convolucionales (filtrado y codificación por transformación), cada capa de red actúa como un filtro de detección de la presencia de características o patrones específicos presentes en los datos originales. Las primeras capas en una CNN detectan características (grandes) que pueden reconocerse e interpretarse de manera relativamente fácil. Las capas posteriores detectan características cada vez más (más pequeñas) que son más abstractas (y generalmente están presentes en muchas de las características más grandes detectadas por las capas anteriores). La última capa de la CNN es capaz de hacer una clasificación ultra específica al combinar todas las características específicas detectadas por las capas anteriores en los datos de entrada.

En los últimos años, las redes neuronales de convolución profunda han logrado un rendimiento sin precedentes en el campo de la clasificación de imágenes y el reconocimiento de rostros y ubicaciones, por ejemplo. Estas redes utilizan muchas capas extendidas de neuronas (unidades de aprendizaje) para construir de forma autónoma representaciones cada vez más abstractas, muy locales y detalladas de una imagen.

Cada capa de red actúa como un filtro para la presencia de características o patrones específicos presentes en la imagen original. Para la detección mediante dicho filtro, es irrelevante dónde exactamente en la imagen original está presente esta característica o patrón específico: los filtros están especialmente diseñados para detectar si la imagen contiene o no tales características. El filtro se desplaza varias veces y se aplica en diferentes posiciones de la imagen hasta que se haya cubierto toda la imagen en detalle (el filtro puede corregir, si es necesario, por ejemplo, para escala, traslación, ángulo de rotación, color, transformación, opacidad, desenfoque, desviaciones de características específicas presentes en la imagen original).

Debido al éxito de las CNN en el campo de la clasificación de imágenes, en muchas áreas diferentes donde se aplican redes neuronales convolucionales para resolver problemas ultra complejos, a menudo los datos de entrada se traducen primero en datos de imágenes.

Espero que esto se aclare un poco, si está interesado en leer en términos simples cómo las redes neuronales convolucionales de aprendizaje profundo funcionan para AlphaGo (el programa Google DeepMind AI que juega Go superior): vea mi blog: Parte 2: AlphaGo bajo una lupa (El partido histórico de aprendizaje profundo AlphaGo vs. Lee Sedol) REVISADO

Las analogías intuitivas no hacen justicia a cómo funcionan las CNN, así que solo voy a explicar en términos simples, todo el maldito asunto da

Facebook ha creado CNN para identificar personas en imágenes (es decir, “¿Quieres etiquetar a Lorem Ipsum?”).

Analicemos una aplicación mucho más simple. Hay aplicaciones que le permiten tomar una foto de una tarjeta de negocios, y ese contacto se guarda en su teléfono automáticamente. Básicamente, se ve una imagen de un número de teléfono móvil en la tarjeta de visita y se da cuenta de cuál es realmente el número de teléfono móvil, mediante la detección de dígitos individuales. Abordemos una versión más simple de eso: reconocer un dígito. Solo necesitamos diferenciar entre una imagen de ‘1’ y una imagen de ‘0’, es decir, dada una imagen de ‘1’ o ‘0’, descubriendo cuál de las dos es.

OK ahora tenemos una tarea. Si tuviera que explicar a alguien cómo se ven 1 y 0 en términos de líneas verticales y horizontales, ¿qué diría? 1 se parece a una sola línea vertical. Y 0 parece: dos líneas verticales y dos líneas horizontales que forman un rectángulo alto (un poco).

Por lo tanto, la tarea puede reformularse para detectar todas las líneas verticales y horizontales en una imagen determinada (de 0 o 1, que no sabemos), y luego, en función del número y la posición de las líneas verticales y horizontales, podemos predecir fácilmente la respuesta.

A continuación, la imagen dada no es más que una cuadrícula de valores de píxeles (0 es negro, 255 es blanco, todo lo demás es gris). Entonces, una imagen de un ‘1’ blanco sobre un fondo negro se ve así:

0 0 0 0 0 0 0 0 0
0 0 0 0 255 0 0 0 0
0 0 0 0 255 0 0 0 0
0 0 0 0 255 0 0 0 0
0 0 0 0 255 0 0 0 0
0 0 0 0 255 0 0 0 0
0 0 0 0 255 0 0 0 0
0 0 0 0 255 0 0 0 0
0 0 0 0 0 0 0 0 0

Y un ‘0’ blanco sobre un fondo negro se ve así:

0 0 0 0 0 0 0 0 0
0 0 0 255 255 255 0 0 0
0 0 0 255 0 255 0 0 0
0 0 0 255 0 255 0 0 0
0 0 0 255 0 255 0 0 0
0 0 0 255 0 255 0 0 0
0 0 0 255 0 255 0 0 0
0 0 0 255 255 255 0 0 0
0 0 0 0 0 0 0 0 0

Ya ves por qué, ¿verdad? Los píxeles blancos (“255”) forman un ‘1’ y ‘0’ respectivamente.

OK genial Entonces, dada una cuadrícula de valores de 9 por 9 como los de arriba, ahora necesitamos detectar líneas en ellos. Una CNN no funciona en toda la red a la vez. Primero observa cada cuadrícula de 3 por 3 (y hay 9 de ellas) para ver si hay líneas verticales en cada una de ellas. Utiliza algo llamado “filtro” (o kernel) para hacer eso. Este filtro para detectar una línea vertical es una cuadrícula separada de 3 por 3 de valores específicos, que cuando se multiplica por la cuadrícula de 3 por 3 en la que estamos trabajando, da un valor alto si hay una línea vertical en ella, y un valor bajo de lo contrario . ¡Y hay un filtro diferente para detectar líneas horizontales !

Ahora, gracias a estos dos filtros, sabemos cuántas líneas verticales y horizontales hay en una imagen determinada y dónde están. Y eso es todo lo que necesitamos, para determinar si es un 1 o un 0. Un par de declaraciones if-else sobre el número de líneas verticales y horizontales, y hemos terminado.

¡Eso es! Esa es la esencia de una red neuronal convolucional: detección de bordes . En nuestro caso, los bordes eran simplemente líneas verticales y horizontales.

Pero aquí está el truco : realmente no necesitamos especificar qué filtros usar y qué hacer con las salidas de filtro. Las declaraciones If-else son tan 2005. Los valores se pueden aprender alimentando a la red con miles de imágenes etiquetadas de 1s y 0s a través de lo que se llama retropropagación. Los filtros aprendidos pueden ser cualquier cosa: detectar una línea vertical, una línea horizontal, una diagonal, etc.

Cualquier otro problema de clasificación de imágenes que utiliza una CNN hace lo mismo, excepto que después de detectar bordes, detecta formas, partes y eventualmente objetos. Clasificación de gato / perro, por ejemplo. En caso de que no haya visto ninguno, así es como se ven (perro a la izquierda, gato a la derecha):

Piensa en términos de bordes y formas. ¿Cómo los diferenciamos? Un perro tiene una nariz más larga, es decir, el contorno de la cara suele ser más largo. Algunos tienen orejas más largas. La nariz es negra (es decir, una concentración de valores de píxeles cercanos a 0). Piernas más largas Y una docena de otros que una CNN puede aprender y calcular internamente a través de filtros, dadas miles de imágenes etiquetadas de perros y gatos.

En resumen, una salida CNN no es más que una función compleja de los valores de píxeles de la imagen de entrada, donde los bordes se detectan en el nivel más bajo, luego las formas y luego los objetos.

Si no hay diferencias directas en los “bordes” de bajo nivel entre dos conjuntos de imágenes, es un problema. Ahora ya sabes por qué las redes neuronales tienen dificultades para clasificar ciertos perros y magdalenas:

En la visión por computadora, hay un método llamado bolsa de palabras visual inspirado en el modelo de bolsa de palabras de la PNL. Asigna cada píxel a un clúster K-Means. Los puntos de datos para el entrenamiento de K-Means se obtienen aplicando un banco de filtros a cada píxel (o un subconjunto aleatorio de píxeles por razones de cálculo).

Así es como se ve un banco de filtros típico:

Así es como se ve la salida de la bolsa visual de palabras en una imagen:

El banco de filtros proporcionado anteriormente podría no ser el mejor para cada conjunto de datos. Por ejemplo, el banco de filtros que funcionará mejor en un conjunto de datos de imágenes de dígitos es muy diferente del banco de filtros que proporciona mejores resultados para imágenes del mundo real. Los investigadores de la visión por computadora piensan en las redes neuronales convolucionales como un enfoque basado en datos para aprender el banco de filtros correcto para un conjunto de datos particular al incorporar sesgos de todo el conjunto de datos en los bancos de filtros aprendidos (es decir, los pesos de las capas convolucionales) para que la CNN funcione bien en los datos retenidos del conjunto de datos. Las capas completamente conectadas toman las salidas del filtro y lo transforman en funciones adicionales para obtener el mejor rendimiento en una tarea de visión por computadora en particular.

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

Buena suerte

Imagínelo como un juego entre sus amigos ( número de amigos = profundidad de su red ) e imagine a sus amigos ( ConvNets ) alineados en serie de tal manera que no pueda escuchar lo que su persona anterior escucha de su amigo anterior. . También considere un moderador o el juez en el extremo, que decidirá si ganó el juego o no.

Entonces, el juego es como si hubiera una imagen ( entrada ) mostrada al primer amigo en la línea y él tiene que describirla brevemente ( abstracción de características, activación, agrupación ) a la siguiente persona y esto continuará hasta el último amigo en la cola.

El objetivo de este juego es que cuando el último amigo diga la descripción al moderador ( función de pérdida ), debe identificar correctamente la imagen; de lo contrario, el moderador irá a cada persona y le dará algunas pistas ( propagación hacia atrás ) hasta que su grupo la gane.

Las redes neuronales convolucionales (CNN) aplican diferentes “filtros” como los que usan las personas para retocar imágenes en sus teléfonos o programas como photoshop.

También reducen repetidamente la imagen, de modo que cada resultado resultante es una imagen de solo un píxel de tamaño. Ese resultado generalmente representa si algo estaba presente o no en la imagen, como la cara de una persona.

Los filtros que se intensifican con diferentes rasgos faciales o el contorno de una cabeza ayudarán a esta CNN a reconocer una cara.

Supongamos que tiene un conjunto de reglas codificadas a mano para una tarea de clasificación. Luego, puede reescribirlos en términos de operadores AND y OR. Por ejemplo, el problema XOR (y = +1 en el primer y tercer cuadrantes, y y = -1 en el segundo y cuarto cuadrantes) se puede escribir de la siguiente manera:
– ((x1> 0) AND (X2> 0)) OR ((x1 <0) AND (X2 <0)) => y = + 1
– ((x1> 0) AND (X2 <0)) OR ((x1 <0) AND (X2> 0)) => y = -1

Ahora las redes neuronales convolucionales tienen una secuencia de capas convolucionales alternas y capas de agrupación.
La capa convolucional actúa como un operador AND: el siguiente filtro para una imagen en escala de grises
+1 -1
0 +1
es análogo a decir que el valor del píxel (1,1) es alto Y (1,2) es bajo Y (2,2) es alto. Un parche de imagen que satisfaga estas condiciones tendrá un producto interno alto con este filtro, y otros parches tendrán productos internos inferiores.
La capa de agrupación actúa como un operador OR: si las salidas de cualquiera de los filtros convolucionales en la capa anterior es alta, entonces la agrupación máxima proporciona una salida alta.

Pocas respuestas sobre Quora que tocan esto muy bien son:
1. ¿Cómo entiendo las redes neuronales de convolución y las redes neuronales de convolución profunda para el aprendizaje no supervisado y supervisado?
2. ¿Qué es una red neuronal convolucional?
3. ¿Por qué las redes convolucionales se desempeñaron mucho mejor que las MLP normales para MNIST?

Cada corte de convolución (dentro de una de las primeras capas) busca una característica específica (como una línea recta a 30 grados de inclinación o una curva corta a la izquierda que va de verde a malva).

Las capas inferiores combinan estas características en cosas más complejas, como formas parecidas a la boca o estructuras con forma de rueda.

Aún más abajo, cerca o en la capa de salida, estas características complejas se combinan en objetos como caras, automóviles y vacas.

Se basa en una versión simplificada de cómo funciona la corteza visual.

Después de todas estas excelentes respuestas, no creo que mi muy ingenua respuesta (no soy un científico de datos aparte, una perspectiva de programador) no cuente. Pero quiero agregar el detalle que, para mí intuitivamente, es como aplicar múltiples niveles de coincidencia de patrones de abajo hacia arriba teniendo en cuenta la relación espacial de los datos.

Aparte de esto, cuando involucramos las áreas, su representación de Fourier no encuentra sus patrones coincidentes durante el entrenamiento. Y todo esto hecho en una construcción jerárquica a las capas superiores con posibles regularizaciones. Por lo tanto, podría llamar a CNN como un emparejador de patrones laterales de Fourier con patrones jerárquicos en los que investigamos los patrones de mecanizado del lado de Fourier dependiendo de la convolución.

¡Hola!

Escribí un tutorial que analiza los bloques básicos de las redes de conexión y explica la intuición detrás de ellas.

También muestro cómo poner en práctica un convnet usando Keras y Tensorflow en un problema de clasificación de imágenes.

Aquí está el enlace: Comprender redes neuronales convolucionales profundas con un caso de uso práctico en Tensorflow y Keras

¡Espero que esto ayude!

Ahmed

Creo que la primera parte de mi publicación de blog: Backpropagation de redes neuronales convolucionales: de la intuición a la derivación

Puede considerarse como una explicación intuitiva de CNN (intenté hacer fotos informativas).

La convolución puede pensarse en un filtro que encuentra relaciones entre entradas vecinas.

Una red neuronal toma una lista de entradas y objetivos (conjunto de entrenamiento) e intenta establecer pesos en la red que den como resultado que las entradas generen el objetivo. El ajuste de estos pesos para que se minimice el error promedio en la salida es el “aprendizaje” de la red para asignar la entrada a la salida.

Entonces, una red neuronal convolucional simplemente tiene como algunas de las capas en la red capas de convolución que pueden facilitar que la red converja en la solución correcta, ya que la relación entre las entradas vecinas a menudo es importante para muchas tareas.

Es difícil de encontrar explicaciones intuitivas para principiantes … al menos me llevó tiempo entender las redes convolucionales … Finalmente lo entiendo … HOY bien, este tipo es un verdadero maestro (
) no te lo tomes con calma … rara vez encontrarás estas explicaciones …

Consulte Redes neuronales convolucionales para la clasificación de imágenes

paso 1: Ve a este blog Inicio – blog de colah

Paso 2: desplácese hacia abajo y encuentre la serie CNN

Paso 3: Ya no eres un “muggle”.