¿Cuál es la diferencia entre una red neuronal convolucional y una red neuronal normal?

Respuestas:

23

TLDR: la red neuronal convolucional es una subclase de redes neuronales que tienen al menos una capa de convolución. Son excelentes para capturar información local (por ejemplo, píxeles vecinos en una imagen o palabras circundantes en un texto), así como para reducir la complejidad del modelo (entrenamiento más rápido, necesita menos muestras, reduce la posibilidad de sobreajuste).

Véase el siguiente gráfico que representa las diversas arquitecturas de redes neuronales que incluyen-redes neuronales profunda convencionales: visualización.


Redes neuronales (NN) , o más precisamente Redes neuronales artificiales (ANN) , es una clase de algoritmos de Machine Learning que recientemente recibió mucha atención (¡otra vez!) Debido a la disponibilidad de Big Data y las instalaciones de computación rápida (la mayoría de Deep Learning los algoritmos son esencialmente variaciones diferentes de ANN).

La clase de ANN cubre varias arquitecturas, incluidas las redes neuronales convolucionales ( CNN ), las redes neuronales recurrentes ( RNN ), por ejemplo, LSTM y GRU , codificadores automáticos y redes de creencias profundas . Por lo tanto, CNN es solo un tipo de ANN.

En términos generales, un ANN es una colección de unidades conectables y sintonizables (también conocidas como nodos, neuronas y neuronas artificiales) que pueden pasar una señal (generalmente un número de valor real) de una unidad a otra. El número de (capas de) unidades, sus tipos y la forma en que se conectan entre sí se denomina arquitectura de red.

Una CNN, en particular, tiene una o más capas de unidades de convolución . Una unidad de convolución recibe su entrada de múltiples unidades de la capa anterior que juntas crean una proximidad. Por lo tanto, las unidades de entrada (que forman un pequeño vecindario) comparten sus pesos.

Las unidades de convolución (así como las unidades de agrupación) son especialmente beneficiosas como:

  • Reducen el número de unidades en la red (ya que son asignaciones de muchos a uno ). Esto significa que hay menos parámetros que aprender, lo que reduce la posibilidad de sobreajuste, ya que el modelo sería menos complejo que una red totalmente conectada.
  • Consideran el contexto / información compartida en los barrios pequeños. Este futuro es muy importante en muchas aplicaciones, como procesamiento / minería de imágenes, video, texto y voz, ya que las entradas vecinas (por ejemplo, píxeles, cuadros, palabras, etc.) generalmente contienen información relacionada.

Lea lo siguiente para obtener más información sobre las CNN (profundas):

  1. Clasificación de ImageNet con redes neuronales convolucionales profundas
  2. Profundizando en convoluciones

ps ANN no es "un sistema basado libremente en el cerebro humano", sino que existe una clase de sistemas inspirados por las conexiones neuronales en los cerebros de los animales.

Borhan Kazimipour
fuente
10

Las redes neuronales convolucionales (CNN) son redes neuronales con restricciones arquitectónicas para reducir la complejidad computacional y garantizar la invariancia traslacional (la red interpreta los patrones de entrada de la misma forma independientemente de la traducción, en términos de reconocimiento de imagen: un plátano es un plátano independientemente de dónde se encuentre imagen). Las redes neuronales convolucionales tienen tres características arquitectónicas importantes.

Conectividad local: las neuronas en una capa solo están conectadas a las neuronas en la siguiente capa que están espacialmente cerca de ellas. Este diseño recorta la gran mayoría de las conexiones entre capas consecutivas, pero mantiene las que llevan la información más útil. La suposición hecha aquí es que los datos de entrada tienen importancia espacial, o en el ejemplo de la visión por computadora, la relación entre dos píxeles distantes es probablemente menos significativa que dos vecinos cercanos.

Pesos compartidos: este es el concepto que hace que las CNN sean "convolucionales". Al obligar a las neuronas de una capa a compartir pesos, el paso hacia adelante (alimentación de datos a través de la red) se convierte en el equivalente de convolver un filtro sobre la imagen para producir una nueva imagen. La capacitación de las CNN se convierte en la tarea de aprender filtros (decidir qué características debe buscar en los datos).

Agrupación y ReLU: las CNN tienen dos no linealidades: agrupación de capas y funciones ReLU. Las capas de agrupación consideran un bloque de datos de entrada y simplemente pasan el valor máximo. Hacer esto reduce el tamaño de la salida y no requiere parámetros adicionales para aprender, por lo que las capas de agrupación a menudo se usan para regular el tamaño de la red y mantener el sistema por debajo de un límite computacional. La función ReLU toma una entrada, x, y devuelve el máximo de {0, x}. ReLU(x) = argmax(x, 0). Esto introduce un efecto similar a tanh (x) o sigmoide (x) como no linealidades para aumentar el poder expresivo del modelo.


Otras lecturas

Como mencionó otra respuesta, el curso CS 231n de Stanford cubre esto en detalle. Consulte esta guía escrita y esta conferencia para obtener más información. Las publicaciones de blog como esta y esta también son muy útiles.

Si todavía tiene curiosidad por qué las CNN tienen la estructura que tienen, sugiero leer el documento que las presentó, aunque esto es bastante largo, y tal vez revisar esta discusión entre Yann Lecun y Christopher Manning sobre los antecedentes innatos (los supuestos que hacemos cuando diseñamos la arquitectura de un modelo).

Jackson Waschura
fuente
2
"y asegurar la invariancia traslacional" ¿Qué diablos es la invariancia traslacional? Cuando mencionas un término tan misterioso, debes, al menos, definirlo intuitivamente.
nbro
1
Vaya, estoy de acuerdo, agregué en una breve descripción.
Jackson Waschura el
1
Esta es una mejor respuesta para mí, ya que explica exactamente cómo las CNN son un tipo específico de NN. Otras respuestas no mencionan que se aplica el peso compartido.
Denziloe
5

Una red neuronal convolucional es aquella que tiene capas convolucionales . Si una red neuronal general está, en términos generales, inspirada por un cerebro humano (que no es muy preciso), la red neuronal convolucional está inspirada en el sistema de corteza visual, en humanos y otros animales (que está más cerca de la verdad) . Como su nombre indica, esta capa aplica la convolución con un filtro que se puede aprender (también conocido como kernel ), como resultado, la red aprende los patrones en las imágenes: bordes, esquinas, arcos y luego figuras más complejas. La red neuronal convolucional también puede contener otras capas, comúnmente agrupadas y capas densas.

Recomiendo altamente el tutorial CS231n sobre este asunto: es muy detallado y contiene muchas visualizaciones muy agradables.

Máxima
fuente