¿Cuál es la diferencia entre una red neuronal y una red neuronal profunda y por qué las profundas funcionan mejor?


114

No he visto la pregunta precisamente en estos términos, y es por eso que hago una nueva pregunta.

Lo que me interesa saber no es la definición de una red neuronal, sino comprender la diferencia real con una red neuronal profunda.

Para más contexto: sé qué es una red neuronal y cómo funciona la propagación hacia atrás. Sé que un DNN debe tener varias capas ocultas. Sin embargo, hace 10 años en la clase aprendí que tener varias capas o una capa (sin contar las capas de entrada y salida) era equivalente en términos de las funciones que una red neuronal es capaz de representar (ver el teorema de aproximación universal de Cybenko ), y que tener más capas hicieron que sea más complejo de analizar sin aumentar el rendimiento. Obviamente, ese ya no es el caso.

Supongo, tal vez erróneamente, que las diferencias están en términos de algoritmo de entrenamiento y propiedades en lugar de estructura, y por lo tanto , realmente agradecería si la respuesta pudiera subrayar las razones que hicieron posible el cambio a DNN (por ejemplo, pruebas matemáticas o jugar al azar con redes ?) y deseable (por ejemplo, ¿velocidad de convergencia?)



Si la función que desea aproximar es una función de composición (común en el procesamiento de imágenes y muchos dominios naturales debido a la ley de la física). Se puede demostrar que las redes profundas pueden explotar esta composicionalidad y lograr el mismo nivel de error de aproximación con un número exponencialmente menor de neuronas (en comparación con una red de capa oculta única). Ref: Poggio, Tomaso, et al. "Por qué y cuándo pueden las redes profundas, pero no superficiales, evitar la maldición de la dimensionalidad: una revisión". International Journal of Automation and Computing (2017)
DataHungry

Es posible que desee leer este artículo
agcala

Respuestas:


152

Comencemos con una triviliaty: la red neuronal profunda es simplemente una red de avance con muchas capas ocultas.

Esto es más o menos todo lo que hay que decir sobre la definición. Las redes neuronales pueden ser recurrentes o de avance; los de avance no tienen ningún bucle en su gráfico y se pueden organizar en capas. Si hay "muchas" capas, entonces decimos que la red es profunda .

¿ Cuántas capas debe tener una red para calificar como profunda? No hay una respuesta definitiva a esto (es un poco como preguntar cuántos granos hacen un montón ), pero generalmente tener dos o más capas ocultas cuenta como profundo. En contraste, una red con una sola capa oculta se llama convencionalmente "superficial". Sospecho que habrá algo de inflación aquí, y en diez años la gente podría pensar que cualquier cosa con menos de, digamos, diez capas es poco profunda y adecuada solo para ejercicios de jardín de infantes. Informalmente, "profundo" sugiere que la red es difícil de manejar.

Aquí hay una ilustración, adaptada de aquí :

Red neuronal profunda frente a no profunda

Pero la verdadera pregunta que hace es, por supuesto, ¿por qué sería beneficioso tener muchas capas?

Creo que la respuesta algo sorprendente es que nadie lo sabe realmente. Hay algunas explicaciones comunes que revisaré brevemente a continuación, pero ninguna de ellas ha demostrado ser convincentemente cierta, y uno ni siquiera puede estar seguro de que tener muchas capas sea realmente beneficioso.

Digo que esto es sorprendente, porque el aprendizaje profundo es enormemente popular, está rompiendo todos los récords (desde el reconocimiento de imágenes, pasando por Go, hasta la traducción automática, etc.) cada año, la industria lo está utilizando, etc., etc. Todavía no estamos muy seguros de por qué funciona tan bien.

Baso mi discusión en el libro de Aprendizaje profundo de Goodfellow, Bengio y Courville, que salió en 2017 y es ampliamente considerado como el libro sobre aprendizaje profundo. (Está disponible gratuitamente en línea). La sección relevante es 6.4.1 Propiedades y profundidad de aproximación universal .

Tu escribiste eso

Hace 10 años en clase aprendí que tener varias capas o una capa (sin contar las capas de entrada y salida) era equivalente en términos de las funciones que una red neuronal es capaz de representar [...]

Debe referirse al llamado teorema de aproximación universal , probado por Cybenko en 1989 y generalizado por varias personas en la década de 1990. Básicamente dice que una red neuronal poco profunda (con 1 capa oculta) puede aproximarse a cualquier función, es decir, en principio puede aprender cualquier cosa . Esto es cierto para varias funciones de activación no lineal, incluidas las unidades lineales rectificadas que la mayoría de las redes neuronales están utilizando hoy (el libro de texto hace referencia a Leshno et al. 1993 para este resultado).

Si es así, ¿por qué todos usan redes profundas?

Bueno, una respuesta ingenua es que funcionan mejor. Aquí hay una figura del libro Deep Learning que muestra que ayuda tener más capas en una tarea en particular, pero a menudo se observa el mismo fenómeno en varias tareas y dominios:

Más capas es bueno

Sabemos que una red superficial podría funcionar tan bien como las más profundas. Pero no lo hace; y generalmente no lo hacen. La pregunta es ¿por qué? Respuestas posibles:

  1. ¿Quizás una red poco profunda necesitaría más neuronas que la profunda?
  2. ¿Quizás una red poco profunda es más difícil de entrenar con nuestros algoritmos actuales (por ejemplo, tiene mínimos locales más desagradables, o la tasa de convergencia es más lenta, o lo que sea)?
  3. ¿Quizás una arquitectura superficial no se ajusta al tipo de problemas que generalmente estamos tratando de resolver (por ejemplo, el reconocimiento de objetos es un proceso jerárquico "profundo" por excelencia)?
  4. ¿Algo más?

El libro Deep Learning argumenta a favor de los puntos # 1 y # 3. Primero, argumenta que el número de unidades en una red poco profunda crece exponencialmente con la complejidad de la tarea. Entonces, para ser útil, una red superficial puede necesitar ser muy grande; posiblemente mucho más grande que una red profunda. Esto se basa en una serie de documentos que prueban que las redes poco profundas necesitarían en algunos casos exponencialmente muchas neuronas; pero si, por ejemplo, la clasificación MNIST o Go playing son tales casos, no está realmente claro. Segundo, el libro dice esto:

Elegir un modelo profundo codifica una creencia muy general de que la función que queremos aprender debe involucrar la composición de varias funciones más simples. Esto puede interpretarse desde el punto de vista del aprendizaje de representación como diciendo que creemos que el problema de aprendizaje consiste en descubrir un conjunto de factores de variación subyacentes que a su vez pueden describirse en términos de otros factores de variación subyacentes más simples.

Creo que el "consenso" actual es que es una combinación de los puntos # 1 y # 3: para las tareas del mundo real, la arquitectura profunda a menudo es beneficiosa y la arquitectura superficial sería ineficiente y requeriría muchas más neuronas para el mismo rendimiento.

Pero está lejos de ser probado. Considere, por ejemplo, Zagoruyko y Komodakis, 2016, Wide Residual Networks . Las redes residuales con más de 150 capas aparecieron en 2015 y ganaron varios concursos de reconocimiento de imágenes. Este fue un gran éxito y parecía un argumento convincente a favor de la profundidad; Aquí hay una figura de una presentación del primer autor en el documento de red residual (tenga en cuenta que el tiempo va confusamente a la izquierda aquí):

redes residuales profundas

Pero el documento vinculado anteriormente muestra que una red residual "amplia" con "solo" 16 capas puede superar a las "profundas" con más de 150 capas. Si esto es cierto, entonces todo el punto de la figura anterior se rompe.

O considere Ba y Caruana, 2014, ¿Las redes profundas realmente necesitan ser profundas? :

En este artículo proporcionamos evidencia empírica de que las redes poco profundas son capaces de aprender la misma función que las redes profundas y, en algunos casos, con el mismo número de parámetros que las redes profundas. Hacemos esto entrenando primero un modelo profundo de última generación, y luego entrenando un modelo superficial para imitar el modelo profundo. El modelo mímico se entrena utilizando el esquema de compresión del modelo descrito en la siguiente sección. Sorprendentemente, con la compresión del modelo podemos entrenar redes poco profundas para que sean tan precisas como algunos modelos profundos, a pesar de que no podemos entrenar estas redes poco profundas para ser tan precisas como las redes profundas cuando las redes poco profundas se entrenan directamente en el original Datos de entrenamiento etiquetados. Si una red poco profunda con el mismo número de parámetros que una red profunda puede aprender a imitar una red profunda con alta fidelidad,

Si es cierto, esto significaría que la explicación correcta es más bien mi viñeta # 2, y no la # 1 o # 3.

Como dije, nadie lo sabe con certeza todavía.


Observaciones finales

La cantidad de los progresos realizados en el aprendizaje profundo en los últimos ~ 10 años es realmente sorprendente, pero la mayor parte de este progreso se logró mediante ensayo y error, y que aún carecen de conocimientos básicos sobre lo que exactamente hace que las redes profundas para trabajar tan bien. Incluso la lista de cosas que las personas consideran cruciales para establecer una red profunda efectiva parece cambiar cada dos años.

El renacimiento del aprendizaje profundo comenzó en 2006 cuando Geoffrey Hinton (que había trabajado en redes neuronales durante más de 20 años sin mucho interés de nadie) publicó un par de documentos innovadores que ofrecen una forma efectiva de entrenar redes profundas ( documento de ciencia , documento de cálculo neuronal ) . El truco consistía en utilizar un pre-entrenamiento sin supervisión antes de comenzar el descenso del gradiente. Estos documentos revolucionaron el campo, y durante un par de años la gente pensó que la capacitación previa sin supervisión era la clave.

Luego, en 2010, Martens demostró que las redes neuronales profundas se pueden entrenar con métodos de segundo orden (los llamados métodos sin arpillera) y pueden superar a las redes entrenadas con preentrenamiento: aprendizaje profundo a través de la optimización sin arpillera . Luego, en 2013, Sutskever et al. demostró que el descenso de gradiente estocástico con algunos trucos muy inteligentes puede superar a los métodos libres de arpillera: sobre la importancia de la inicialización y el impulso en el aprendizaje profundo . Además, alrededor de 2010, las personas se dieron cuenta de que el uso de unidades lineales rectificadas en lugar de unidades sigmoideas hace una gran diferencia para el descenso de gradiente. La deserción escolar apareció en 2014. Las redes residuales aparecieron en 2015. La gente sigue buscando formas cada vez más efectivas de entrenar redes profundas ylo que parecía una idea clave hace 10 años a menudo se considera una molestia hoy en día. Todo eso se debe en gran medida al ensayo y error, y hay poca comprensión de lo que hace que algunas cosas funcionen tan bien y otras no. Entrenar redes profundas es como una gran bolsa de trucos. Los trucos exitosos suelen ser racionalizados post factum.

Ni siquiera sabemos por qué las redes profundas alcanzan una meseta de rendimiento; solo 10 años la gente solía culpar a los mínimos locales, pero el pensamiento actual es que este no es el punto (cuando el rendimiento se estabiliza, los gradientes tienden a permanecer grandes). Esta es una pregunta tan básica sobre redes profundas, y que ni siquiera sabe este .

Actualización: Este es más o menos el tema de la charla NIPS 2017 de Ali Rahimi sobre aprendizaje automático como alquimia: https://www.youtube.com/watch?v=Qi1Yry33TQE .


[Esta respuesta fue completamente reescrita en abril de 2017, por lo que algunos de los comentarios a continuación ya no se aplican].


2
Buena respuesta! 1) Como también mencionó @Nicolas, resulta que hay un teorema ( en.wikipedia.org/wiki/Universal_approximation_theorem ) que afirma que una red neuronal de alimentación con una sola capa oculta y un número finito de neuronas puede aproximarse cualquier función continua (incluido un DNN) en el hipercubo de la unidad. Se afirma que este resultado es independiente de la elección de la función de activación. 2) No estoy seguro de si su último comentario (es decir, que Hinton se unió a Google) es relevante para el éxito reciente de los DNN; ¡Hinton se unió a Google mucho después de que los DNN se convirtieran en epidemia!
Sobi

44
n1n

2
Lo lineal parece una combinación de dos cuestiones. Los perceptrones solo pueden calcular límites de decisión lineales, solo pueden dibujar líneas rectas para dividir dos clases. Las redes multicapa pueden "dibujar" límites más complicados. Pero ni los perceptrones ni las redes multicapa utilizan funciones de activación lineal, excepto en la capa de salida de una red multicapa. La función de activación del perceptrón es un heaviside (1 si x> 0, 0 de lo contrario); Las redes multicapa a menudo usan sigmoides, pero las restricciones para universales aprox. son bastante leves: no constantes, acotados y monotónicamente crecientes.
Matt Krause

2
@amoeba gran respuesta, la imagen al principio me desanimó para leer el resto, pero fue lo mejor. El perceptrón es la contraparte de la regresión lineal para la clasificación, por lo que cuando las personas usan la solución de forma cerrada (pseudoinversa) para resolver el problema en lugar de los métodos en línea (sgd), se llama Regresión logística, debido a la logística (función sigmoidea) = perceptrón. Una regresión perceptrónica / logística solo puede 'dibujar' límites de decisión lineales y es por eso que se llama lineal.
shuriken x azul

2
Sin embargo, el perceptrón multicapa (lo que dibujó en su primera imagen a la izquierda) puede combinar múltiples límites de decisión lineales y, por lo tanto, puede dividir el espacio para resolver el problema XOR (no lineal) como mencionó @Matt. Por lo tanto, muchos límites de decisión lineal combinados pueden hacer un círculo, por ejemplo, si entrecierra los ojos. Depende de cómo lo piense: la decisión sigue siendo lineal en un espacio superior, si está familiarizado con los núcleos, es algo parecido.
shuriken x azul

8

Buena respuesta hasta ahora, aunque hay un par de cosas que nadie mencionó aquí, aquí está mi 0.02 $

Solo responderé en forma de una historia, debería hacer las cosas más divertidas y claras. No hay tldr aquí. En el proceso, deberías poder entender cuál es la diferencia.

Hay varias razones por las que los DNN se activaron cuando lo hicieron (las estrellas tuvieron que alinearse, como todas las cosas similares, es solo cuestión de lugar correcto, momento correcto, etc.).

Una razón es la disponibilidad de datos, muchos datos (datos etiquetados). Si desea poder generalizar y aprender algo como 'priors genéricos' o 'priors universales' (también conocidos como los bloques de construcción básicos que pueden reutilizarse entre tareas / aplicaciones), entonces necesita una gran cantidad de datos. Y los datos salvajes, debo agregar, no son conjuntos de datos estériles cuidadosamente registrados en el laboratorio con iluminación controlada y todo. Mechanical Turk hizo eso (etiquetado) posible.

En segundo lugar, la posibilidad de entrenar redes más grandes más rápido usando GPU hizo que la experimentación fuera más rápida. Las unidades ReLU también hicieron las cosas computacionalmente más rápidas y proporcionaron su regularización, ya que necesitaba usar más unidades en una capa para poder comprimir la misma información, ya que las capas ahora eran más escasas, por lo que también fue agradable con la deserción. Además, ayudaron con un problema importante que ocurre cuando se apilan varias capas. Más sobre eso más tarde. Varios trucos múltiples que mejoraron el rendimiento. Como el uso de mini lotes (que de hecho es perjudicial para el error final) o convoluciones (que en realidad no capturan tanta varianza como los campos receptivos locales) pero son computacionalmente más rápidos.

Mientras tanto, las personas debatían si les gustaban más flacos o más regordetes, más pequeños o más altos, con o sin pecas, etc. y el método newtons, finalmente se dieron cuenta de que no hay almuerzo gratis. Las redes estaban eructando.

Lo que ralentizó las cosas fue el problema del gradiente de fuga . La gente decía: ¡vaya, eso está muy lejos, hombre! En pocas palabras, significa que fue difícil ajustar el error en las capas más cercanas a las entradas. A medida que agrega más capas en el pastel, se vuelve demasiado tambaleante. No puede propagar hacia atrás un error significativo a las primeras capas. Cuantas más capas, peor se puso. Gorrón.

Algunas personas descubrieron que usar la entropía cruzada como una función de pérdida (bueno, nuevamente, clasificación y reconocimiento de imágenes) proporciona algún tipo de regularización y ayuda a que la red no se sature y, a su vez, el gradiente no pudo ocultarlo bien.

Lo que también hizo posible las cosas fue el pre-entrenamiento por capa usando métodos no supervisados. Básicamente, toma un montón de codificadores automáticos y aprende cada vez menos representaciones abstractas a medida que aumenta la relación de compresión. Los pesos de estas redes se utilizaron para inicializar la versión supervisada. Esto resolvió el problema del gradiente de fuga de otra manera: ya está comenzando el entrenamiento supervisado desde una posición de inicio mucho mejor. Entonces, todas las otras redes se levantaron y comenzaron a rebelarse. Pero las redes necesitaban supervisión de todos modos, de lo contrario era imposible mantener quietos los grandes datos.

Ahora, para la última parte, que finalmente conduce a una respuesta que es demasiado compleja para resumir: ¿por qué más capas y no solo una? ¡Porque podemos! y porque el contexto y los descriptores de características invariantes. y piscinas.

Aquí hay un ejemplo: tiene un conjunto de datos de imágenes, ¿cómo va a entrenar un plan NN utilizando esos datos? Bueno, ingenuamente, tomas digamos cada fila y la concatenas en un vector largo y esa es tu entrada. ¿Qué aprendes? Bueno, algunas funciones difusas sin sentido que podrían no parecerse a nada, debido a los muchos tipos de variaciones que contienen los objetos en la imagen y no puede distinguir entre cosas relevantes e irrelevantes. Y en algún momento la red necesita olvidarse para poder volver a aprender cosas nuevas. Entonces está el problema de capacidad. Esta es una dinámica más no lineal, pero la intuición es que necesita aumentar el número de neuronas para poder incluir más información en su red.

Entonces, el punto es que si solo ingresas la imagen como una sola pieza, agregar capas adicionales no es demasiado para ti, ya que no puedes aprender abstracciones , lo cual es muy importante. Por lo tanto, hacer las cosas de manera integral no funciona tan bien, a menos que esté haciendo cosas más simples con la red, como centrarse en un tipo específico de objeto, por lo que se limita a una clase y elige algunas propiedades globales como objetivo de clasificación.

Entonces, ¿qué hay para hacer? Mire el borde de su pantalla e intente leer este texto. ¿Problema? Por estúpido que parezca, debes mirar lo que estás leyendo. De lo contrario, es muy difuso / no hay suficiente resolución / granularidad. Llamemos al área de enfoque el campo receptivo. Las redes también deben poder concentrarse. Básicamente, en lugar de usar toda la imagen como entrada, mueve una ventana deslizante a lo largo de la imagen y luego la usa como entrada a la red (un poco menos estocástica que lo que hacen los humanos). Ahora también tiene la oportunidad de capturar correlaciones entre píxeles y, por lo tanto, objetos, y también puede distinguir entre un gato dormido sentado en un sofá y un puenting boca abajo. Aseado, la fe en la humanidad restaurada. La red puede aprender abstracciones locales en una imagen en múltiples niveles. La red aprende filtros,

Entonces, para resumir: campos receptivos / convoluciones, inicialización no supervisada, unidades lineales rectificadas, abandono u otros métodos de regularización. Si se toma muy en serio esto, le recomiendo que eche un vistazo al Aprendizaje profundo de Schmidhuber en redes neuronales: una descripción general aquí está la url para la preimpresión http://arxiv.org/abs/1404.7828

Y recuerda: gran aprendizaje, datos profundos. Palabra.


Hola Florin, gracias por la buena respuesta! Me gusta el estilo de escritura. Cuando habla de ventanas deslizantes, ¿se refiere a cómo las capas convolucionales de NN convolucional observan diferentes partes de una imagen y proyectan sus activaciones en un espacio de dimensión inferior?
Nicolas

más o menos sí, las convoluciones no son necesarias, pero son más rápidas computacionalmente, ya que los pesos están restringidos. mira este artículo donde no usan convoluciones y usan campos receptivos locales. las palabras clave importantes son locales / jerárquicas: arxiv.org/pdf/1112.6209.pdf
shuriken x azul

También creo que la respuesta sistemática más cercana es la de Sobi. Él tiene mi voto a favor. Acabo de agregar algunas cosas más aquí y allá con un poco de sal y pimienta.
shuriken x azul

6

En términos simples, la principal diferencia con las redes neuronales clásicas es que tienen capas mucho más ocultas.

La idea es agregar etiquetas a las capas para hacer varias capas de abstracción:

Por ejemplo, una red neuronal profunda para el reconocimiento de objetos :

  • Capa 1: píxeles individuales
  • Capa 2: bordes
  • Capa 3: Formas (círculos, cuadrados)
  • Capa n: objeto completo

Puede encontrar una buena explicación en esta pregunta en Quora .

Y, si está interesado en este tema, le recomendaría que eche un vistazo a este libro .


1
Gracias David, pero no veo cómo agregar etiquetas simplemente lo hace diferente. También recuerdo que era un problema difícil de entender y descomponer cómo una función fue codificada por la red neuronal. Debe haber algo más que simplemente tener más capas. En cuanto al ejemplo que diste, creo que puedes entrenar redes neuronales individuales (de la vieja escuela) para realizar cada una de las tareas.
Nicolas

El poder viene cuando lo usa como una tubería, por lo que las entradas y salidas de la capa se apilan en cada capa.
David Gasquez

He estado leyendo su primer enlace, que es un buen recurso, y otras preguntas relacionadas sobre quora y se, sin embargo, el ejemplo que dio no parece exacto con lo que leí. Trataré de responder mi propia pregunta, resumiendo las lecturas de estas tesis.
Nicolas

2
A pesar de que el recurso puntiagudo es interesante, la respuesta actual no responde la pregunta.
Nicolas

¿Puede señalar un ejemplo en el que las capas estén etiquetadas (que no sean de manera puramente descriptiva)? Ciertamente es cierto que las capas ocultas parecen tener características cada vez más complejas en cada capa oculta, pero "agregar etiquetas" parece implicar que están siendo específicamente entrenados para hacerlo.
Matt Krause el

2

También me ha confundido un poco al principio la diferencia entre las redes neuronales (NN) y las redes neuronales profundas (DNN), sin embargo, la 'profundidad' se refiere solo al número de parámetros y capas, desafortunadamente. Puede tomarlo como una especie de cambio de marca bajo la llamada 'Mafia canadiense'.

Hace varios años, también tenía Neural Networks como parte de una clase e hicimos reconocimiento de dígitos, aproximación de onda y aplicaciones similares mediante el uso de NN, que tenía múltiples capas y salidas ocultas y todo ese jazz que tienen los DNN. Sin embargo, lo que no teníamos entonces era potencia informática.

La razón que hizo posible y deseable el cambio a DNN son los avances en el desarrollo de hardware. En pocas palabras, ahora podemos calcular más, más rápido y más paralelo (DNN en las GPU), mientras que antes, el tiempo era el cuello de botella para las NN.

Como se hace referencia en la página de Wikipedia para Deep Learning , la parte 'profunda' se refiere principalmente a que las características interactúen de manera no lineal en varias capas, por lo tanto, realizan la extracción y transformación de características. Esto también se hizo en NN estándar, sin embargo a menor escala.

En la misma página, aquí tiene la definición 'Una red neuronal profunda (DNN) es una red neuronal artificial (ANN) con múltiples capas ocultas de unidades entre las capas de entrada y salida'.


Hola Mttk, gracias por tu respuesta, arrojó más luz sobre esta pregunta. Con respecto a su último punto, sí estructuralmente es muy fácil explicar la diferencia (1 frente a múltiples capas), pero la diferencia en cómo se usan estas múltiples capas parece ser lo que importa y es mucho menos claro. Es por eso que enfoqué la pregunta no en la estructura ..
Nicolas

Honestamente, no estoy de acuerdo con la última definición a la que hice referencia, ya que ANN / NN con una capa oculta no son realmente eficientes, y necesitabas múltiples para cualquier tipo de predicción más compleja (digo esto porque creo que DNN era un palabra de moda inútil añadida a un término ya bueno, NN). Creo que puede usar NN y DNN indistintamente (porque hoy en día nadie usa NN de una capa oculta), mientras que el uso de las capas difiere entre los tipos de DNN (CNN, RBM, RNN, LSTM, CW-RNN, ...) y no la idea de DNN en sí.
mttk

2

Hasta donde yo sé, lo que hoy se llama Red Neural Profunda (DNN) no tiene nada fundamental o filosóficamente diferente de la antigua Red Neural estándar (NN). Aunque, en teoría, se puede aproximar un NN arbitrario utilizando un NN superficial con solo una capa oculta, sin embargo, esto no significa que las dos redes tendrán un rendimiento similar cuando se entrenan con el mismo algoritmo y datos de entrenamiento. De hecho, existe un creciente interés en la formación de redes poco profundas que funcionan de manera similar a las redes profundas. Sin embargo, la forma en que se hace esto es entrenando primero una red profunda y luego entrenando la red superficial para imitarla salida final (es decir, la salida de la penúltima capa) de la red profunda. Verán, lo que hace que las arquitecturas profundas sean favorables es que las técnicas de entrenamiento actuales (propagación hacia atrás) funcionan mejor cuando las neuronas se disponen en una estructura jerárquica.

Otra pregunta que puede hacerse es: por qué las redes neuronales (DNN en particular) se hicieron tan populares de repente. A mi entender, los ingredientes mágicos que hicieron que los DNN fueran tan populares recientemente son los siguientes:

A. Conjuntos de datos mejorados y capacidades de procesamiento de datos

1. Los conjuntos de datos a gran escala con millones de imágenes diversas estuvieron disponibles

2. La implementación rápida de GPU se puso a disposición del público

B. Algoritmos de entrenamiento y arquitecturas de red mejorados.

1. Unidades lineales rectificadas (ReLU) en lugar de sigmoide o tanh

2. Las arquitecturas de red profundas evolucionaron a lo largo de los años.


A-1) Hasta hace muy poco, al menos en Computer Vision, no podíamos entrenar modelos en millones de imágenes etiquetadas; simplemente porque no existían conjuntos de datos etiquetados de ese tamaño. Resulta que, además del número de imágenes, la granularidad del conjunto de etiquetas también es un factor crucial en el éxito de los DNN (ver Figura 8 en este documento , de Azizpour et al.).

A-2) Se ha realizado un gran esfuerzo de ingeniería para posibilitar la formación de DNN que funcionan bien en la práctica, sobre todo, el advenimiento de las implementaciones de GPU. Una de las primeras implementaciones exitosas de GPN de DNN, se ejecuta en dos GPU paralelas; Sin embargo, lleva aproximadamente una semana entrenar un DNN en 1.2 millones de imágenes de 1000 categorías usando GPU de alta gama (ver este documento, por Krizhevsky et al.).

B-1) El uso de unidades lineales rectificadas simples (ReLU) en lugar de las funciones sigmoide y tanh es probablemente el mayor bloque de construcción para hacer posible la formación de DNN. Tenga en cuenta que las funciones sigmoide y tanh tienen casi cero gradiente en casi todas partes, dependiendo de qué tan rápido transiten del nivel de activación bajo al alto; en el caso extremo, cuando la transición es repentina, obtenemos una función de paso que tiene pendiente cero en todas partes, excepto en un punto donde ocurre la transición.

B-2) La historia de cómo se desarrollaron las arquitecturas de redes neuronales a lo largo de los años me recuerda cómo la evolución cambia la estructura de un organismo en la naturaleza. El intercambio de parámetros (por ejemplo, en capas convolucionales), la regularización de abandono, la inicialización, el cronograma de la tasa de aprendizaje, la agrupación espacial, el submuestreo en las capas más profundas y muchos otros trucos que ahora se consideran estándar en la capacitación, se desarrollaron, evolucionaron y terminaron a medida años para hacer posible la formación de las redes profundas de la forma en que es hoy.


3
+1. La primera respuesta en este hilo que proporciona una respuesta adecuada a las preguntas del OP. Muchos buenos puntos aquí. Mi único comentario importante sería que, además de A y B, también hay C: aumento masivo en el tamaño de los conjuntos de datos de entrenamiento disponibles. Esto parece ser al menos tan importante como A y B.
ameba

1
No creo que relu sea tan importante: el artículo de Alex krizhevsky afirmó que hizo que el aprendizaje fuera n6 veces más rápido. La mayoría de los otros cambios en la estructura de la red que menciona se relacionan con nns convolucionales, que simplemente copian las canalizaciones de procesamiento de imágenes estándar (algo bueno, pero no hay nuevas ideas)
seanv507

1
@amoeba: el tamaño del conjunto de datos está por debajo de A. Actualicé el texto para resaltarlo.
Sobi

@ seanv507: de hecho, tenía en mente las redes convolucionales (ConvNets) al escribir la respuesta. Si hay otros factores importantes (no relacionados con ConvNets) que he echado de menos, lo agradecería si los menciona. Estaría encantado de actualizar mi respuesta en consecuencia. Con respecto a las ReLU, entrenar a las personas con tanh y sigmoides es considerablemente más difícil que con las ReLU debido a la cuestión de los gradientes que desaparecen: las unidades se saturan fácilmente y, una vez que eso sucede, les lleva mucho tiempo volverse insaturadas nuevamente (los gradientes son muy pequeños cuando la unidad está saturado)
Sobi

2

La diferencia entre un NN "profundo" y un NN estándar es puramente cualitativa: no hay una definición de lo que significa "profundo". "Profundo" puede significar cualquier cosa, desde las arquitecturas extremadamente sofisticadas que utilizan Google, Facebook y compañía que tienen 50-80 o incluso más capas, hasta arquitecturas de 2 capas ocultas (4 capas en total). No me sorprendería si pudieras encontrar artículos que afirmen que aprendes en profundidad con una sola capa oculta, porque "profundo" no significa mucho.

"Red neuronal" es también una palabra que no tiene un significado muy preciso. Cubre un conjunto extremadamente grande de modelos, desde máquinas de boltzman aleatorias (que son gráficos no dirigidos) hasta arquitecturas avanzadas con diversas funciones de activación. La mayoría de los NN se entrenarán con backprop, pero no tiene por qué ser así, incluso los algoritmos de entrenamiento no son muy homogéneos.

En general, el aprendizaje profundo, las NN profundas y las NN se han convertido en palabras generales que capturan una multitud de enfoques.

Para buenas referencias introductorias sobre "lo que cambió": Aprendizaje profundo de las representaciones: Mirando hacia adelante , Bengio, 2013 es una buena revisión + perspectiva para el futuro. También vea ¿Las redes profundas realmente necesitan ser profundas? Ba & Caruana, 2013, que ilustran que ser profundo podría no ser útil para la representación sino para el aprendizaje.


Las referencias que da son muy útiles, pero el resto de la respuesta en el formulario actual (que dice "NN no significa nada, DNN no significa nada, NN y DNN pueden hacer muchas cosas") no mucho ¿Consideras revisarlo?
Nicolas

1

Para ampliar la respuesta de David Gasquez, una de las principales diferencias entre las redes neuronales profundas y las redes neuronales tradicionales es que no solo utilizamos la propagación hacia atrás para redes neuronales profundas.

¿Por qué? Debido a que la retropropagación entrena capas posteriores de manera más eficiente que entrena capas anteriores, a medida que avanza cada vez más temprano en la red, los errores se vuelven más pequeños y más difusos. Entonces, una red de diez capas básicamente tendrá siete capas de pesos aleatorios seguidos de tres capas de pesos ajustados, y funcionará tan bien como una red de tres capas. Mira aquí para más.

Entonces, el avance conceptual es tratar los problemas separados (las capas etiquetadas) como problemas separados: si primero intentamos resolver el problema de construir una primera capa genéricamente buena, y luego intentamos resolver el problema de construir una segunda capa genéricamente buena, eventualmente tendremos un espacio de características profundas que podemos alimentar a nuestro problema real.


1

NN:

  • una capa oculta es suficiente pero puede tener varias capas, sin embargo, de izquierda a derecha (modelo: feed forward NN)
  • capacitado solo de manera supervisada (propagación hacia atrás)
  • cuando se usan varias capas, entrene todas las capas al mismo tiempo (mismo algoritmo: propagación hacia atrás), más capas dificulta su uso ya que los errores se vuelven demasiado pequeños
  • difícil de entender lo que se aprende en cada capa

DNN:

  • se requieren múltiples capas, bordes no dirigidos (modelo: máquina de boltzman restringida)
  • primero entrenado de una manera no supervisada, donde las redes aprenden características relevantes al aprender a reproducir su entrada, luego entrenan de manera supervisada que afina las características para clasificar
  • entrenar las capas una por una desde la entrada a la salida (algoritmo: divergencia contrastante)
  • cada capa contiene claramente características de abstracción creciente

El cambio a DNN se debe a tres avances independientes que ocurrieron en 2006.

Con respecto a los teoremas sobre NN, al que alude la pregunta es:

  • teorema de aproximación universal o teorema de Cybenko: una red neuronal de avance con una sola capa oculta puede aproximarse a cualquier función continua. Sin embargo, en la práctica puede requerir muchas más neuronas si se usa una sola capa oculta.

2
-1? De Verdad? ¡Leí todo esto en la literatura e hice una comparación punto por punto de ambos enfoques! Por favor, al menos, indique lo que no es correcto ...
Nicolas

3
No voté negativamente (¿quizás a un votante negativo no le gustó que respondieras tu propia pregunta? Lo que usted enumera como propiedades de DNN: que los bordes no están dirigidos, que primero se entrena de manera no supervisada, que las capas se entrenan una por una, todo eso solo se refiere a redes de creencias profundas sugeridas por Hinton en 2006. Esto no es necesariamente cierto para las redes neuronales profundas en general y, de hecho, ahora hay muchas maneras de entrenar una red profunda sin todo eso. Mira mi respuesta.
ameba

1

O(n)

Creo que debería retroceder y ver que esto ha creado un resurgimiento en la IA superficial, por ejemplo, la bolsa de palabras para el análisis de sentimientos y otras aplicaciones de lenguaje y la bolsa visual de palabras fue el enfoque principal para el reconocimiento de imágenes antes de DNN. Nadie dice que la bolsa de palabras es un verdadero modelo de lenguaje, pero es una solución de ingeniería efectiva. Por lo tanto, diría que DNN es una mejor 'bolsa visual de palabras' - vea, por ejemplo, Szegedy et al. 2013 Propiedades intrigantes de redes neuronales y Nguyen et al. Las redes neuronales profundas se engañan fácilmente: predicciones de alta confianza para imágenes irreconocibles donde está claro que no se están aprendiendo estructuras de orden superior, etc. (o lo que se reclama para DNN).


@amoeba este otro papel es casi un papel complementario al primero (¡de nuevo con muchas imágenes!)
seanv507

0

Deep Learning es un conjunto de algoritmos en el aprendizaje automático que intentan modelar abstracciones de alto nivel en los datos mediante el uso de arquitecturas compuestas de múltiples transformaciones no lineales .

Fuente: Arno Candel

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.