¿Cuál es la diferencia entre redes neuronales convolucionales y aprendizaje profundo?

25

Quiero usar el aprendizaje profundo en mi proyecto. Revisé un par de artículos y se me ocurrió una pregunta: ¿hay alguna diferencia entre la red neuronal de convolución y el aprendizaje profundo? ¿Son estas cosas iguales o tienen diferencias importantes, y cuál es mejor?

Aadnan Farooq A
fuente
Dime cuál es la diferencia exacta del aprendizaje profundo y la red neuronal convolucional. Soy un poco confuso en estos 2 temas
Yamini,

Respuestas:

33

Deep Learning es la rama del aprendizaje automático basada en redes neuronales profundas (DNN), es decir, redes neuronales con al menos 3 o 4 capas (incluidas las capas de entrada y salida). Pero para algunas personas (especialmente no técnicas), cualquier red neuronal califica como aprendizaje profundo, independientemente de su profundidad. Y otros consideran que una red neuronal de 10 capas es poco profunda.

Las redes neuronales convolucionales (CNN) son una de las arquitecturas de redes neuronales más populares. Son extremadamente exitosos en el procesamiento de imágenes, pero también para muchas otras tareas (como reconocimiento de voz, procesamiento de lenguaje natural y más). Las CNN de última generación son bastante profundas (docenas de capas al menos), por lo que forman parte de Deep Learning. Pero puede crear una CNN superficial para una tarea simple, en cuyo caso no es (realmente) Deep Learning.

Pero las CNN no están solas, hay muchas otras arquitecturas de redes neuronales, incluidas Redes Neuronales Recurrentes (RNN), Autoencoders, Transformadores, Redes de Creencias Profundas (DBN = una pila de Máquinas de Boltzmann Restringidas, RBM), y más. Pueden ser poco profundos o profundos. Nota: incluso los RNN superficiales pueden considerarse parte del aprendizaje profundo, ya que entrenarlos requiere desenrollarlos a través del tiempo, lo que resulta en una red profunda.

MiniQuark
fuente
@MiniQurak. Por favor corrígeme, estoy equivocado. lo que entiendo es que CNN es solo una de las arquitecturas de redes profundas como Autoencoders, Deep Belief Nets, Recurrent Neural Networks (RNN) ... ¿es correcto?
Aadnan Farooq A
Si eso es correcto.
MiniQuark
entonces, ¿podemos decir qué arquitectura es mejor dependiendo del conjunto de datos? o cuáles son los factores clave?
Aadnan Farooq A
1
Las CNN son excelentes para tareas de reconocimiento de imágenes. También brillan cuando los datos tienen algún tipo de estructura jerárquica, con patrones locales (por ejemplo, segmentos de línea) ensamblados en patrones grandes (por ejemplo, cuadrados, triángulos), ensamblados en patrones más grandes (por ejemplo, casa, plano). Esto funciona bien para tareas de reconocimiento de voz. Los RNN son excelentes para series de tiempo (p. Ej., Predicción del clima), y generalmente manejan secuencias de datos (p. Ej., Oraciones). Se usan mucho para PNL (procesamiento de lenguaje natural). Los codificadores automáticos no están supervisados, aprenden patrones en los datos.
MiniQuark
1
Muy bien entonces :)
Firebug
21

Dentro de los campos del procesamiento adaptativo de señales / aprendizaje automático, el aprendizaje profundo (DL) es una metodología particular en la que podemos entrenar máquinas representaciones complejas.

En general, tendrán una formulación que puede mapear su entrada , hasta el objetivo objetivo, , a través de una serie de operaciones apiladas jerárquicamente (de aquí proviene el 'profundo') . Esas operaciones son típicamente operaciones / proyecciones lineales ( ), seguidas de una no linealidad ( ), como sigue :XyWyoFyo

y=Fnorte(...F2(F1(XTW1)W2)...Wnorte)

Ahora dentro de DL, hay muchas arquitecturas diferentes : una de esas arquitecturas se conoce como red neuronal convolucional (CNN). Otra arquitectura se conoce como perceptrón multicapa (MLP), etc. Las diferentes arquitecturas se prestan para resolver diferentes tipos de problemas.

Un MLP es quizás uno de los tipos más tradicionales de arquitecturas DL que uno puede encontrar, y es cuando cada elemento de una capa anterior está conectado a cada elemento de la capa siguiente. Se parece a esto:

ingrese la descripción de la imagen aquí

En MLP, las matrices codifican la transformación de una capa a otra. (A través de una matriz multiplicar). Por ejemplo, si tiene 10 neuronas en una capa conectadas a 20 neuronas de la siguiente, tendrá una matriz , que asignará una entrada a una salida , a través de: . Cada columna en , codifica todos los bordes que van desde todos los elementos de una capa a uno de los elementos de la siguiente capa.WyoWR10X20vR10X1tuR1X20tu=vTWW

Las MLP cayeron en desgracia entonces, en parte porque eran difíciles de entrenar. Si bien hay muchas razones para esa dificultad, una de ellas también fue porque sus conexiones densas no les permitieron escalar fácilmente para varios problemas de visión por computadora. En otras palabras, no tenían la equivalencia de traducción incorporada. Esto significaba que si había una señal en una parte de la imagen a la que debían ser sensibles, tendrían que volver a aprender cómo ser sensibles a ella si esa señal se movió. Esto desperdició la capacidad de la red, por lo que el entrenamiento se volvió difícil.

¡Aquí es donde entraron las CNN! Así es como se ve uno:

ingrese la descripción de la imagen aquí

Las CNN resolvieron el problema de la traducción de la señal, ya que convolverían cada señal de entrada con un detector (núcleo) y, por lo tanto, serían sensibles a la misma característica, pero esta vez en todas partes. En ese caso, nuestra ecuación todavía se ve igual, pero las matrices de peso son en realidad matrices de convolución toeplitz . Sin embargo, las matemáticas son iguales. Wyo

Es común ver que las "CNN" se refieren a redes donde tenemos capas convolucionales en toda la red y MLP al final, por lo que es una advertencia a tener en cuenta.

Tarin Ziyaee
fuente
1
+1 Gran respuesta, acabo de enterarme de las matrículas de toeplitz. ;-)
MiniQuark
@MiniQuark ¡Gracias! Sí, puede escribir una convolución como una multiplicación por una matriz de toeplitz. :)
Tarin Ziyaee
@TarinZiyaee y MiniQurak ¿Pueden sugerirme algún buen libro / artículo de revista / tutorial para que el principiante aprenda sobre el aprendizaje profundo en detalle?
Aadnan Farooq A
Las CNN no son necesariamente profundas (-1)
Firebug
7

Aprendizaje profundo = redes neuronales artificiales profundas + otro tipo de modelos profundos .

Redes neuronales artificiales profundas = redes neuronales artificiales con más de 1 capa. (vea el número mínimo de capas en una red neuronal profunda o Wikipedia para más debate ...)

Red neuronal de convolución = Un tipo de redes neuronales artificiales

Franck Dernoncourt
fuente
De hecho, Deep Learning también incluye "máquinas de núcleo multicapa", y las CNN pueden ser poco profundas. :)
MiniQuark
@MiniQuark sí.
Franck Dernoncourt
redes neuronales artificiales con más de 1 capa ..... No estoy seguro de que una red con solo 2 capas se llame red profunda.
SmallChess
1
@StudentT Quizás, no trabajo en marketing;) es.wikipedia.org/w/…
Franck Dernoncourt
1
Esta debería ser la respuesta principal, porque las CNN no son necesariamente profundas, y el aprendizaje profundo no se trata solo de las ANN (en el sentido ordinario).
Firebug
6

Esta diapositiva de Yann LeCun señala que solo los modelos con una jerarquía de características (las características de nivel inferior se aprenden en una capa de un modelo, y luego esas características se combinan en el siguiente nivel) son profundas .

Un CNN puede ser profundo o poco profundo; el caso depende de si sigue esta construcción de "jerarquía de características" porque ciertas redes neuronales, incluidos los modelos de 2 capas , no son profundas.

Definición de Yann LeCun

Sycorax dice reinstalar a Mónica
fuente
3

Deep learninges un término general para tratar con una red neuronal complicada con múltiples capas. No existe una definición estándar de lo que es exactamente deep. Por lo general, puede pensar que una red profunda es algo que es demasiado grande para entrenar su computadora portátil y PC. El conjunto de datos sería tan grande que no podrás guardarlo en tu memoria. Es posible que necesite GPU para acelerar su entrenamiento.

Deep es más como un término de marketing para hacer que algo suene más profesional que lo contrario.

CNNes un tipo de red neuronal profunda, y hay muchos otros tipos. Las CNN son populares porque tienen aplicaciones muy útiles para el reconocimiento de imágenes.

SmallChess
fuente
Me gustaría objetar amablemente algunas de estas afirmaciones: una red generalmente se considera profunda cuando tiene más de una capa oculta, y la mayoría de la gente estaría de acuerdo en que tener más de 10 capas ocultas es definitivamente profunda. Es muy posible entrenar redes profundas en su computadora portátil, lo hago todo el tiempo. El conjunto de datos no tiene que ser enorme, en particular si utiliza el aprendizaje de transferencia (es decir, reutilizar capas de una red preentrenada) y / o el aumento de datos. Ciertamente, hay mucha publicidad en torno a la palabra "profundo", pero hay técnicas dedicadas para el aprendizaje profundo, por lo que no es solo publicidad. :)
MiniQuark
@MiniQuark Con el aumento de datos, su conjunto de datos seguirá siendo grande, solo que comience con algo pequeño ...
SmallChess
Buen punto, tienes razón. Lo que quise decir es que el conjunto de datos cabría en la memoria, ya que generaría la mayoría de los datos sobre la marcha.
MiniQuark