¿Qué es una red neuronal convolucional?

(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 .

Puede pensar en las redes neuronales convolucionales como el uso de múltiples copias de la misma neurona en diferentes lugares. Es un poco como escribir una función una vez y usarla varias veces en la programación. Al igual que es menos propenso a cometer un error si solo escribe la función una vez, la red puede modelar mejor los datos cuando aprende a hacer algo una vez y los usa en varios lugares.


Las redes neuronales convolutinales, como se muestra arriba, son una forma particular de usar muchas copias de la misma neurona. Solo trabajan en tipos especiales de problemas.

Verá, para usar múltiples copias de la misma neurona en diferentes lugares, necesita saber que es útil usar la misma función en múltiples lugares diferentes. Podemos hacer esto en problemas de visión porque entendemos algo sobre las simetrías de las imágenes: ¡es útil hacer lo mismo en muchos lugares diferentes! Por ejemplo, es útil detectar bordes horizontales en muchos lugares diferentes. Entonces, usamos la misma neurona, aplicada a parches alrededor de la imagen.

Esto normalmente resulta en una red conectada localmente, como lo describe Martin, porque solo tenemos cada neurona mirando algunas entradas. Pero esto no es intrínseco. En teoría, cada neurona podría mirar la imagen completa, traducida en diferentes cantidades. O, en ciertas generalizaciones, la misma neurona observa la entrada completa, transformada de formas distintas a la traducción.

Puede disfrutar de mi publicación de blog, Conv Nets: A Modular Perspective.

Lo intentaré: 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 del aprendizaje profundo AlphaGo vs. Lee Sedol) REVISADO

Corto: son redes neuronales que están escasamente conectadas (no completamente) en la capa de entrada. Esto hace que cada neurona en la siguiente capa sea responsable de solo una parte de la entrada, lo cual es valioso para reconocer partes de imágenes, por ejemplo.

Un poco elaborado:
Para reconocer partes de una imagen, idealmente nos gustaría segmentar esa imagen en partes significativas. Si consideramos una imagen como una matriz, cada subconjunto de esa imagen podría representar un objeto (un patrón). Supongamos que cada neurona en la capa de entrada toma un píxel separado.

Habría dos enfoques para esto: de abajo hacia arriba (combinando píxeles en patrones significativos) y de arriba hacia abajo (dividiendo toda la imagen en partes significativas).

¿Cómo funciona aquí la parte “no totalmente conectada”?
Simple, ya que si conectamos cada neurona en la capa de entrada a cada neurona en la siguiente capa, consideraríamos la imagen completa en cada neurona siguiente. Por lo tanto, este sería el enfoque de arriba hacia abajo: se toma todo y eventualmente se anulan algunas conexiones para aislar ciertas partes.
Si bien, si conecta un subconjunto de píxeles de entrada a la siguiente capa (por ejemplo, un subconjunto podría ser un cuadrado de 3 × 3 píxeles), adopta el enfoque de abajo hacia arriba, conectando partes de imágenes en patrones significativos, lo que resulta en un modelo que generaliza mejor.

Lectura adicional: Redes neuronales convolucionales (LeNet)

Ya se han dado muchas buenas respuestas, solo trataré de resumir mi comprensión en palabras simples y recomendaré un video al final para aclarar las cosas.

Redes neuronales convolucionales:

Más conocido como CNN (Conv Nets) es una de las principales arquitecturas de diseño de redes neuronales artificiales de última generación, que ayuda en las clasificaciones basadas en imágenes. El principio básico detrás del funcionamiento de CNN es la idea de convolución, que produce mapas de características filtrados apilados unos sobre otros. Los pasos involucrados en la CNN pueden clasificarse en términos generales como:

Imagen de entrada -> Filtrado -> ReLu -> Agrupación -> …… -> Vectorización -—-> FCNN

Donde FCNN significa Red neuronal totalmente conectada.

Trabajando :

La imagen de entrada en forma de matriz está enrevesada con el filtro mxm (donde m es generalmente impar). Aquí, una imagen dada podría estar involucrada con un filtro diferente de tamaño mxm , donde cada uno de los filtros se enfocaría en una característica particular que necesita ser extraída de la imagen de entrada, formando así mapas de características apilados. a través de una capa ReLu, que elimina todas las entradas negativas en las matrices obtenidas, con valor 0. Ahora el resultado de esto se pasa a la capa de agrupación donde reducimos el tamaño de las matrices obtenidas, eligiendo un enfoque de vecino más cercano donde un área de tamaño pxp se reemplaza por el valor máximo en el área pxp . El propósito de la agrupación es: reduce el tamaño de la matriz en la que operamos, reduciendo así los cálculos, sin pérdida de información significativa. También ayuda a mantener la traducción y la invarianza rotacional. Los pasos anteriores se repiten, y luego, en cierta etapa, las matrices se vectorizan y se envían a una red neuronal, que se entrena utilizando la propagación inversa, para clasificar la imagen.

Mirada recomendada:

La información anterior solo proporciona una idea general sobre cómo funciona un CNN simple. Recomiendo este video de Brandon Rohrer para obtener una imagen más clara: cómo funcionan las redes neuronales convolucionales

Las redes neuronales convolucionales (CNN) son variantes de MLP inspiradas biológicamente. MLP o percepción de múltiples capas son redes neuronales en las que hay múltiples capas entre la capa de entrada y la capa de salida. La percepción de múltiples capas funciona sobre la base del algoritmo de propagación hacia atrás.

Las CNN están formadas por neuronas que tienen pesos y sesgos aprendibles. Cada neurona recibe algunas entradas, realiza un producto de puntos y, opcionalmente, lo sigue con una no linealidad. Toda la red aún expresa una única función de puntuación diferenciable: desde los píxeles de imagen sin procesar en un extremo hasta las puntuaciones de clase en el otro. Y todavía tienen una función de pérdida en la última capa y todos los consejos / trucos que desarrollamos para aprender Redes neuronales regulares todavía se aplican. Las arquitecturas de ConvNet suponen explícitamente que las entradas son imágenes, lo que nos permite codificar ciertas propiedades en la arquitectura. Esto hace que la función de reenvío sea más eficiente de implementar y reduce enormemente la cantidad de parámetros en la red.

CNN es el método más popular y efectivo para el reconocimiento de objetos, y es un tipo especializado de red neuronal para procesar datos que tiene una topología similar a una cuadrícula conocida. La red emplea una operación matemática llamada convolución que le permite extraer un conjunto de características de la imagen de entrada.

La arquitectura principal es la misma que una red neuronal “regular”, que consta de múltiples capas apiladas de neuronas interconectadas (para una muy buena revisión sobre el tema, vea la serie “Comprender la red neuronal” de Giles Strong). La principal diferencia aquí es que las entradas son imágenes caracterizadas por una estructura tridimensional: altura, ancho e intensidad de píxeles. Las primeras capas de la estructura aprenden a reconocer patrones simples como líneas, bordes o esquinas en la imagen de entrada; las capas intermedias pueden reconocer patrones más complejos, como un ojo o una nariz; eventualmente, las capas posteriores ubican y reconocen los objetos principales en la imagen, como un rostro humano o un perro.

Para obtener más información, vea mi publicación en CNN aquí:

CNN’s y Neutrinos

Buenas respuestas aquí ya:

Una red neuronal es un conjunto de nodos de procesamiento dispuestos de manera capa por capa normalmente entrenados de extremo a extremo de manera supervisada utilizando algoritmos basados ​​en el descenso de gradiente, como el algoritmo de descenso de gradiente estocástico (SGD).

Las redes neuronales aprenden de manera jerárquica, por lo que cada capa aprende más y más características abstractas. Las primeras capas aprenden representaciones atómicas / primitivas como bordes o color, mientras que las capas de nivel intermedio aprenden representaciones abstractas intermedias como partes de objetos y finalmente las capas de alto nivel aprenden objetos completos como caras de gatos.

Entonces, la profundidad de la red está determinada por el número de tales capas. Cuanto más alto es el recuento de capas, más profunda es la red, más puede aprender representaciones abstractas y de ahí el nombre de “aprendizaje profundo” (DL). DL implica redes neuronales con un gran número de capas apiladas una encima de la otra.

Una red neuronal convolucional (convNet) es un tipo especial de redes neuronales profundas que emplea capas alternas de convoluciones + agrupación, contiene bancos de filtros entrenables por capa. Cada filtro individual en un banco de filtros se llama kernel y tiene un campo receptivo fijo (ventana) que se escanea sobre una capa debajo de él para calcular un mapa de características de salida.

El kernel realiza un simple cálculo de producto punto + sesgo mientras escanea la capa debajo de él y luego alimenta el resultado a través de una función de activación, rectificador, por ejemplo, para calcular el mapa de salida. Luego, el mapa de salida se submuestrea utilizando la suma o la agrupación máxima, siendo más tarde más común para reducir la sensibilidad a las distorsiones de los estímulos en las capas superiores.

Este proceso se alterna hasta cierto punto cuando las características se vuelven específicas para el problema en cuestión. Por lo tanto, una convNet es una red neuronal profunda para aprender cada vez más características compactas abstractas que luego pueden usarse como detectores de características para problemas de reconocimiento.

Es por eso que las últimas capas en una convNet típica se componen de una red neural típica o máquinas de vectores de soporte completamente conectadas para reconocer diferentes combinaciones de las características de las capas convolucionales.

Espero que esto ayude.

El video tutorial, disponible en el enlace Tutoriales interactivos – Niraj contiene una explicación interactiva de la funcionalidad y estructura de la Red neuronal convolucional. También demuestra la red neuronal convoluncional a través de un ejemplo de entrenamiento interactivo.

Enlace: Tutoriales interactivos – Niraj

Las redes neuronales convolucionales (CNN) son un tipo de red neuronal que se ha utilizado ampliamente para tareas de reconocimiento de imágenes.

En esta respuesta, uso el LeNet desarrollado por LeCun [1] [2] como ejemplo. LeNet era una red neuronal de convolución diseñada para reconocer dígitos escritos a mano en imágenes binarias.

Motivación

Una red neuronal regular o un perceptrón multicapa (MLP) está formado por capas de entrada / salida y una serie de capas ocultas. La figura 1 muestra un ejemplo de MLP que contiene solo una capa oculta. Tenga en cuenta que cada capa oculta está completamente conectada a la capa anterior, es decir, cada neurona en la capa oculta se conecta a todas las neuronas en la capa anterior.

Figura 1. A. Un perceptrón multicapa [3]

Hay tres problemas principales si usamos MLP para tareas de reconocimiento de imágenes:

  • Los MLP no escalan bien

El rendimiento de generalización del MLP se verá eclipsado por sus excesivos parámetros libres, es decir, los pesos. Por ejemplo, cada imagen de ImageNet [4] tiene un tamaño de 256x256x3. Eso significa que cada neurona en la capa oculta tendrá 256x256x3 = 196608 conexiones con cada píxel en la imagen de entrada en la Fig. 1. El número total de pesos aumentaría rápidamente si deseamos agregar más neuronas o capas ocultas. La enorme cantidad de pesos producidos por la conectividad total conduciría rápidamente al sobreajuste.

  • Los MLP ignoran la correlación de píxeles

Es una propiedad importante de las imágenes que los píxeles cercanos están más fuertemente correlacionados que los píxeles distantes. MLP no aprovecha esta propiedad debido a la conectividad total. Esta propiedad sugiere que se prefiere la conectividad local.

  • Los MLP no son robustos para las transformaciones de imágenes

Se espera que el algoritmo de reconocimiento sea robusto para las transformaciones aplicadas a la imagen de entrada. Por ejemplo, para el reconocimiento de dígitos escritos a mano, a un dígito particular se le debe asignar el mismo valor independientemente de su posición dentro de la imagen o de su tamaño.

Para los MLP, cualquier cambio sutil en escala o posición desde la capa de entrada produciría cambios significativos en las siguientes capas. Por lo tanto, es ventajoso incorporar en la red cierta invariancia a los cambios comunes que podrían ocurrir en las imágenes, por ejemplo, traducción, escala, etc.

En consecuencia, las tareas de reconocimiento de imágenes requieren un nuevo tipo de red neuronal.

Estrategia de diseño de red

El diseño de las CNN sigue las pautas presentadas a continuación [1]:

Se deben considerar dos medidas de rendimiento al evaluar una red neuronal, a saber, la velocidad de aprendizaje y el rendimiento de generalización. La generalización es la primera propiedad que debe considerarse, ya que determina la cantidad de datos de entrenamiento que la red necesita para producir una respuesta correcta en datos no vistos.

LeCun escribió en [1] que “se puede obtener un buen rendimiento de generalización si se integra algún conocimiento previo sobre la tarea en la red”. Adaptar la arquitectura de la red afecta la complejidad de la red. La complejidad de la red se refleja en el número de sus parámetros libres, que deben minimizarse para aumentar la probabilidad de una generalización correcta. Sin embargo, el trabajo debe hacerse sin deteriorar la capacidad de la red para calcular la función deseada.

Redes neuronales convolucionales

Para utilizar el conocimiento previo sobre el reconocimiento de imágenes, las CNN incorporan los siguientes conceptos en el diseño:

  • Conectividad local

La conectividad local es una solución al problema de sobre parametrización. La ventaja de usar características locales y las características derivadas de alto orden se ha demostrado en el trabajo clásico en reconocimiento visual. Este conocimiento puede integrarse fácilmente en la red, obligando a las neuronas a recibir solo información local.

Figura 2. Una red neuronal con conectividad local [5]

Esta noción se ilustra en la Fig. 2, donde la capa m-1 puede considerarse como imágenes de entrada, y la capa m es la capa oculta. De la figura se puede ver que cada neurona en la capa oculta se conecta a solo 3 píxeles de entrada adyacentes en la imagen. La conectividad local también aprovecha la correlación de píxeles de la imagen de entrada, ya que cada neurona en la capa oculta solo se preocupa por los píxeles cercanos en un vecindario.

  • Peso compartido

Un problema de las tareas de reconocimiento de imágenes es que las imágenes que contienen el mismo objeto semántico podrían tener el objeto en varios lugares de la imagen. Como resultado, el trabajo clásico en reconocimiento visual detecta características locales en varios lugares de la imagen de entrada. El reparto de peso es una solución que estimula el enfoque de la aplicación de detectores de características locales en diferentes posiciones de la imagen. También es una solución para mejorar la robustez de la red frente a las transformaciones de imagen.

Figura 3. Una red neuronal con distribución de peso [5]

Como se muestra en la Figura 3, las tres neuronas en la capa oculta m comparten el mismo peso. Los pesos del mismo color están obligados a ser idénticos. Tenga en cuenta que la capa oculta m podría contener múltiples planos de neuronas que comparten los mismos pesos. Estos planos se denominan “mapas de características”. Las neuronas en cada mapa de características están obligadas a tener pesos idénticos, lo que equivale a realizar la misma operación en diferentes partes de la imagen.

Dado que cada neurona solo está conectada a una parte de una imagen, y mantiene la información en el mapa de características correspondiente. Este comportamiento es equivalente a una convolución con un núcleo de tamaño pequeño, seguido de una función de aplastamiento [2]. Así es como se llamó a CNN.

  • Submuestreo

Como un objeto puede aparecer en varias ubicaciones en la imagen de entrada, la ubicación precisa de una entidad local no es importante para la clasificación. Eso significa que la red puede permitirse perder la información de posición exacta. Sin embargo, se debe conservar una información de posición aproximada para que la siguiente capa pueda detectar una característica de orden superior. Como resultado, los mapas de características no necesitan ser del mismo tamaño que la imagen de entrada. En cambio, se puede construir un mapa de características submuestreando la imagen de entrada. El submuestreo proporciona una forma de invariancia a las distorsiones y las traducciones.

Al unir estos conceptos se obtiene LeNet, el primer CNN, que se ilustra en la Fig. 4 [5]. Aunque la Fig. 4 no refleja con precisión la arquitectura presentada en [2], todavía se puede utilizar como una ilustración significativa.

Figura 4. La red LeNet [5]

Como se muestra en la Fig. 4, LeNet se compone de capas convolucionales y de submuestreo alternadas en sus capas inferiores. Sus capas superiores corresponden a capas completamente conectadas empleadas en MLP.

Se ha demostrado que LeNet se generaliza bien en comparación con MLP en [2].

Referencias

[1] LeCun, Yann. “Estrategias de diseño de redes y generalización”. El conexionismo en perspectiva (1989): 143-155.

[2] Le Cun, B. Boser y col. “Reconocimiento de dígitos escritos a mano con una red de propagación hacia atrás”. Avances en sistemas de procesamiento de información neuronal. 1990

[3] Perceptrón multicapa http://deeplearning.net/tutorial

[4] Deng, Jia y col. “Imagenet: una base de datos de imágenes jerárquicas a gran escala” Computer Vision and Pattern Recognition, 2009.

[5] Redes neuronales convolucionales (LeNet) http://deeplearning.net/tutorial

Trataré de dar una respuesta simple.

Primero, aprende sobre la red neuronal general, que es bastante simple. Básicamente son gráficos jerárquicos donde las capas consecutivas están completamente conectadas.

Ahora, si estas conexiones ya no están llenas pero siguen un patrón, es decir, son las mismas para cada área de 5 × 5 desde la capa inferior hasta un punto de la capa superior. Tienes capas convolucionales.

Estos patrones reducen significativamente los parámetros totales de la red porque se replican espacialmente. Usar menos parámetros para cada capa le permite tener redes más profundas.

Eso resume bastante bien la red neuronal convolucional.

Dos grandes sitios para hacer referencia: Comprender las redes neuronales convolucionales para PNL y Comprender las circunvoluciones.

Para responder a esto, primero hagamos un resumen rápido de la técnica de convolución de procesamiento de imágenes.

La convolución es el proceso de convolucionar un núcleo con una imagen (suma de la multiplicación de los píxeles correspondientes en el núcleo y la imagen). El núcleo opera sobre toda la imagen. Puede encontrar mucha información en línea con respecto a esta técnica si no fuera lo suficientemente descriptivo.

Una red neuronal convolucional es una red neuronal, donde la entrada es una imagen y las convoluciones con varios núcleos ocurren en cada capa para producir la imagen enrevesada como la entrada en las siguientes capas. A menudo hay otros tipos de capas en capas convolucionales mejores, como capas de agrupación que extraen la información / características importantes de las convoluciones de la capa anterior.

Modelos de redes neuronales convolucionales: aprendizaje profundo

Aprendizaje profundo: descripción general de mi trabajo II

Aprendizaje profundo

Aquí hay una encuesta bibliográfica sobre redes neuronales convolucionales para comprender los conceptos básicos de redes neuronales convolucionales para la clasificación de imágenes

More Interesting

¿Dónde usa Quora el aprendizaje automático?

¿Puedo usar el algoritmo de aprendizaje automático en mi proyecto de investigación aunque no soy un experto en él?

¿Qué soluciones se están construyendo utilizando la tecnología IBM Watson?

¿Me pueden ayudar a encontrar e identificar mi idea de doctorado? (¿Aprendizaje profundo y análisis de Big Data Twitter Sentiment?)

¿Qué son las medidas completamente aleatorias y cómo / cuándo son útiles?

¿El aprendizaje automático es un comienzo de invasión de estadísticas?

¿Qué tan útil es el aprendizaje automático?

¿Cómo puede alguien que es muy débil en matemáticas aprender el aprendizaje automático y el aprendizaje profundo?

¿Es posible que una aplicación de aprendizaje automático que ejecute el mismo algoritmo y se alimente con los mismos datos para aprender cosas diferentes en pruebas de entrenamiento separadas?

¿Debo elegir PHP para el aprendizaje automático?

¿Podemos automatizar las búsquedas a través del aprendizaje automático? Tengo cientos de sitios web de diferentes fabricantes de automóviles, si tengo la intención de extraer toda la información (sobre todas las bicicletas / automóviles) junto con los enlaces.

¿Cuál es el papel de la función de activación en una red neuronal? ¿Cómo funciona esto en un sistema de red neuronal humana?

¿Qué es el cambio de covariable?

Cómo comenzar a aprender sobre redes neuronales y conceptos de aprendizaje automático y ponerlos en uso en la vida real sin conocer las matemáticas avanzadas

¿El sobreajuste es un problema en el aprendizaje de refuerzo profundo?